<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:dcterms="http://purl.org/dc/terms/"
     xmlns:media="http://search.yahoo.com/mrss/"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:cf="https://www.futureplc.com/rss/content-flags"
>
    <channel>
                    <atom:link href="https://www.tomsguide.com/feeds/tag/tcl" rel="self" type="application/rss+xml" />
                            <title><![CDATA[ Latest from Tom's Guide in Tcl ]]></title>
                <link>https://www.tomsguide.com/tag/tcl</link>
        <description><![CDATA[ All the latest tcl content from the Tom's Guide team ]]></description>
                                    <lastBuildDate>Fri, 04 Sep 2026 08:00:00 +0000</lastBuildDate>
                            <language>en</language>
                                <item>
                                                            <title><![CDATA[ TCL is suing Samsung for false advertising on its Mini-LED TVs — here’s how to tell if your TV is included ]]></title>
                                                                                                <dc:content><![CDATA[ <p>What makes a Mini-LED TV a Mini-LED TV? That’s the question at the heart of a recent lawsuit against Samsung, in which TCL alleges that two of Samsung’s Mini-LED TVs don’t actually use Mini-LED technology at all.</p><p>The complaint, filed Monday by Los Angeles law firm <a href="https://www.larsonllp.com/tcl-north-america-false-advertising-lawsuit-samsung/" target="_blank" rel="nofollow">Larson LLP</a>, states that “[Samsung] took a cheap, non-Mini LED model from a recycled product line and peddled it to the public as a ‘supreme’ Mini LED model at an attractive price point.” </p><p>Obviously, nobody wants to learn that the TV they thought they were buying isn't as advertised. But is there any truth to the claims laid out in TCL’s lawsuit? To better understand the situation, let’s start with which models are being called into question.</p><h2 id="samsung-s-m-series-tvs-and-supreme-mini-led-dimming">Samsung’s M Series TVs and “Supreme Mini LED Dimming”</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1359px;"><p class="vanilla-image-block" style="padding-top:56.22%;"><img id="daJEPnvBBgcPtcoJ94mHxL" name="Samsung-M80H-Mini-LED-TV-Lifestyle" alt="The Samsung M80H Mini-LED TV displaying an AI-generated still of a soccer match from atop a credenza in a modern living room" src="https://cdn.mos.cms.futurecdn.net/daJEPnvBBgcPtcoJ94mHxL.jpg" mos="" align="middle" fullscreen="" width="1359" height="764" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Samsung)</span></figcaption></figure><p><strong>The claim centers around Samsung’s 2026 M Series lineup, including the M70H, M80H and M90H TVs</strong>. In the complaint, TCL alleges that these models, specifically, “contain none of the technological advancements associated with Mini LED technology, including FALD [full-array local dimming].”</p><p>Instead, TCL says, “Samsung merely recycled its pre-existing low-end standard LED televisions, the Crystal UHD line, and re-labelled them as ‘Mini LED.’” The complaint cites a page on <a href="https://www.samsung.com/us/tvs/tv-buying-guide/mini-led-vs-qled/">Samsung’s website</a> that describes Mini-LED technology as involving both “backlight control” and “local dimming” — two features that, according to TCL, aren’t accounted for across Samsung’s M Series lineup.</p><div><blockquote><p>The claim includes the M70H, M80H and M90H TVs.</p></blockquote></div><p>In other words, TCL alleges Samsung’s edge-lit, Mini-LED-based TVs as not meeting Samsung’s own criteria for what makes Mini-LED technology worth buying over a standard QLED TV.</p><p>A spokesperson from Samsung stated that the brand intends to “vigorously defend against” the lawsuit, and that Samsung “stand[s] behind the quality and accuracy of our product descriptions.”</p><p>Samsung’s M Series lineup sits below the brand’s Neo QLED family of TVs, the latter of which has historically combined <em>both</em> Mini-LED backlighting and quantum-dot color — hence its higher-end status.</p><p>Curiously, when I compared Samsung’s official spec sheets for the M70H (the entry model in the M Series) and the QN70H (the brand’s entry-level Neo QLED TV), I noticed that the “Lighting Technology” labels differ, but their respective “Dimming Technology” classifications are the same.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1164px;"><p class="vanilla-image-block" style="padding-top:71.74%;"><img id="cYam6L5frJ8KZwi4hJxGzj" name="Samsung-M70H-Mini-LED-TV-DISCLAIMER_TG" alt="A side-by-side comparison of spec sheets for the M70H Mini-LED TV and the QN70H Neo QLED TV" src="https://cdn.mos.cms.futurecdn.net/cYam6L5frJ8KZwi4hJxGzj.jpg" mos="" align="middle" fullscreen="" width="1164" height="835" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Samsung)</span></figcaption></figure><p>You’ll notice, however, that the M70H’s “Supreme Mini LED Dimming” designation is joined by a footnote indicator. And, if you follow that footnote, you’ll find a disclaimer stating that the M70H’s “Supreme Mini LED Dimming” is “[s]oftware-based (not full-array hardware-based) technology.”</p><p>What we’re left with, then, are two TVs — currently separated by about $500 at the 65-inch size point — that are stated by Samsung to use the same dimming technology. However, on only <em>one </em>of these models is this technology described as being software-based rather than hardware-based.</p><p>This is called out directly in TCL’s complaint. It states:</p><p><em>"Samsung’s specification sheets identify the dimming feature available on its Mini LED televisions as 'Supreme Mini LED Dimming,' which, when coupled with its descriptions of Mini LED local dimming on its website, is purposefully designed to suggest dimming that is a better version of typical Mini LED FALD than that of its competitors such as TCL. This is reinforced by the fact that Samsung uses the same terminology— 'Supreme Mini LED Dimming'—to describe its high-end Neo QLED televisions."</em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-X11qMX"></div>                            </div>                            <script src="https://kwizly.com/embed/X11qMX.js" async></script><p>It's worth noting that this wouldn't be the first time Samsung released a TV with edge-based lighting under the designation of "Mini-LED TV." One of the brand's latest lifestyle TVs — The Frame Pro — is billed as a Mini-LED-based set with some type of dimming, despite the fact that these LEDs are not arranged in a traditional, backlit array.</p><p>This raises an important question: Are edge-lit Mini-LED TVs — the sort that the M70H and M80H are alleged to be — <em>truly </em>a downgrade compared to Mini-LED models with proper local dimming?</p><h2 id="can-quot-software-based-dimming-quot-be-a-stand-in-for-fald">Can "software-based dimming" be a stand-in for FALD?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:62.53%;"><img id="PVJDp3xAnHpTYCqfuXpEUN" name="MicroLED_shutterstock_COV.jpg" alt="Micro-LED vs. OLED" src="https://cdn.mos.cms.futurecdn.net/PVJDp3xAnHpTYCqfuXpEUN.jpg" mos="" align="middle" fullscreen="" width="1500" height="938" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>TCL claims that the inclusion of "Supreme Mini LED Dimming" on the lower-end M70H misleads people into thinking that the M70H features the same dimming technology as the higher-end Neo QLED, or that the version of Mini-LED dimming found on the M70H is somehow superior to full-array, hardware-based dimming on TCL TVs.</p><p>Should this move to a trial, that'll be up for a court to decide how much water those claims hold. </p><p>For me, the more interesting question is: Are the higher-end QN70H <em>also</em> leveraging edge-lit Mini-LEDs driven by software-based dimming? After all, their spec sheets list identical dimming technologies.</p><p>Back in May, when I was evaluating the QN70H, I reached out to Samsung with this exact question, and a spokesperson from Samsung responded with the following: <em>"Samsung can confirm that both the QN70H and M70H support software-based Supreme Mini LED Dimming."</em></p><div><blockquote><p>Samsung can confirm that both the QN70H and M70H support software-based Supreme Mini LED Dimming.</p><p>Samsung Representative</p></blockquote></div><p>While one can certainly make the argument that traditional, hardware-based dimming is driven in part by software, this could be the first time a TV-maker has used the term "software-based dimming" as a means to describe a TV with full-array local dimming.</p><p>We'll be following this story closely as it evolves, but let us know in the comments below if you purchased one of the aforementioned TVs and if you've seen any issues with its contrast.</p><p><em>In reporting this story, Tom's Guide reached out to Samsung to clarify TCL's claims and a spokesperson said that the brand will “vigorously defend against” the lawsuit, and that Samsung “stand[s] behind the quality and accuracy of our product descriptions.”</em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ePaJpW"></div>                            </div>                            <script src="https://kwizly.com/embed/ePaJpW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/we-just-graded-every-tv-brand-on-price-performance-and-more-heres-how-their-report-cards-stack-up">Best TV Brands 2026: We just graded them on price, performance and more — here’s how their report cards stack up</a></li><li><a href="https://www.tomsguide.com/tvs/roku-and-tcl-accused-of-bricking-tvs-with-poor-software-updates-in-new-class-action-lawsuit">Roku and TCL accused of 'bricking' TVs with poor software updates in new class action lawsuit</a></li><li><a href="https://www.tomsguide.com/tvs/samsung-tv-report-card-2026-you-can-rely-on-samsung-to-deliver-exceptional-performance">Samsung TV report card 2026: 'You can rely on Samsung to deliver exceptional performance'</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/tcl-is-suing-samsung-for-false-advertising-on-its-mini-led-tvs-heres-how-to-tell-if-your-tv-is-included</link>
                                                                            <description>
                            <![CDATA[ A recent lawsuit from TCL alleges that several Samsung M Series Mini-LED TVs aren't Mini-LED TVs at all. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Nzw9ujCdQXwCtFFRtJtQVH</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/57dGgxoSzPWuGByhKA7bJS-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 04 Sep 2026 08:00:00 +0000</pubDate>                                                                                                                                <updated>Fri, 04 Sep 2026 08:43:08 +0000</updated>
                                                                                                                                            <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/57dGgxoSzPWuGByhKA7bJS-1280-80.jpg">
                                                            <media:credit><![CDATA[Samsung]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Samsung M70H Mini-LED TV displaying colorful, abstract imagery from a wall-mounted position in a contemporary, well-lit living room]]></media:description>                                                            <media:text><![CDATA[The Samsung M70H Mini-LED TV displaying colorful, abstract imagery from a wall-mounted position in a contemporary, well-lit living room]]></media:text>
                                <media:title type="plain"><![CDATA[The Samsung M70H Mini-LED TV displaying colorful, abstract imagery from a wall-mounted position in a contemporary, well-lit living room]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/57dGgxoSzPWuGByhKA7bJS-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>What makes a Mini-LED TV a Mini-LED TV? That’s the question at the heart of a recent lawsuit against Samsung, in which TCL alleges that two of Samsung’s Mini-LED TVs don’t actually use Mini-LED technology at all.</p><p>The complaint, filed Monday by Los Angeles law firm <a href="https://www.larsonllp.com/tcl-north-america-false-advertising-lawsuit-samsung/" target="_blank" rel="nofollow">Larson LLP</a>, states that “[Samsung] took a cheap, non-Mini LED model from a recycled product line and peddled it to the public as a ‘supreme’ Mini LED model at an attractive price point.” </p><p>Obviously, nobody wants to learn that the TV they thought they were buying isn't as advertised. But is there any truth to the claims laid out in TCL’s lawsuit? To better understand the situation, let’s start with which models are being called into question.</p><h2 id="samsung-s-m-series-tvs-and-supreme-mini-led-dimming">Samsung’s M Series TVs and “Supreme Mini LED Dimming”</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1359px;"><p class="vanilla-image-block" style="padding-top:56.22%;"><img id="daJEPnvBBgcPtcoJ94mHxL" name="Samsung-M80H-Mini-LED-TV-Lifestyle" alt="The Samsung M80H Mini-LED TV displaying an AI-generated still of a soccer match from atop a credenza in a modern living room" src="https://cdn.mos.cms.futurecdn.net/daJEPnvBBgcPtcoJ94mHxL.jpg" mos="" align="middle" fullscreen="" width="1359" height="764" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Samsung)</span></figcaption></figure><p><strong>The claim centers around Samsung’s 2026 M Series lineup, including the M70H, M80H and M90H TVs</strong>. In the complaint, TCL alleges that these models, specifically, “contain none of the technological advancements associated with Mini LED technology, including FALD [full-array local dimming].”</p><p>Instead, TCL says, “Samsung merely recycled its pre-existing low-end standard LED televisions, the Crystal UHD line, and re-labelled them as ‘Mini LED.’” The complaint cites a page on <a href="https://www.samsung.com/us/tvs/tv-buying-guide/mini-led-vs-qled/">Samsung’s website</a> that describes Mini-LED technology as involving both “backlight control” and “local dimming” — two features that, according to TCL, aren’t accounted for across Samsung’s M Series lineup.</p><div><blockquote><p>The claim includes the M70H, M80H and M90H TVs.</p></blockquote></div><p>In other words, TCL alleges Samsung’s edge-lit, Mini-LED-based TVs as not meeting Samsung’s own criteria for what makes Mini-LED technology worth buying over a standard QLED TV.</p><p>A spokesperson from Samsung stated that the brand intends to “vigorously defend against” the lawsuit, and that Samsung “stand[s] behind the quality and accuracy of our product descriptions.”</p><p>Samsung’s M Series lineup sits below the brand’s Neo QLED family of TVs, the latter of which has historically combined <em>both</em> Mini-LED backlighting and quantum-dot color — hence its higher-end status.</p><p>Curiously, when I compared Samsung’s official spec sheets for the M70H (the entry model in the M Series) and the QN70H (the brand’s entry-level Neo QLED TV), I noticed that the “Lighting Technology” labels differ, but their respective “Dimming Technology” classifications are the same.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1164px;"><p class="vanilla-image-block" style="padding-top:71.74%;"><img id="cYam6L5frJ8KZwi4hJxGzj" name="Samsung-M70H-Mini-LED-TV-DISCLAIMER_TG" alt="A side-by-side comparison of spec sheets for the M70H Mini-LED TV and the QN70H Neo QLED TV" src="https://cdn.mos.cms.futurecdn.net/cYam6L5frJ8KZwi4hJxGzj.jpg" mos="" align="middle" fullscreen="" width="1164" height="835" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Samsung)</span></figcaption></figure><p>You’ll notice, however, that the M70H’s “Supreme Mini LED Dimming” designation is joined by a footnote indicator. And, if you follow that footnote, you’ll find a disclaimer stating that the M70H’s “Supreme Mini LED Dimming” is “[s]oftware-based (not full-array hardware-based) technology.”</p><p>What we’re left with, then, are two TVs — currently separated by about $500 at the 65-inch size point — that are stated by Samsung to use the same dimming technology. However, on only <em>one </em>of these models is this technology described as being software-based rather than hardware-based.</p><p>This is called out directly in TCL’s complaint. It states:</p><p><em>"Samsung’s specification sheets identify the dimming feature available on its Mini LED televisions as 'Supreme Mini LED Dimming,' which, when coupled with its descriptions of Mini LED local dimming on its website, is purposefully designed to suggest dimming that is a better version of typical Mini LED FALD than that of its competitors such as TCL. This is reinforced by the fact that Samsung uses the same terminology— 'Supreme Mini LED Dimming'—to describe its high-end Neo QLED televisions."</em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-X11qMX"></div>                            </div>                            <script src="https://kwizly.com/embed/X11qMX.js" async></script><p>It's worth noting that this wouldn't be the first time Samsung released a TV with edge-based lighting under the designation of "Mini-LED TV." One of the brand's latest lifestyle TVs — The Frame Pro — is billed as a Mini-LED-based set with some type of dimming, despite the fact that these LEDs are not arranged in a traditional, backlit array.</p><p>This raises an important question: Are edge-lit Mini-LED TVs — the sort that the M70H and M80H are alleged to be — <em>truly </em>a downgrade compared to Mini-LED models with proper local dimming?</p><h2 id="can-quot-software-based-dimming-quot-be-a-stand-in-for-fald">Can "software-based dimming" be a stand-in for FALD?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:62.53%;"><img id="PVJDp3xAnHpTYCqfuXpEUN" name="MicroLED_shutterstock_COV.jpg" alt="Micro-LED vs. OLED" src="https://cdn.mos.cms.futurecdn.net/PVJDp3xAnHpTYCqfuXpEUN.jpg" mos="" align="middle" fullscreen="" width="1500" height="938" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>TCL claims that the inclusion of "Supreme Mini LED Dimming" on the lower-end M70H misleads people into thinking that the M70H features the same dimming technology as the higher-end Neo QLED, or that the version of Mini-LED dimming found on the M70H is somehow superior to full-array, hardware-based dimming on TCL TVs.</p><p>Should this move to a trial, that'll be up for a court to decide how much water those claims hold. </p><p>For me, the more interesting question is: Are the higher-end QN70H <em>also</em> leveraging edge-lit Mini-LEDs driven by software-based dimming? After all, their spec sheets list identical dimming technologies.</p><p>Back in May, when I was evaluating the QN70H, I reached out to Samsung with this exact question, and a spokesperson from Samsung responded with the following: <em>"Samsung can confirm that both the QN70H and M70H support software-based Supreme Mini LED Dimming."</em></p><div><blockquote><p>Samsung can confirm that both the QN70H and M70H support software-based Supreme Mini LED Dimming.</p><p>Samsung Representative</p></blockquote></div><p>While one can certainly make the argument that traditional, hardware-based dimming is driven in part by software, this could be the first time a TV-maker has used the term "software-based dimming" as a means to describe a TV with full-array local dimming.</p><p>We'll be following this story closely as it evolves, but let us know in the comments below if you purchased one of the aforementioned TVs and if you've seen any issues with its contrast.</p><p><em>In reporting this story, Tom's Guide reached out to Samsung to clarify TCL's claims and a spokesperson said that the brand will “vigorously defend against” the lawsuit, and that Samsung “stand[s] behind the quality and accuracy of our product descriptions.”</em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ePaJpW"></div>                            </div>                            <script src="https://kwizly.com/embed/ePaJpW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/we-just-graded-every-tv-brand-on-price-performance-and-more-heres-how-their-report-cards-stack-up">Best TV Brands 2026: We just graded them on price, performance and more — here’s how their report cards stack up</a></li><li><a href="https://www.tomsguide.com/tvs/roku-and-tcl-accused-of-bricking-tvs-with-poor-software-updates-in-new-class-action-lawsuit">Roku and TCL accused of 'bricking' TVs with poor software updates in new class action lawsuit</a></li><li><a href="https://www.tomsguide.com/tvs/samsung-tv-report-card-2026-you-can-rely-on-samsung-to-deliver-exceptional-performance">Samsung TV report card 2026: 'You can rely on Samsung to deliver exceptional performance'</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I spent a month with this $330 smartphone with a paper-like display — and it completely changed my mind on budget phones ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Calling it quits on my current smartphone and upgrading to a new one isn’t the kind of decision I make on a whim. Instead, it often amounts to months of research and then waiting for a sale before I finally pull the trigger. However, that wasn’t the case at all with the <a href="https://www.tomsguide.com/phones/i-used-tcl-nxtpaper-70-pro-mwc-2026">TCL NXTPAPER 70 Pro</a>.</p><p>Now, while I know the ins and outs of the <a href="https://www.tomsguide.com/best-picks/best-phones">best phones</a>, I’m not the type of person to drop a large sum of money on a flagship device. Part of the reason for this is that I prefer to buy my phones outright instead of going through my mobile carrier. This is why I usually go with a mid-range phone over a more premium one.</p><p>In the past, I’ve been tempted by the <a href="https://www.tomsguide.com/best-picks/best-cheap-phones">best cheap phones</a>, but one shortcoming or another always held me back. With the NXTPAPER 70 Pro, even though it does skimp out on some of my favorite, more premium features like wireless charging and a USB 3.0 port capable of video out, I was more than willing to leave my <a href="https://www.tomsguide.com/opinion/i-picked-the-nothing-phone-2-over-every-android-flagship-heres-why">Nothing Phone (2)</a> behind for it.</p><p>Ever since I first saw TCL’s NXTPAPER tech in person at a mall in Taiwan, I’ve been enamored by the matte, glare-free displays the company uses for it. After trying out the larger <a href="https://www.tomsguide.com/computing/tablets/i-tried-the-tcl-nxtpaper-11-plus-and-this-budget-tablet-is-easily-my-ipad-killer-heres-why">NXTPAPER 11 Plus</a> and <a href="https://www.tomsguide.com/computing/android-tablets/i-thought-smaller-was-better-until-i-tried-a-massive-14-inch-tablet-that-feels-like-a-clipboard">NXTPAPER 14</a> tablets, I figured it was time to try using this unique display tech as my daily driver — and I’m glad I did.</p><p>Here’s what it’s been like using the NXTPAPER 70 Pro for a month and why it will be especially hard going back to a phone with a glossy screen, even if it is more powerful.</p><div class="product"><a data-dimension112="33a2a68c-a428-11f1-b689-653407cd15b1" data-action="Deal Block" data-label="NXTPAPER 70 Pro" data-dimension48="NXTPAPER 70 Pro" data-dimension25="$279" href="https://www.amazon.com/TCL-NXTPAPER-Unlocked-Android-Display/dp/B0GY3MJH6T" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:911px;"><p class="vanilla-image-block" style="padding-top:164.65%;"><img id="wgHJMTHjVKQpuddYis4tv6" name="NXTPAPER 70 Pro" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/wgHJMTHjVKQpuddYis4tv6.jpg" mos="" align="middle" fullscreen="" width="911" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>If you're looking for an Android phone that stands apart from standard glossy flagships, TCL’s NXTPAPER 70 Pro delivers a unique, glare-free paper-like display. Powered by a MediaTek Dimensity 7300 processor, it packs 8GB of RAM, 128GB of expandable storage, a 6.9-inch 120Hz matte display, and a dedicated NXTPAPER Key switch. Plus, it brings back a built-in IR sensor alongside a 5,200mAh battery for multi-day reading and daily use. <a class="view-deal button" href="https://www.amazon.com/TCL-NXTPAPER-Unlocked-Android-Display/dp/B0GY3MJH6T" target="_blank" rel="nofollow" data-dimension112="33a2a68c-a428-11f1-b689-653407cd15b1" data-action="Deal Block" data-label="NXTPAPER 70 Pro" data-dimension48="NXTPAPER 70 Pro" data-dimension25="$279">View Deal</a></p></div><h2 id="a-more-refined-nxtpaper-phone">A more refined NXTPAPER phone</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="THgJF9VNSBtjihFk5Nd93L" name="TCL NXTPAPER 70 Pro-6" alt="The TCL NXTPAPER 70 Pro on its side showing off its buttons and NXTPAPER Key" src="https://cdn.mos.cms.futurecdn.net/THgJF9VNSBtjihFk5Nd93L.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Now I’ll admit, this wasn’t my first experience with one of TCL’s NXTPAPER phones. Alongside those two tablets, the company also sent over its <a href="https://www.tomsguide.com/phones/android-phones/i-just-saw-the-coolest-phone-of-ces-2025-that-changes-from-e-ink-to-full-color-with-the-flick-of-a-switch">60 XE</a>. However, while that phone did the job, it wasn’t nearly as polished as the 70 Pro.</p><p>Available in blue or gold, the 70 Pro feels much more premium in hand thanks to its subtle curves and slimmer, dual-camera array. On the right side, there’s a volume rocker, a power button with an integrated fingerprint scanner, and a dedicated NXTPAPER Key that works more like a toggle switch. While under-display fingerprint sensors are the norm these days, I absolutely love having one right on the device’s power button — the second I pick it up, I’ve already securely logged in.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="sjDKyyw2Mrak5h7cA74CMP" name="TCL NXTPAPER 70 Pro-4" alt="A close-up shot showing off the TCL NXTPAPER 70 Pro's USB-C port and SIM card slot" src="https://cdn.mos.cms.futurecdn.net/sjDKyyw2Mrak5h7cA74CMP.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>On the bottom of the device, there’s a speaker grille on the left, a USB-C port of the slower USB 2.0 variety in the center with a microphone next to it, and a SIM card slot on the right. What’s nice about the SIM card slot is that it supports either dual SIM cards or, if you’re only using one, you can add a microSD card to expand the device’s storage capacity. Speaking of storage, the 70 Pro is available with 128GB, 256GB, or 512GB of storage. If you have the 128GB model like I do, it’s nice knowing you can easily add more storage later on. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nwch3zmaN5exicChUnhG6S" name="TCL NXTPAPER 70 Pro-5" alt="The IR sensor on the top of the TCL NXTPAPER 70 Pro" src="https://cdn.mos.cms.futurecdn.net/nwch3zmaN5exicChUnhG6S.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Even though the 70 Pro is definitely a budget phone, it has one feature that you won’t find practically anywhere else anymore: an IR sensor. Although they were quite popular in the mid-2010s, Samsung decided to drop them and the rest of the industry followed suit. Personally, I was glad to see one on the 70 Pro, but I never thought I’d actually use it. Little did I know, it ended up being my second favorite feature after the screen — which, of course, is the star of the show. </p><h2 id="glare-free-smooth-scrolling">Glare free, smooth scrolling</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="eDYLodVEABBqtaYSopQTwV" name="TCL NXTPAPER 70 Pro-2" alt="The TCL NXTPAPER 70 Pro in hand showing off the selection screen for its various NXTPAPER modes" src="https://cdn.mos.cms.futurecdn.net/eDYLodVEABBqtaYSopQTwV.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Just like on TCL’s NXTPAPER tablets I tested, with a toggle of the NXTPAPER Key on the lower right side, you can instantly transform its display. There are three modes to pick from: Color Paper Mode, Ink Paper Mode, and Max Ink Mode. Color Paper and Ink Paper give you the same functionality you normally have — albeit with either a slightly desaturated or black-and-white screen — while Max Ink Mode gives you an almost full e-reader-like experience while limiting you to just a handful of essential apps.</p><p>Even if you don’t decide to use one of these specialized display modes, the 70 Pro looks and feels unlike any other phone. While the <a href="https://www.tomsguide.com/phones/iphones/i-just-upgraded-to-the-iphone-17-from-the-iphone-12-and-these-are-the-5-big-things-i-noticed">iPhone 17</a> and <a href="https://www.tomsguide.com/phones/samsung-phones/samsung-galaxy-s26-fe-review">Galaxy S26</a> have glossy and much more reflective screens, this one has a matte, glare-free panel that feels much smoother while scrolling. Another big benefit with the 70 Pro is outdoor use. Even on a bright, sunny summer day, I could clearly make out its screen. In fact, it looked almost vivid in those conditions compared to other phones.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:59.79%;"><img id="EkFTSUAEQpHXqGBcvtaGkZ" name="nxtpaper-70-pro-features" alt="A series of screenshots showing off the apps and settings on the TCL NXTPAPER 70 Pro" src="https://cdn.mos.cms.futurecdn.net/EkFTSUAEQpHXqGBcvtaGkZ.jpg" mos="" align="middle" fullscreen="" width="1920" height="1148" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>TCL gives you an almost stock Android experience with a few small tweaks and some useful first-party apps. One small change I found particularly useful was the sidebar. If you swipe in from either side and hold, this brings up the sidebar, which you can customize to your liking. I decided to put all my smart home apps there to make it easier to quickly turn off the lights or pull up a live feed from one of my security cameras.</p><p>On the 70 Pro, there are also a number of pre-loaded wallpapers that really take advantage of its unique display too. Likewise, within the settings, instead of having to cycle through all the different NXTPAPER modes, you can set the toggle to immediately switch to your favorite one.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NTdPK7ctTa4ZJSBMq3vhge" name="TCL NXTPAPER 70 Pro-3" alt="A person holding up the TCL NXTPAPER 70 Pro with the device in Max Ink Mode at a restaurant" src="https://cdn.mos.cms.futurecdn.net/NTdPK7ctTa4ZJSBMq3vhge.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Speaking of which, I found Max Ink Mode to really come in handy when I was out and about. Not only did it extend the device’s battery life significantly — all the way up to 51 hours in the photo above — but by limiting which apps you can use, this also helped me avoid getting distracted by my phone. Phone calls and messages still come through, but you won’t find yourself endlessly scrolling on social media when there’s a lull in the conversation or while you’re waiting for a drink at the bar.</p><p>I really thought I would miss wireless charging a lot more than I did. However, as it turns out, just giving the device a quick charge every now and then kept my battery topped off. Even at the end of a long, phone-heavy day, I usually still had about 30% battery life left by the time I reached for my charger.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xAQGazC9TUeVxh2FJmnGAi" name="TCL NXTPAPER 70 Pro-9" alt="A person using the stylus from the TCL NXTPAPER 11 Plus on the TCL NXTPAPER 70 Pro" src="https://cdn.mos.cms.futurecdn.net/xAQGazC9TUeVxh2FJmnGAi.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Now, I believe TCL sells the 70 Pro in a bundle with a case and a stylus in Europe. In the U.S., though, I just got the phone itself in the box. I was slightly disappointed at first, since scrolling with a stylus feels fantastic on TCL’s NXTPAPER tablets. As I wasn’t sure whether or not TCL’s styluses were device-specific, I decided to try the one that comes with the NXTPAPER 11 Plus on the 70 Pro. Much to my surprise, it worked perfectly — and while I didn’t have to pair anything via Bluetooth, I did have to toggle on "Stylus" in the phone’s settings menu. </p><h2 id="a-remote-for-almost-all-your-devices">A remote for (almost) all your devices</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="jpGA8AzduW5ohs8BwhXi8B" name="TCL NXTPAPER 70 Pro-7" alt="A person holding up the TCL NXTPAPER 70 Pro with TCL's IR Remote app open to control their TV" src="https://cdn.mos.cms.futurecdn.net/jpGA8AzduW5ohs8BwhXi8B.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I finally decided to give the IR sensor a proper try towards the end of my month with the 70 Pro, and I’m so glad I did. You see, at first, I wasn’t able to add any of my devices simply because I didn’t look hard enough within the menus of TCL’s IR Remote app. For instance, I initially searched for my <a href="https://www.tomsguide.com/opinion/i-was-a-die-hard-chromecast-fan-until-i-tried-the-roku-ultra-and-im-not-going-back">Roku Ultra</a> under “Set-top box” without any luck, only to later find it tucked under “Netbox” after digging through the app's menus a bit more.</p><p>With the app open and your devices added, you just point the 70 Pro’s IR sensor at the device you want to control, tap on one of the on-screen buttons, and it does the rest. I can fully navigate and control my Roku Ultra as well as my Vizio soundbar. Unfortunately, I wasn’t able to add my Vizio TV because I couldn’t find the right remote layout within the app. Likewise, I really wanted to control my Vornado tower fan, but that wasn’t one of the listed brands.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:59.79%;"><img id="Mp7ZbyHHHwq3eXiBvgMfoD" name="nxtpaper-70-pro-ir-remote" alt="A series of screenshots showing TCL's IR Remote app on the TCL NXTPAPER 70 Pro" src="https://cdn.mos.cms.futurecdn.net/Mp7ZbyHHHwq3eXiBvgMfoD.jpg" mos="" align="middle" fullscreen="" width="1920" height="1148" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If your devices are supported, adding them is quite easy. After tapping on “Add a new device,” you select the category and you’re presented with a list of brands. There are quite a lot of options in each category, but fortunately, the most popular ones are listed right at the top. From there, you point the 70 Pro at the target device and try a few different power or play buttons to see if your hardware matches TCL’s database.</p><p>Even though I couldn’t map every single device in my home, having a <a href="https://www.tomsguide.com/us/best-universal-remotes,review-4464.html">universal remote</a> right on my phone is genuinely useful. It’s a lifesaver for those times when you misplace your physical remote or when your kid decides to walk off with it — something that has happened to me on a few occasions recently.</p><p>Now, I wouldn’t buy the 70 Pro for the IR sensor alone. Instead, I see it as icing on the cake, given that the glare-free and smooth matte display — along with the integrated fingerprint scanner — remains my favorite thing about this phone overall.</p><h2 id="like-paper-in-your-pocket">Like paper in your pocket</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="GrftH6q56uVYVuyW2iGSyH" name="TCL NXTPAPER 70 Pro-8" alt="The TCL NXTPAPER 70 Pro phone on top of the TCL NXTPAPER 11 Plus tablet on a table" src="https://cdn.mos.cms.futurecdn.net/GrftH6q56uVYVuyW2iGSyH.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Now that I’ve been using the NXTPAPER 70 Pro for over a month, I’m reluctant to switch back to my more powerful Nothing Phone (2) — which is starting to look a bit long in the tooth itself. While I am considering picking up one of the <a href="https://www.tomsguide.com/us/best-phone-cameras,review-2272.html">best camera phones</a> for those times when I need to shoot pics for work but don’t want to bring my DSLR along, I feel almost spoiled by the 70 Pro’s display.</p><p>Sure, e-reader-like capabilities and reduced eye strain are its big selling points on paper. However, for me, I just love having a device I can actually see regardless of how bright the overhead sun is. At the same time, the feel of its matte display underneath my fingertips has completely won me over. A lot of people associate glossy screens with a premium feel, but I’ve been on a real matte kick recently after using TCL’s NXTPAPER tablets and reviewing Apple’s new Studio Display XDR with its nano-texture glass option.</p><p>Although the 70 Pro is a massive improvement over the 60 XE I tried out first, I’m hoping TCL takes things a step further next time around. Instead of just budget devices, I’d gladly pay more for a true flagship-style NXTPAPER phone — complete with a triple-camera array, fast USB 3.0 connectivity, and wireless charging. That way, I’d only need to carry one device with me wherever I go.</p><p>Overall, though, if you don’t want to drop a ton of cash on a flagship and are looking for something that looks and feels genuinely different, the NXTPAPER 70 Pro is certainly worth checking out — especially if, like me, you take a lot of photos of your phone screens for work.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/phones/i-shot-the-same-25-photos-with-a-usd329-budget-phone-and-usd1-199-flagship-heres-the-results"><strong>I shot the same 25 photos with a $329 budget phone and $1,199 flagship — here's the results</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/phones/android-phones/the-tcl-nxtpaper-70-pros-stylus-just-fixed-an-issue-i-never-knew-i-had-with-handwriting-digital-notes"><strong>The TCL NXTPAPER 70 Pro's stylus just fixed an issue I never knew I had with handwriting digital notes</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/monitors/i-spent-a-week-with-dual-apple-studio-displays-and-realized-ive-been-lying-to-myself-about-glossy-screens-for-years"><strong>I spent a week with dual Apple Studio Displays and realized I’ve been lying to myself about glossy screens for years</strong></a><strong></strong></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/phones/i-spent-a-month-with-this-usd330-smartphone-with-a-paper-like-display-and-it-completely-changed-my-mind-on-budget-phones</link>
                                                                            <description>
                            <![CDATA[ After testing tablets with the same tech, I daily drove the TCL NXTPAPER 70 Pro for a month to have a phone with a matte display in my pocket at all times. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">eheNXqsuriZU9nNtp5aZQQ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/zdy2vFAX2RS5gSUX5km2ZG-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 30 Aug 2026 11:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Phones]]></category>
                                                    <category><![CDATA[Tablets]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                                                                <author><![CDATA[ anthony.spadafora@futurenet.com (Anthony Spadafora) ]]></author>                    <dc:creator><![CDATA[ Anthony Spadafora ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/z73LEoj7FkUjNG85GcWHtH.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Anthony Spadafora is the managing editor for security and home office furniture at Tom’s Guide where he covers everything from data breaches and malware to password managers and the best way to cover your whole home or business with a strong Wi-Fi signal.&lt;/p&gt;&lt;p&gt;Before joining the team, he spent three years covering cybersecurity and B2B tech for ITProPortal while living in South Korea. After moving back to the US. Anthony joined the TechRadar Pro team where he covered these topics along with VPNs, web hosting, online collaboration software and video conferencing for four years. Anthony also has his ears to the ground and is on the lookout for the next major cyberattack or data breach.&lt;/p&gt;&lt;p&gt;Based in Houston, Texas, Anthony also handles VPN testing for both Tom’s Guide and TechRadar. As someone who has worked from home exclusively since 2018, he has reviewed dozens of standing desks as well as office chairs and has taken a closer look at other essential remote working accessories. As part of these reviews, Anthony frequently builds intricate desk setups which is why he’s such a big advocate for cable management and keeping things organized. When he’s not writing, he can be found tinkering with PCs and game consoles, managing cables and making upgrades to his smart home.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/zdy2vFAX2RS5gSUX5km2ZG-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A person holding the TCL NXTPAPER 70 Pro in hand outside on a very sunny day]]></media:description>                                                            <media:text><![CDATA[A person holding the TCL NXTPAPER 70 Pro in hand outside on a very sunny day]]></media:text>
                                <media:title type="plain"><![CDATA[A person holding the TCL NXTPAPER 70 Pro in hand outside on a very sunny day]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/zdy2vFAX2RS5gSUX5km2ZG-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Calling it quits on my current smartphone and upgrading to a new one isn’t the kind of decision I make on a whim. Instead, it often amounts to months of research and then waiting for a sale before I finally pull the trigger. However, that wasn’t the case at all with the <a href="https://www.tomsguide.com/phones/i-used-tcl-nxtpaper-70-pro-mwc-2026">TCL NXTPAPER 70 Pro</a>.</p><p>Now, while I know the ins and outs of the <a href="https://www.tomsguide.com/best-picks/best-phones">best phones</a>, I’m not the type of person to drop a large sum of money on a flagship device. Part of the reason for this is that I prefer to buy my phones outright instead of going through my mobile carrier. This is why I usually go with a mid-range phone over a more premium one.</p><p>In the past, I’ve been tempted by the <a href="https://www.tomsguide.com/best-picks/best-cheap-phones">best cheap phones</a>, but one shortcoming or another always held me back. With the NXTPAPER 70 Pro, even though it does skimp out on some of my favorite, more premium features like wireless charging and a USB 3.0 port capable of video out, I was more than willing to leave my <a href="https://www.tomsguide.com/opinion/i-picked-the-nothing-phone-2-over-every-android-flagship-heres-why">Nothing Phone (2)</a> behind for it.</p><p>Ever since I first saw TCL’s NXTPAPER tech in person at a mall in Taiwan, I’ve been enamored by the matte, glare-free displays the company uses for it. After trying out the larger <a href="https://www.tomsguide.com/computing/tablets/i-tried-the-tcl-nxtpaper-11-plus-and-this-budget-tablet-is-easily-my-ipad-killer-heres-why">NXTPAPER 11 Plus</a> and <a href="https://www.tomsguide.com/computing/android-tablets/i-thought-smaller-was-better-until-i-tried-a-massive-14-inch-tablet-that-feels-like-a-clipboard">NXTPAPER 14</a> tablets, I figured it was time to try using this unique display tech as my daily driver — and I’m glad I did.</p><p>Here’s what it’s been like using the NXTPAPER 70 Pro for a month and why it will be especially hard going back to a phone with a glossy screen, even if it is more powerful.</p><div class="product"><a data-dimension112="33a2a68c-a428-11f1-b689-653407cd15b1" data-action="Deal Block" data-label="NXTPAPER 70 Pro" data-dimension48="NXTPAPER 70 Pro" data-dimension25="$279" href="https://www.amazon.com/TCL-NXTPAPER-Unlocked-Android-Display/dp/B0GY3MJH6T" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:911px;"><p class="vanilla-image-block" style="padding-top:164.65%;"><img id="wgHJMTHjVKQpuddYis4tv6" name="NXTPAPER 70 Pro" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/wgHJMTHjVKQpuddYis4tv6.jpg" mos="" align="middle" fullscreen="" width="911" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>If you're looking for an Android phone that stands apart from standard glossy flagships, TCL’s NXTPAPER 70 Pro delivers a unique, glare-free paper-like display. Powered by a MediaTek Dimensity 7300 processor, it packs 8GB of RAM, 128GB of expandable storage, a 6.9-inch 120Hz matte display, and a dedicated NXTPAPER Key switch. Plus, it brings back a built-in IR sensor alongside a 5,200mAh battery for multi-day reading and daily use. <a class="view-deal button" href="https://www.amazon.com/TCL-NXTPAPER-Unlocked-Android-Display/dp/B0GY3MJH6T" target="_blank" rel="nofollow" data-dimension112="33a2a68c-a428-11f1-b689-653407cd15b1" data-action="Deal Block" data-label="NXTPAPER 70 Pro" data-dimension48="NXTPAPER 70 Pro" data-dimension25="$279">View Deal</a></p></div><h2 id="a-more-refined-nxtpaper-phone">A more refined NXTPAPER phone</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="THgJF9VNSBtjihFk5Nd93L" name="TCL NXTPAPER 70 Pro-6" alt="The TCL NXTPAPER 70 Pro on its side showing off its buttons and NXTPAPER Key" src="https://cdn.mos.cms.futurecdn.net/THgJF9VNSBtjihFk5Nd93L.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Now I’ll admit, this wasn’t my first experience with one of TCL’s NXTPAPER phones. Alongside those two tablets, the company also sent over its <a href="https://www.tomsguide.com/phones/android-phones/i-just-saw-the-coolest-phone-of-ces-2025-that-changes-from-e-ink-to-full-color-with-the-flick-of-a-switch">60 XE</a>. However, while that phone did the job, it wasn’t nearly as polished as the 70 Pro.</p><p>Available in blue or gold, the 70 Pro feels much more premium in hand thanks to its subtle curves and slimmer, dual-camera array. On the right side, there’s a volume rocker, a power button with an integrated fingerprint scanner, and a dedicated NXTPAPER Key that works more like a toggle switch. While under-display fingerprint sensors are the norm these days, I absolutely love having one right on the device’s power button — the second I pick it up, I’ve already securely logged in.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="sjDKyyw2Mrak5h7cA74CMP" name="TCL NXTPAPER 70 Pro-4" alt="A close-up shot showing off the TCL NXTPAPER 70 Pro's USB-C port and SIM card slot" src="https://cdn.mos.cms.futurecdn.net/sjDKyyw2Mrak5h7cA74CMP.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>On the bottom of the device, there’s a speaker grille on the left, a USB-C port of the slower USB 2.0 variety in the center with a microphone next to it, and a SIM card slot on the right. What’s nice about the SIM card slot is that it supports either dual SIM cards or, if you’re only using one, you can add a microSD card to expand the device’s storage capacity. Speaking of storage, the 70 Pro is available with 128GB, 256GB, or 512GB of storage. If you have the 128GB model like I do, it’s nice knowing you can easily add more storage later on. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nwch3zmaN5exicChUnhG6S" name="TCL NXTPAPER 70 Pro-5" alt="The IR sensor on the top of the TCL NXTPAPER 70 Pro" src="https://cdn.mos.cms.futurecdn.net/nwch3zmaN5exicChUnhG6S.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Even though the 70 Pro is definitely a budget phone, it has one feature that you won’t find practically anywhere else anymore: an IR sensor. Although they were quite popular in the mid-2010s, Samsung decided to drop them and the rest of the industry followed suit. Personally, I was glad to see one on the 70 Pro, but I never thought I’d actually use it. Little did I know, it ended up being my second favorite feature after the screen — which, of course, is the star of the show. </p><h2 id="glare-free-smooth-scrolling">Glare free, smooth scrolling</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="eDYLodVEABBqtaYSopQTwV" name="TCL NXTPAPER 70 Pro-2" alt="The TCL NXTPAPER 70 Pro in hand showing off the selection screen for its various NXTPAPER modes" src="https://cdn.mos.cms.futurecdn.net/eDYLodVEABBqtaYSopQTwV.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Just like on TCL’s NXTPAPER tablets I tested, with a toggle of the NXTPAPER Key on the lower right side, you can instantly transform its display. There are three modes to pick from: Color Paper Mode, Ink Paper Mode, and Max Ink Mode. Color Paper and Ink Paper give you the same functionality you normally have — albeit with either a slightly desaturated or black-and-white screen — while Max Ink Mode gives you an almost full e-reader-like experience while limiting you to just a handful of essential apps.</p><p>Even if you don’t decide to use one of these specialized display modes, the 70 Pro looks and feels unlike any other phone. While the <a href="https://www.tomsguide.com/phones/iphones/i-just-upgraded-to-the-iphone-17-from-the-iphone-12-and-these-are-the-5-big-things-i-noticed">iPhone 17</a> and <a href="https://www.tomsguide.com/phones/samsung-phones/samsung-galaxy-s26-fe-review">Galaxy S26</a> have glossy and much more reflective screens, this one has a matte, glare-free panel that feels much smoother while scrolling. Another big benefit with the 70 Pro is outdoor use. Even on a bright, sunny summer day, I could clearly make out its screen. In fact, it looked almost vivid in those conditions compared to other phones.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:59.79%;"><img id="EkFTSUAEQpHXqGBcvtaGkZ" name="nxtpaper-70-pro-features" alt="A series of screenshots showing off the apps and settings on the TCL NXTPAPER 70 Pro" src="https://cdn.mos.cms.futurecdn.net/EkFTSUAEQpHXqGBcvtaGkZ.jpg" mos="" align="middle" fullscreen="" width="1920" height="1148" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>TCL gives you an almost stock Android experience with a few small tweaks and some useful first-party apps. One small change I found particularly useful was the sidebar. If you swipe in from either side and hold, this brings up the sidebar, which you can customize to your liking. I decided to put all my smart home apps there to make it easier to quickly turn off the lights or pull up a live feed from one of my security cameras.</p><p>On the 70 Pro, there are also a number of pre-loaded wallpapers that really take advantage of its unique display too. Likewise, within the settings, instead of having to cycle through all the different NXTPAPER modes, you can set the toggle to immediately switch to your favorite one.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NTdPK7ctTa4ZJSBMq3vhge" name="TCL NXTPAPER 70 Pro-3" alt="A person holding up the TCL NXTPAPER 70 Pro with the device in Max Ink Mode at a restaurant" src="https://cdn.mos.cms.futurecdn.net/NTdPK7ctTa4ZJSBMq3vhge.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Speaking of which, I found Max Ink Mode to really come in handy when I was out and about. Not only did it extend the device’s battery life significantly — all the way up to 51 hours in the photo above — but by limiting which apps you can use, this also helped me avoid getting distracted by my phone. Phone calls and messages still come through, but you won’t find yourself endlessly scrolling on social media when there’s a lull in the conversation or while you’re waiting for a drink at the bar.</p><p>I really thought I would miss wireless charging a lot more than I did. However, as it turns out, just giving the device a quick charge every now and then kept my battery topped off. Even at the end of a long, phone-heavy day, I usually still had about 30% battery life left by the time I reached for my charger.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xAQGazC9TUeVxh2FJmnGAi" name="TCL NXTPAPER 70 Pro-9" alt="A person using the stylus from the TCL NXTPAPER 11 Plus on the TCL NXTPAPER 70 Pro" src="https://cdn.mos.cms.futurecdn.net/xAQGazC9TUeVxh2FJmnGAi.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Now, I believe TCL sells the 70 Pro in a bundle with a case and a stylus in Europe. In the U.S., though, I just got the phone itself in the box. I was slightly disappointed at first, since scrolling with a stylus feels fantastic on TCL’s NXTPAPER tablets. As I wasn’t sure whether or not TCL’s styluses were device-specific, I decided to try the one that comes with the NXTPAPER 11 Plus on the 70 Pro. Much to my surprise, it worked perfectly — and while I didn’t have to pair anything via Bluetooth, I did have to toggle on "Stylus" in the phone’s settings menu. </p><h2 id="a-remote-for-almost-all-your-devices">A remote for (almost) all your devices</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="jpGA8AzduW5ohs8BwhXi8B" name="TCL NXTPAPER 70 Pro-7" alt="A person holding up the TCL NXTPAPER 70 Pro with TCL's IR Remote app open to control their TV" src="https://cdn.mos.cms.futurecdn.net/jpGA8AzduW5ohs8BwhXi8B.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I finally decided to give the IR sensor a proper try towards the end of my month with the 70 Pro, and I’m so glad I did. You see, at first, I wasn’t able to add any of my devices simply because I didn’t look hard enough within the menus of TCL’s IR Remote app. For instance, I initially searched for my <a href="https://www.tomsguide.com/opinion/i-was-a-die-hard-chromecast-fan-until-i-tried-the-roku-ultra-and-im-not-going-back">Roku Ultra</a> under “Set-top box” without any luck, only to later find it tucked under “Netbox” after digging through the app's menus a bit more.</p><p>With the app open and your devices added, you just point the 70 Pro’s IR sensor at the device you want to control, tap on one of the on-screen buttons, and it does the rest. I can fully navigate and control my Roku Ultra as well as my Vizio soundbar. Unfortunately, I wasn’t able to add my Vizio TV because I couldn’t find the right remote layout within the app. Likewise, I really wanted to control my Vornado tower fan, but that wasn’t one of the listed brands.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:59.79%;"><img id="Mp7ZbyHHHwq3eXiBvgMfoD" name="nxtpaper-70-pro-ir-remote" alt="A series of screenshots showing TCL's IR Remote app on the TCL NXTPAPER 70 Pro" src="https://cdn.mos.cms.futurecdn.net/Mp7ZbyHHHwq3eXiBvgMfoD.jpg" mos="" align="middle" fullscreen="" width="1920" height="1148" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If your devices are supported, adding them is quite easy. After tapping on “Add a new device,” you select the category and you’re presented with a list of brands. There are quite a lot of options in each category, but fortunately, the most popular ones are listed right at the top. From there, you point the 70 Pro at the target device and try a few different power or play buttons to see if your hardware matches TCL’s database.</p><p>Even though I couldn’t map every single device in my home, having a <a href="https://www.tomsguide.com/us/best-universal-remotes,review-4464.html">universal remote</a> right on my phone is genuinely useful. It’s a lifesaver for those times when you misplace your physical remote or when your kid decides to walk off with it — something that has happened to me on a few occasions recently.</p><p>Now, I wouldn’t buy the 70 Pro for the IR sensor alone. Instead, I see it as icing on the cake, given that the glare-free and smooth matte display — along with the integrated fingerprint scanner — remains my favorite thing about this phone overall.</p><h2 id="like-paper-in-your-pocket">Like paper in your pocket</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="GrftH6q56uVYVuyW2iGSyH" name="TCL NXTPAPER 70 Pro-8" alt="The TCL NXTPAPER 70 Pro phone on top of the TCL NXTPAPER 11 Plus tablet on a table" src="https://cdn.mos.cms.futurecdn.net/GrftH6q56uVYVuyW2iGSyH.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Now that I’ve been using the NXTPAPER 70 Pro for over a month, I’m reluctant to switch back to my more powerful Nothing Phone (2) — which is starting to look a bit long in the tooth itself. While I am considering picking up one of the <a href="https://www.tomsguide.com/us/best-phone-cameras,review-2272.html">best camera phones</a> for those times when I need to shoot pics for work but don’t want to bring my DSLR along, I feel almost spoiled by the 70 Pro’s display.</p><p>Sure, e-reader-like capabilities and reduced eye strain are its big selling points on paper. However, for me, I just love having a device I can actually see regardless of how bright the overhead sun is. At the same time, the feel of its matte display underneath my fingertips has completely won me over. A lot of people associate glossy screens with a premium feel, but I’ve been on a real matte kick recently after using TCL’s NXTPAPER tablets and reviewing Apple’s new Studio Display XDR with its nano-texture glass option.</p><p>Although the 70 Pro is a massive improvement over the 60 XE I tried out first, I’m hoping TCL takes things a step further next time around. Instead of just budget devices, I’d gladly pay more for a true flagship-style NXTPAPER phone — complete with a triple-camera array, fast USB 3.0 connectivity, and wireless charging. That way, I’d only need to carry one device with me wherever I go.</p><p>Overall, though, if you don’t want to drop a ton of cash on a flagship and are looking for something that looks and feels genuinely different, the NXTPAPER 70 Pro is certainly worth checking out — especially if, like me, you take a lot of photos of your phone screens for work.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/phones/i-shot-the-same-25-photos-with-a-usd329-budget-phone-and-usd1-199-flagship-heres-the-results"><strong>I shot the same 25 photos with a $329 budget phone and $1,199 flagship — here's the results</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/phones/android-phones/the-tcl-nxtpaper-70-pros-stylus-just-fixed-an-issue-i-never-knew-i-had-with-handwriting-digital-notes"><strong>The TCL NXTPAPER 70 Pro's stylus just fixed an issue I never knew I had with handwriting digital notes</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/monitors/i-spent-a-week-with-dual-apple-studio-displays-and-realized-ive-been-lying-to-myself-about-glossy-screens-for-years"><strong>I spent a week with dual Apple Studio Displays and realized I’ve been lying to myself about glossy screens for years</strong></a><strong></strong></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Hisense U7SG vs TCL QM7L: We tested both mid-range TVs and one is better for most people ]]></title>
                                                                                                <dc:content><![CDATA[ <p>This year, folks in the market for a mid-range TV have a handful of enticing options. We recently tested the <a href="https://www.tomsguide.com/tvs/4k-tvs/hisense-u7sg-uled-miniled-google-tv-review">Hisense U7SG</a> — a quantum dot-enhanced Mini-LED TV — and found that it offers a bright, punchy picture and plenty of features for the price.</p><p>And then there's the <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-qm7l-review">TCL QM7L</a>. Despite its mid-range status, this Mini-LED TV comes with TCL's Super Quantum Dot (SQD) technology, which has proven effective when it comes to saturating a wider range of color than the U7SG's traditional quantum-dot display.</p><p>These sets offer similar performance in a similar price range. However, there are some differences you ought to be aware of before you shop.</p>        <div class="featured_product_block featured_block_versus" data-id="4a775396-a232-11f1-b689-0b6a0dfd3dc0">            <a href="https://www.tomsguide.com/tvs/4k-tvs/hisense-u7sg-uled-miniled-google-tv-review" data-model-name="Hisense U7SG" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/xGRoSUW6y324dzASnzhaP.jpg" alt="Hisense U7SG Mini-LED TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">Hisense U7SG</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="70" /></span></div>                                        <p><p>The Hisense U7SG is a mid-range, quantum dot-equipped Mini-LED TV whose display hardware delivers a bright, colorful picture. It also comes with a wide array of gaming features for the price. While slightly cheaper than the TCL QM7L, its performance isn't quite as sharp as TCL's mid-range competitor.</p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_versus" data-id="4a77545e-a232-11f1-9c8c-0d41eed217f8">            <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-qm7l-review" data-model-name="TCL QM7L,TCL QM7L 75-inch TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/dmQvthmnqDJWtBsrEduZaK.jpg" alt="TCL QM7L SQD Mini-LED TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL QM7L</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="90" /></span></div>                                        <p><p>This mid-range Mini-LED TV offers a bright, colorful picture for the price, and thanks to TCL's new SQD technology, the QM7L is punchier than the Hisense U7SG. The QM7L carries a slightly higher price, but it's a smarter pick for folks who want the best-possible performance in this price range.</p></p>                </div>                            </div>        </div><h2 id="hisense-u7sg-vs-tcl-qm7l-specs-compared">Hisense U7SG vs TCL QM7L: Specs compared</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>Hisense U7SG</p></th><th  ><p>TCL QM7L</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Sizes</strong></p></td><td  ><p>55", 65", 75", 85", 100"</p></td><td  ><p>55", 65", 75", 85", 98"</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>4x HDMI 2.1</p></td><td  ><p>2x HDMI 2.1, 2x HDMI 2.0</p></td></tr><tr><td class="firstcol " ><p><strong>Resolution</strong></p></td><td  ><p>3,840 x 2,160p</p></td><td  ><p>3,840 x 2,160p</p></td></tr><tr><td class="firstcol " ><p><strong>Refresh rate</strong></p></td><td  ><p>165Hz</p></td><td  ><p>144Hz</p></td></tr><tr><td class="firstcol " ><p><strong>HDR</strong></p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td></tr><tr><td class="firstcol " ><p><strong>Smart TV software</strong></p></td><td  ><p>Google TV</p></td><td  ><p>Google TV</p></td></tr><tr><td class="firstcol " ><p><strong>ATSC 3.0 support?</strong></p></td><td  ><p>Yes</p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Processor</strong></p></td><td  ><p>Hi-View AI Engine Pro</p></td><td  ><p>TSR AI Pro Processor</p></td></tr></tbody></table></div><p>Before we talk about how they differ, let's cover the similarities: Size availability, HDR and ATSC 3.0 support are about the same across both TVs. </p><p>However, while both sets arrive with the standard set of four total HDMI inputs, only two of the QM7L's inputs offer HDMI 2.1 compatibility. With the U7SG, you'll enjoy a full suite of HDMI 2.1-compatible inputs.</p><p>With four high-bandwidth ports, the U7SG offers more flexibility, as they all support 4K content at 120Hz (and up to 165Hz with VRR). Only two of the QM7L's inputs support 4K content at 120Hz and up to 144Hz. Fortunately, the QM7L's dedicated eARC input isn't pulling double-duty as one of the TV's only high-bandwidth inputs.</p><p><em><strong>Winner: </strong></em><em>Hisense U7SG</em></p><h2 id="hisense-u7sg-vs-tcl-qm7l-design">Hisense U7SG vs TCL QM7L: Design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="N3cJ424LxWLJdr9gM677v7" name="Hisense-U7-2026--12" alt="The back of a Hisense U7SG ULED Mini-LED Google TV" src="https://cdn.mos.cms.futurecdn.net/N3cJ424LxWLJdr9gM677v7.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Due in part to the nature of its display hardware, the Hisense U7SG (seen above) is thicker than many Mini-LED TVs we've seen in recent years. Nevertheless, it's constructed out of sturdy plastic and the overall aesthetic is similar to what you'll find in its price range this year.</p><p>The U7SG's panel sits on top of a pedestal-style stand that takes the form of a heavy plate that sits below the center of the screen. For some viewers, this type of stand is more convenient than a pair of feet, as the center-positioning allows the U7SG to sit on narrow pieces of furniture.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Yr86FrXitSAoCWjQX6t23J" name="TCL-75QM7L-TV--21" alt="The back of a TCL QM7L 75-inch TV" src="https://cdn.mos.cms.futurecdn.net/Yr86FrXitSAoCWjQX6t23J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As you can see from the photo above, the QM7L is very similar in its design approach. It, too, features a thick, heavy panel, which measures about the same depth as the U7SG.</p><p>Like the U7SG, the QM7L also relies on a centered, pedestal-style stand. Conveniently, the QM7L's stand can be attached in two height configurations. This helps to ensure that people with taller soundbars have an setup option in which the soundbar won't obstruct the screen.</p><p>Both TVs ship with backlit remote controls, which is quite nice to have in a dark room. Of the two, I prefer TCL's remote design, but there aren't too many differing characteristics worth calling out.</p><p>Given the similarities, this category is a toss-up. The U7SG and QM7L aren't as slim and premium-looking as other LED TVs we've seen in recent years, but neither looks (or feels) poorly designed.</p><p><em><strong>Winner:</strong></em><em> Draw</em></p><h2 id="hisense-u7sg-vs-tcl-qm7l-performance">Hisense U7SG vs TCL QM7L: Performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="PZdPKGEpGuu4ZP6kEoQ8k7" name="Hisense-U7-2026--4" alt="Hisense U7SG ULED Mini-LED Google TV on a desk" src="https://cdn.mos.cms.futurecdn.net/PZdPKGEpGuu4ZP6kEoQ8k7.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Before we dig deeper into how these TVs look, let's compare their test results. (Both TVs were in their respective Filmmaker picture modes when these tests were taken.)</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>Hisense U7SG</strong></p></th><th  ><p><strong>TCL QM7L</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>SDR Brightness (10%, in nits)    </strong></p></td><td  ><p>185</p></td><td  ><p>196</p></td></tr><tr><td class="firstcol " ><p><strong>Delta-E (lower is better)    </strong></p></td><td  ><p>3</p></td><td  ><p>2.6</p></td></tr><tr><td class="firstcol " ><p><strong>HDR Brightness (10%, in nits)    </strong></p></td><td  ><p>2,866</p></td><td  ><p>2,270</p></td></tr><tr><td class="firstcol " ><p><strong>UHDA-P3 Gamut Coverage    </strong></p></td><td  ><p>97.31%</p></td><td  ><p>97.64%</p></td></tr><tr><td class="firstcol " ><p><strong>Rec.2020 Gamut Coverage    </strong></p></td><td  ><p>82.75% </p></td><td  ><p>90.28%</p></td></tr><tr><td class="firstcol " ><p><strong>Input latency (milliseconds)   </strong></p></td><td  ><p>9.8</p></td><td  ><p>9.4</p></td></tr></tbody></table></div><p>In many ways, these TVs offer similar performance profiles. As mid-range Mini-LED TVs with quantum-dot color, they offer bright, colorful pictures — far brighter than what you'll see on entry-level LED TVs. This is especially true during HDR movies and shows, where the U7SG and QM7L each deliver over 2,000 nits of highlight brightness.</p><p>While we consistently tracked higher HDR highlight brightness on the U7SG, it's worth mentioning that the gap between the U7SG's roughly 2,900 nits of highlight brightness and the QM7L's 2,300 nits is not very substantial. </p><p>We measured similar readings for Delta-E, a figure that represents color error (with lower numbers being more desirable). There's not much of a difference between a Delta-E of 3 and 2.6, and both measurements indicate that the U7SG and QM7L feature accurate color that won't appear out-of-tune to almost every viewer.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uMLFconvVq2gEVGqSYEM7J" name="TCL-75QM7L-TV--6" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/uMLFconvVq2gEVGqSYEM7J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div><blockquote><p>The biggest difference between them concerns color.</p></blockquote></div><p>The biggest difference between them concerns color. The QM7L is one of a few TVs to harness TCL's proprietary Super Quantum Dot (SQD) technology. This has proven to be effective at boosting color compared to standard quantum-dot color (the kind you'll find on the U7SG).</p><p>In certain viewing conditions, people are more likely to notice the QM7L's punchier color than they are the U7SG's higher brightness. (Impressively, the QM7L's color is right in line with what we measured on the more-expensive <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L</a>.) It mostly depends on the content.</p><p>To my eyes, the QM7L does a slightly better job of upscaling sub-4K content than the U7SG, too. </p><p>Additionally, my colleague Sean Captain noted that the U7SG has a tendency to crush near-black shadow detail during select HDR content.</p><p>The added color and tighter contrast make the QM7L an all-around better performer, but it's worth noting just how close these TVs are in their presentation.</p><p><em><strong>Winner:</strong></em><em> TCL QM7L</em></p><h2 id="hisense-u7sg-vs-tcl-qm7l-smart-platform-and-features">Hisense U7SG vs TCL QM7L: Smart platform and features</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8W92tzskjsfsuu4Wzgdrt7" name="Hisense-U7-2026--11" alt="Hisense U7SG ULED Mini-LED Google TV on a desk" src="https://cdn.mos.cms.futurecdn.net/8W92tzskjsfsuu4Wzgdrt7.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Both TVs are built around the Google TV streaming platform, and the software feels more or less the same on each set. Google TV is one of my preferred streaming platforms (just behind Roku), as navigation is relatively easy and it supports nearly every streaming service and app you could want.</p><p>In addition, the U7SG and QM7L both arrive with a similar set gaming features right out of the box. These features include Variable Refresh Rate (VRR) and AMD FreeSync Premium Pro (for smooth, tear-free gaming).</p><p>Each set supports 4K gaming at 120Hz, the highest 4K spec for current-generation consoles like Xbox Series X and PlayStation 5. One thing to keep in mind, however, is that the U7SG can stretch this to 165Hz with a gaming rig hooked up, while the QM7L can only reach 4K/144Hz.</p><p>Remember: The QM7L comes with just two HDMI 2.1-compatible inputs. In order to access any of these advanced gaming enhancements, you've got to use one of the QM7L's designated HDMI 2.1 ports. The U7SG, on the other hand, comes with four HDMI 2.1 inputs, which adds to its gaming prowess.</p><p>However, we've already settled this advantage when we were comparing these TVs' specs. In almost every other way that matters to the average viewer, the U7SG and QM7L are equals when it comes to features.</p><p><em><strong>Winner:  </strong></em><em>Draw</em></p><h2 id="hisense-u7sg-vs-tcl-qm7l-outlook">Hisense U7SG vs TCL QM7L: outlook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Eu5JE4ZyJAnXdasQHjSC3J" name="TCL-75QM7L-TV--5" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/Eu5JE4ZyJAnXdasQHjSC3J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>Hisense U7SG</p></th><th  ><p>TCL QM7L</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Specs (25)</strong></p></td><td  ><p>23</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Design (25)</strong></p></td><td  ><p>22</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Performance (25)</strong></p></td><td  ><p>21</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Features (25)</strong></p></td><td  ><p>23</p></td><td  ><p>23</p></td></tr><tr><td class="firstcol " ><p><strong>Total Score (100)</strong></p></td><td  ><p><strong>89</strong></p></td><td  ><p><strong>89</strong></p></td></tr></tbody></table></div><p>Here's some good news: Regardless of which of these mid-range TVs you pick, you'll be setting yourself up for terrific performance relative to price, as well as a thorough selection of features for gaming and streaming. As I see it, the choice comes down to price and performance.</p><p>At some size points, these TVs are priced similarly. The <a href="https://www.bestbuy.com/product/hisense-65-class-u7-miniled-qled-uhd-4k-hdr-glare-free-smart-google-tv-with-gemini-2026/J3Z9Z42HT2" target="_blank" rel="nofollow">65-inch Hisense U7SG is on sale for $899 at Best Buy</a> right now, and the <a href="https://www.bestbuy.com/product/tcl-65-class-qm7l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTHL6R" target="_blank" rel="nofollow">65-inch TCL QM7L is just $899</a>, too. However, from what I've gathered, the 65-inch U7SG is more likely to be on sale for this price, while the 65-inch QM7L has fluctuated in recent weeks between $899 and $1,199.</p><p>At the 55-inch size point, the TCL QM7L is currently $799, while the U7SG sits just below $700. If you're intent is to shop for a 55-inch screen, the U7SG is more likely to be cheaper, too.</p><p>But if you're looking for the best possible performance, my choice would be the QM7L across all size options. Its SQD-powered color can be a difference-maker during certain content. </p><p>Unless the U7SG's full slate of HDMI 2.1 inputs is essential to your setup, I suspect that most A/V enthusiasts would prefer the QM7L's excellent presentation.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/4k-tvs/hisense-u7sg-uled-miniled-google-tv-review">Hisense U7SG review</a></li><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-qm7l-review">TCL QM7L review</a></li><li><a href="https://www.tomsguide.com/tvs/the-ram-crisis-came-for-computers-first-and-now-its-coming-for-tvs-heres-why-i-recommend-upgrading-while-you-still-can">The RAM crisis came for computers first and now it's coming for TVs — here's why I recommend upgrading while you still can</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/4k-tvs/hisense-u7sg-vs-tcl-qm7l-we-tested-both-mid-range-tvs-and-one-is-better-for-most-people</link>
                                                                            <description>
                            <![CDATA[ The Hisense U7SG and TCL QM7L are two mid-range 4K TVs for 2026. Here's how they compare — from performance to features and price. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">iKRLzUiGdVAKLjSmv9CUGF</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/aCbfmaS79Xj7bv9SBGshzf-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Fri, 28 Aug 2026 05:00:00 +0000</pubDate>                                                                                                                                <updated>Fri, 28 Aug 2026 13:28:26 +0000</updated>
                                                                                                                                            <category><![CDATA[4k TVs]]></category>
                                                    <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/aCbfmaS79Xj7bv9SBGshzf-1280-80.png">
                                                            <media:credit><![CDATA[Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Hisense U7SG in a side-by-side composite with the TCL QM7L]]></media:description>                                                            <media:text><![CDATA[The Hisense U7SG in a side-by-side composite with the TCL QM7L]]></media:text>
                                <media:title type="plain"><![CDATA[The Hisense U7SG in a side-by-side composite with the TCL QM7L]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/aCbfmaS79Xj7bv9SBGshzf-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>This year, folks in the market for a mid-range TV have a handful of enticing options. We recently tested the <a href="https://www.tomsguide.com/tvs/4k-tvs/hisense-u7sg-uled-miniled-google-tv-review">Hisense U7SG</a> — a quantum dot-enhanced Mini-LED TV — and found that it offers a bright, punchy picture and plenty of features for the price.</p><p>And then there's the <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-qm7l-review">TCL QM7L</a>. Despite its mid-range status, this Mini-LED TV comes with TCL's Super Quantum Dot (SQD) technology, which has proven effective when it comes to saturating a wider range of color than the U7SG's traditional quantum-dot display.</p><p>These sets offer similar performance in a similar price range. However, there are some differences you ought to be aware of before you shop.</p>        <div class="featured_product_block featured_block_versus" data-id="4a775396-a232-11f1-b689-0b6a0dfd3dc0">            <a href="https://www.tomsguide.com/tvs/4k-tvs/hisense-u7sg-uled-miniled-google-tv-review" data-model-name="Hisense U7SG" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/xGRoSUW6y324dzASnzhaP.jpg" alt="Hisense U7SG Mini-LED TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">Hisense U7SG</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="70" /></span></div>                                        <p><p>The Hisense U7SG is a mid-range, quantum dot-equipped Mini-LED TV whose display hardware delivers a bright, colorful picture. It also comes with a wide array of gaming features for the price. While slightly cheaper than the TCL QM7L, its performance isn't quite as sharp as TCL's mid-range competitor.</p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_versus" data-id="4a77545e-a232-11f1-9c8c-0d41eed217f8">            <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-qm7l-review" data-model-name="TCL QM7L,TCL QM7L 75-inch TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/dmQvthmnqDJWtBsrEduZaK.jpg" alt="TCL QM7L SQD Mini-LED TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL QM7L</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="90" /></span></div>                                        <p><p>This mid-range Mini-LED TV offers a bright, colorful picture for the price, and thanks to TCL's new SQD technology, the QM7L is punchier than the Hisense U7SG. The QM7L carries a slightly higher price, but it's a smarter pick for folks who want the best-possible performance in this price range.</p></p>                </div>                            </div>        </div><h2 id="hisense-u7sg-vs-tcl-qm7l-specs-compared">Hisense U7SG vs TCL QM7L: Specs compared</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>Hisense U7SG</p></th><th  ><p>TCL QM7L</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Sizes</strong></p></td><td  ><p>55", 65", 75", 85", 100"</p></td><td  ><p>55", 65", 75", 85", 98"</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>4x HDMI 2.1</p></td><td  ><p>2x HDMI 2.1, 2x HDMI 2.0</p></td></tr><tr><td class="firstcol " ><p><strong>Resolution</strong></p></td><td  ><p>3,840 x 2,160p</p></td><td  ><p>3,840 x 2,160p</p></td></tr><tr><td class="firstcol " ><p><strong>Refresh rate</strong></p></td><td  ><p>165Hz</p></td><td  ><p>144Hz</p></td></tr><tr><td class="firstcol " ><p><strong>HDR</strong></p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td></tr><tr><td class="firstcol " ><p><strong>Smart TV software</strong></p></td><td  ><p>Google TV</p></td><td  ><p>Google TV</p></td></tr><tr><td class="firstcol " ><p><strong>ATSC 3.0 support?</strong></p></td><td  ><p>Yes</p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Processor</strong></p></td><td  ><p>Hi-View AI Engine Pro</p></td><td  ><p>TSR AI Pro Processor</p></td></tr></tbody></table></div><p>Before we talk about how they differ, let's cover the similarities: Size availability, HDR and ATSC 3.0 support are about the same across both TVs. </p><p>However, while both sets arrive with the standard set of four total HDMI inputs, only two of the QM7L's inputs offer HDMI 2.1 compatibility. With the U7SG, you'll enjoy a full suite of HDMI 2.1-compatible inputs.</p><p>With four high-bandwidth ports, the U7SG offers more flexibility, as they all support 4K content at 120Hz (and up to 165Hz with VRR). Only two of the QM7L's inputs support 4K content at 120Hz and up to 144Hz. Fortunately, the QM7L's dedicated eARC input isn't pulling double-duty as one of the TV's only high-bandwidth inputs.</p><p><em><strong>Winner: </strong></em><em>Hisense U7SG</em></p><h2 id="hisense-u7sg-vs-tcl-qm7l-design">Hisense U7SG vs TCL QM7L: Design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="N3cJ424LxWLJdr9gM677v7" name="Hisense-U7-2026--12" alt="The back of a Hisense U7SG ULED Mini-LED Google TV" src="https://cdn.mos.cms.futurecdn.net/N3cJ424LxWLJdr9gM677v7.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Due in part to the nature of its display hardware, the Hisense U7SG (seen above) is thicker than many Mini-LED TVs we've seen in recent years. Nevertheless, it's constructed out of sturdy plastic and the overall aesthetic is similar to what you'll find in its price range this year.</p><p>The U7SG's panel sits on top of a pedestal-style stand that takes the form of a heavy plate that sits below the center of the screen. For some viewers, this type of stand is more convenient than a pair of feet, as the center-positioning allows the U7SG to sit on narrow pieces of furniture.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Yr86FrXitSAoCWjQX6t23J" name="TCL-75QM7L-TV--21" alt="The back of a TCL QM7L 75-inch TV" src="https://cdn.mos.cms.futurecdn.net/Yr86FrXitSAoCWjQX6t23J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As you can see from the photo above, the QM7L is very similar in its design approach. It, too, features a thick, heavy panel, which measures about the same depth as the U7SG.</p><p>Like the U7SG, the QM7L also relies on a centered, pedestal-style stand. Conveniently, the QM7L's stand can be attached in two height configurations. This helps to ensure that people with taller soundbars have an setup option in which the soundbar won't obstruct the screen.</p><p>Both TVs ship with backlit remote controls, which is quite nice to have in a dark room. Of the two, I prefer TCL's remote design, but there aren't too many differing characteristics worth calling out.</p><p>Given the similarities, this category is a toss-up. The U7SG and QM7L aren't as slim and premium-looking as other LED TVs we've seen in recent years, but neither looks (or feels) poorly designed.</p><p><em><strong>Winner:</strong></em><em> Draw</em></p><h2 id="hisense-u7sg-vs-tcl-qm7l-performance">Hisense U7SG vs TCL QM7L: Performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="PZdPKGEpGuu4ZP6kEoQ8k7" name="Hisense-U7-2026--4" alt="Hisense U7SG ULED Mini-LED Google TV on a desk" src="https://cdn.mos.cms.futurecdn.net/PZdPKGEpGuu4ZP6kEoQ8k7.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Before we dig deeper into how these TVs look, let's compare their test results. (Both TVs were in their respective Filmmaker picture modes when these tests were taken.)</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>Hisense U7SG</strong></p></th><th  ><p><strong>TCL QM7L</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>SDR Brightness (10%, in nits)    </strong></p></td><td  ><p>185</p></td><td  ><p>196</p></td></tr><tr><td class="firstcol " ><p><strong>Delta-E (lower is better)    </strong></p></td><td  ><p>3</p></td><td  ><p>2.6</p></td></tr><tr><td class="firstcol " ><p><strong>HDR Brightness (10%, in nits)    </strong></p></td><td  ><p>2,866</p></td><td  ><p>2,270</p></td></tr><tr><td class="firstcol " ><p><strong>UHDA-P3 Gamut Coverage    </strong></p></td><td  ><p>97.31%</p></td><td  ><p>97.64%</p></td></tr><tr><td class="firstcol " ><p><strong>Rec.2020 Gamut Coverage    </strong></p></td><td  ><p>82.75% </p></td><td  ><p>90.28%</p></td></tr><tr><td class="firstcol " ><p><strong>Input latency (milliseconds)   </strong></p></td><td  ><p>9.8</p></td><td  ><p>9.4</p></td></tr></tbody></table></div><p>In many ways, these TVs offer similar performance profiles. As mid-range Mini-LED TVs with quantum-dot color, they offer bright, colorful pictures — far brighter than what you'll see on entry-level LED TVs. This is especially true during HDR movies and shows, where the U7SG and QM7L each deliver over 2,000 nits of highlight brightness.</p><p>While we consistently tracked higher HDR highlight brightness on the U7SG, it's worth mentioning that the gap between the U7SG's roughly 2,900 nits of highlight brightness and the QM7L's 2,300 nits is not very substantial. </p><p>We measured similar readings for Delta-E, a figure that represents color error (with lower numbers being more desirable). There's not much of a difference between a Delta-E of 3 and 2.6, and both measurements indicate that the U7SG and QM7L feature accurate color that won't appear out-of-tune to almost every viewer.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uMLFconvVq2gEVGqSYEM7J" name="TCL-75QM7L-TV--6" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/uMLFconvVq2gEVGqSYEM7J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div><blockquote><p>The biggest difference between them concerns color.</p></blockquote></div><p>The biggest difference between them concerns color. The QM7L is one of a few TVs to harness TCL's proprietary Super Quantum Dot (SQD) technology. This has proven to be effective at boosting color compared to standard quantum-dot color (the kind you'll find on the U7SG).</p><p>In certain viewing conditions, people are more likely to notice the QM7L's punchier color than they are the U7SG's higher brightness. (Impressively, the QM7L's color is right in line with what we measured on the more-expensive <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L</a>.) It mostly depends on the content.</p><p>To my eyes, the QM7L does a slightly better job of upscaling sub-4K content than the U7SG, too. </p><p>Additionally, my colleague Sean Captain noted that the U7SG has a tendency to crush near-black shadow detail during select HDR content.</p><p>The added color and tighter contrast make the QM7L an all-around better performer, but it's worth noting just how close these TVs are in their presentation.</p><p><em><strong>Winner:</strong></em><em> TCL QM7L</em></p><h2 id="hisense-u7sg-vs-tcl-qm7l-smart-platform-and-features">Hisense U7SG vs TCL QM7L: Smart platform and features</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8W92tzskjsfsuu4Wzgdrt7" name="Hisense-U7-2026--11" alt="Hisense U7SG ULED Mini-LED Google TV on a desk" src="https://cdn.mos.cms.futurecdn.net/8W92tzskjsfsuu4Wzgdrt7.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Both TVs are built around the Google TV streaming platform, and the software feels more or less the same on each set. Google TV is one of my preferred streaming platforms (just behind Roku), as navigation is relatively easy and it supports nearly every streaming service and app you could want.</p><p>In addition, the U7SG and QM7L both arrive with a similar set gaming features right out of the box. These features include Variable Refresh Rate (VRR) and AMD FreeSync Premium Pro (for smooth, tear-free gaming).</p><p>Each set supports 4K gaming at 120Hz, the highest 4K spec for current-generation consoles like Xbox Series X and PlayStation 5. One thing to keep in mind, however, is that the U7SG can stretch this to 165Hz with a gaming rig hooked up, while the QM7L can only reach 4K/144Hz.</p><p>Remember: The QM7L comes with just two HDMI 2.1-compatible inputs. In order to access any of these advanced gaming enhancements, you've got to use one of the QM7L's designated HDMI 2.1 ports. The U7SG, on the other hand, comes with four HDMI 2.1 inputs, which adds to its gaming prowess.</p><p>However, we've already settled this advantage when we were comparing these TVs' specs. In almost every other way that matters to the average viewer, the U7SG and QM7L are equals when it comes to features.</p><p><em><strong>Winner:  </strong></em><em>Draw</em></p><h2 id="hisense-u7sg-vs-tcl-qm7l-outlook">Hisense U7SG vs TCL QM7L: outlook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Eu5JE4ZyJAnXdasQHjSC3J" name="TCL-75QM7L-TV--5" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/Eu5JE4ZyJAnXdasQHjSC3J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>Hisense U7SG</p></th><th  ><p>TCL QM7L</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Specs (25)</strong></p></td><td  ><p>23</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Design (25)</strong></p></td><td  ><p>22</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Performance (25)</strong></p></td><td  ><p>21</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Features (25)</strong></p></td><td  ><p>23</p></td><td  ><p>23</p></td></tr><tr><td class="firstcol " ><p><strong>Total Score (100)</strong></p></td><td  ><p><strong>89</strong></p></td><td  ><p><strong>89</strong></p></td></tr></tbody></table></div><p>Here's some good news: Regardless of which of these mid-range TVs you pick, you'll be setting yourself up for terrific performance relative to price, as well as a thorough selection of features for gaming and streaming. As I see it, the choice comes down to price and performance.</p><p>At some size points, these TVs are priced similarly. The <a href="https://www.bestbuy.com/product/hisense-65-class-u7-miniled-qled-uhd-4k-hdr-glare-free-smart-google-tv-with-gemini-2026/J3Z9Z42HT2" target="_blank" rel="nofollow">65-inch Hisense U7SG is on sale for $899 at Best Buy</a> right now, and the <a href="https://www.bestbuy.com/product/tcl-65-class-qm7l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTHL6R" target="_blank" rel="nofollow">65-inch TCL QM7L is just $899</a>, too. However, from what I've gathered, the 65-inch U7SG is more likely to be on sale for this price, while the 65-inch QM7L has fluctuated in recent weeks between $899 and $1,199.</p><p>At the 55-inch size point, the TCL QM7L is currently $799, while the U7SG sits just below $700. If you're intent is to shop for a 55-inch screen, the U7SG is more likely to be cheaper, too.</p><p>But if you're looking for the best possible performance, my choice would be the QM7L across all size options. Its SQD-powered color can be a difference-maker during certain content. </p><p>Unless the U7SG's full slate of HDMI 2.1 inputs is essential to your setup, I suspect that most A/V enthusiasts would prefer the QM7L's excellent presentation.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/4k-tvs/hisense-u7sg-uled-miniled-google-tv-review">Hisense U7SG review</a></li><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-qm7l-review">TCL QM7L review</a></li><li><a href="https://www.tomsguide.com/tvs/the-ram-crisis-came-for-computers-first-and-now-its-coming-for-tvs-heres-why-i-recommend-upgrading-while-you-still-can">The RAM crisis came for computers first and now it's coming for TVs — here's why I recommend upgrading while you still can</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ TCL QM8L vs QM7L: Which SQD Mini-LED TV tested better in our lab? ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L</a> is an all-new, Mini-LED TV that leverages Super Quantum Dot (SQD) display technology for brighter, bolder color. According to our test results, the QM8L's picture is, indeed, quite punchy, and the QM8L rounds out its impressive performance with a thorough collection of features.</p><p>The <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-qm7l-review">TCL QM7L</a> is the brand's mid-range Mini-LED TV for 2026. Like its step-up sibling, the QM7L also leverages SQD technology, and while it's not as impressive-looking as the QM8L, it's much more affordable.</p><p>If you're in the market for a bright, high-performance Mini-LED TV this year, the choice may come down to one of these two TCL TVs. Here's how they compare — from performance to features and price.</p>        <div class="featured_product_block featured_block_versus" data-id="62014036-9caf-11f1-a99a-232066656406">            <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review" data-model-name="TCL QM8L" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/y6zxm2KoohC6JFqu4fBaof.jpg" alt="The TCL QM8L SQD Mini-LED TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL QM8L</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="80" /></span></div>                                        <p><p>The QM8L is a flagship-level TV that leverages TCL's newest display technology to enhance its color and overall brightness. Its performance is reflective of its higher price tag, and the QM8L also comes with a ton of features, too.</p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_versus" data-id="620140b8-9caf-11f1-8295-dbf3804fc356">            <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-qm7l-review" data-model-name="TCL QM7L,TCL QM7L 75-inch TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/dmQvthmnqDJWtBsrEduZaK.jpg" alt="TCL QM7L SQD Mini-LED TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL QM7L</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="90" /></span></div>                                        <p><p>The QM7L is TCL's mid-range Mini-LED TV for 2026, and like the QM8L, it delivers an exceptionally bright, color picture for its class. The QM8L is a better-performing TV all around, but the QM7L's friendlier price tag make it a better pick for most people.</p></p>                </div>                            </div>        </div><h2 id="tcl-qm8l-vs-qm7l-specs-compared">TCL QM8L vs QM7L: Specs compared</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL QM8L</p></th><th  ><p>TCL QM7L</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Sizes</strong></p></td><td  ><p>65", 75", 85", 98"</p></td><td  ><p>55", 65", 75", 85", 98"</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>4x HDMI 2.1</p></td><td  ><p>2x HDMI 2.1, 2x HDMI 2.0</p></td></tr><tr><td class="firstcol " ><p><strong>Resolution</strong></p></td><td  ><p>3,840 x 2,160p</p></td><td  ><p>3,840 x 2,160p</p></td></tr><tr><td class="firstcol " ><p><strong>Refresh rate</strong></p></td><td  ><p>144Hz</p></td><td  ><p>144Hz</p></td></tr><tr><td class="firstcol " ><p><strong>HDR</strong></p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td></tr><tr><td class="firstcol " ><p><strong>Smart TV software</strong></p></td><td  ><p>Google TV</p></td><td  ><p>Google TV</p></td></tr><tr><td class="firstcol " ><p><strong>ATSC 3.0 support?</strong></p></td><td  ><p>Yes</p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Processor</strong></p></td><td  ><p>TSR AI Pro Processor</p></td><td  ><p>TSR AI Pro Processor</p></td></tr></tbody></table></div><p>When it comes to their respective spec sheets, there are two significant differences worth unpacking: size availability and HDMI functionality.</p><p>While the QM8L is available in four sizes ranging from 65 to 98 inches, the QM7L is available five sizes between 55 and 98 inches. If you're in the market for something smaller than a 65-inch screen, the QM7L has you covered.</p><p>On the other hand, although both sets arrive with the standard set of four total HDMI inputs, only two of the QM7L's inputs offer HDMI 2.1 compatibility. Folks who spend up on the QM8L will enjoy a full suite of HDMI 2.1-compatible inputs.</p><p>With four high-bandwidth ports, the QM8L offers a bit more flexibility, as they all support 4K content at 120Hz (and up to 144Hz with VRR). Fortunately, the QM7L's dedicated eARC input doesn't overlap with one of its high-bandwidth inputs.</p><p>The QM7L's additional, 55-inch screen will matter more to people shopping for that screen size than its lack of two additional HDMI 2.1 inputs, but the QM8L's added flexibility here is more likely to affect a wider swath of people shopping in this price range.</p><p><em><strong>Winner: </strong></em><em>TCL QM8L</em></p><h2 id="tcl-qm8l-vs-qm7l-design">TCL QM8L vs QM7L: Design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="d8mR67WQMwWr25Zdb7Um9h" name="TCL-75QM8L-TV-15" alt="The back of a TCL QM8L TV" src="https://cdn.mos.cms.futurecdn.net/d8mR67WQMwWr25Zdb7Um9h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Due to the nature of its relatively complex display hardware, the TCL QM8L (seen above) is bulkier than many high-end LED TVs. That said, its design is quite refined despite the added bulk.</p><p>The QM8L's panel sits on top of heavy, pedestal-style stand that sits below the center of the screen. While the stand design introduces slightly more wobble than what you'll typically experience with a pair of wide-set feet, the placement of the pedestal lets people to place the QM8L on a narrower piece of furniture if they so choose.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Yr86FrXitSAoCWjQX6t23J" name="TCL-75QM7L-TV--21" alt="The back of a TCL QM7L 75-inch TV" src="https://cdn.mos.cms.futurecdn.net/Yr86FrXitSAoCWjQX6t23J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As you can see from the photo above, the QM7L is nearly identical in its design approach. Its panel also bulges out around the middle, and it features a similar, pedestal-style stand.</p><p>The stands on both sets can be attached in two height configurations. This is particularly convenient for people with tall soundbars.</p><p>Additionally, both TVs ship with nearly identical, conveniently backlit remote controls. The QM8L's remote has a brightness rocker on its side.</p><p>Given the similarities, this category is too close to call. The QM8L and QM7L aren't as slim and premium-feeling as other TVs in their price range, but both of these sets are among the best-designed TCL TVs I've seen this year.</p><p><em><strong>Winner:</strong></em><em> Draw</em></p><h2 id="tcl-qm8l-vs-qm7l-performance">TCL QM8L vs QM7L: Performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="DnhAwkBgkVZofXCUfBbsVc" name="TCL-75QM8L-TV-1-LIST" alt="A 75-inch TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/DnhAwkBgkVZofXCUfBbsVc.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Before we dig deeper into how these TVs look, let's compare their test results. (Both TVs were in their respective Filmmaker picture modes when these tests were taken.)</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>TCL QM8L</strong></p></th><th  ><p><strong>TCL QM7L</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>SDR Brightness (10%, in nits)    </strong></p></td><td  ><p>229</p></td><td  ><p>196</p></td></tr><tr><td class="firstcol " ><p><strong>Delta-E (lower is better)    </strong></p></td><td  ><p>3.7</p></td><td  ><p>2.6</p></td></tr><tr><td class="firstcol " ><p><strong>HDR Brightness (10%, in nits)    </strong></p></td><td  ><p>3,719</p></td><td  ><p>2,270</p></td></tr><tr><td class="firstcol " ><p><strong>UHDA-P3 Gamut Coverage    </strong></p></td><td  ><p>97.97%</p></td><td  ><p>97.64%</p></td></tr><tr><td class="firstcol " ><p><strong>Rec.2020 Gamut Coverage    </strong></p></td><td  ><p>90.34% </p></td><td  ><p>90.28%</p></td></tr><tr><td class="firstcol " ><p><strong>Input latency (milliseconds)   </strong></p></td><td  ><p>9.5</p></td><td  ><p>9.4</p></td></tr></tbody></table></div><p>The story of these TVs is rather simple. They're two of the first TVs to feature TCL's souped-up, quantum dot-based technology, Super Quantum Dot. Both the QM8L and QM7L deliver a wider array of color than previous TCL QLEDs thanks to a new color filter and a major reworking of the brand's picture processing algorithms.</p><p>However, according to our test results, the QM8L carries a significant advantage over the QM7L: peak brightness.</p><p>The QM8L is capable of driving way more brightness to small, concentrated areas of the picture, resulting in a punchier, more-cinematic look during certain content mastered in HDR. Additionally, its full-screen brightness in both SDR and HDR is slightly higher than that of the QM7L.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uMLFconvVq2gEVGqSYEM7J" name="TCL-75QM7L-TV--6" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/uMLFconvVq2gEVGqSYEM7J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div><blockquote><p>The QM8L carries a significant advantage over the QM7L: peak brightness.</p></blockquote></div><p>Somewhat surprisingly, the QM8L's added brightness doesn't make <em>that</em> big of a difference when it comes to color. You might notice better saturation of dark, low-luminance color on the QM8L, but for the most part, the QM7L does an excellent job of keeping up here.</p><p>In many viewing conditions, the real difference-maker is the QM8L's first-rate array of Mini-LEDs. Both the QM7L and QM8L do a terrific job of limiting haloing, but the QM8L is a step above the QM7L in this regard.</p><p>Everything else — color accuracy, input latency and upscaling — is very close. But if you're looking for the best-possible performance, the QM8L's added brightness and superior backlight control will be appealing to you.</p><p><em><strong>Winner:</strong></em><em> TCL QM8L</em></p><h2 id="tcl-qm8l-vs-qm7l-smart-platform-and-features">TCL QM8L vs QM7L: Smart platform and features</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="rKFT26Nuo5fc4ycgaECXPc" name="TCL-75QM8L-TV-13" alt="A 75-inch TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/rKFT26Nuo5fc4ycgaECXPc.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Both TVs are built around the Google TV streaming platform, and they perform similarly. Google TV is one of my preferred streaming platforms (just behind Roku), as it's easy to navigate and supports nearly every streaming service and app you'd want on a smart TV.</p><p>The QM8L and QM7L both come with a similar set gaming features, too. These include Variable Refresh Rate (VRR) and AMD FreeSync Premium Pro (for smooth, artifact-free gaming), as well as TCL's Game Bar, a quick-access menu that lets users access the key gaming features instantly.</p><p>Each set supports 4K gaming at 120Hz, the highest 4K spec among current-generation consoles like Xbox Series X and PlayStation 5. With a gaming PC linked up, both TVs support 4K games at 144Hz, too. </p><p>As a reminder, the QM7L comes with just two HDMI 2.1-compatible inputs. In order to access those gaming enhancements, you've got to use one of those ports. The QM8L, on the other hand, comes with four.</p><p>That said, we've already settled this when comparing specs. In almost every other way that matters to the average viewer, the QM8L and QM7L roll with a similar set of features.</p><p><em><strong>Winner:  </strong></em><em>Draw</em></p><h2 id="tcl-qm8l-vs-qm7l-outlook">TCL QM8L vs QM7L: outlook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VNSKSDVTVvCA2Z4dcHFc2J" name="TCL-75QM7L-TV--7" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/VNSKSDVTVvCA2Z4dcHFc2J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL QM8L</p></th><th  ><p>TCL QM7L</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Specs (25)</strong></p></td><td  ><p>23</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Design (25)</strong></p></td><td  ><p>22</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Performance (25)</strong></p></td><td  ><p>23</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Features (25)</strong></p></td><td  ><p>23</p></td><td  ><p>23</p></td></tr><tr><td class="firstcol " ><p><strong>Total Score (100)</strong></p></td><td  ><p><strong>91</strong></p></td><td  ><p><strong>89</strong></p></td></tr></tbody></table></div><p>In our full review of each TV, the QM8L received a four-star rating and the QM7L earned a slightly higher, four-and-a-half-star rating. As you can see, however, the tally above has the QM8L at two points higher than its mid-range sibling. So, what gives?</p><p>Well, it all comes down to value. Right now, the <a href="https://www.bestbuy.com/product/tcl-65-class-qm8l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH359" target="_blank" rel="nofollow">65-inch TCL QM8L is $1,399 at Best Buy</a>. That's a fantastic sale price, considering that this model launched at $2,499.</p><p>But the <a href="https://www.bestbuy.com/product/tcl-65-class-qm7l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTHL6R" target="_blank" rel="nofollow">65-inch QM7L is just $1,199 at Best Buy</a> at the time of publishing (down from its original price of $1,499). That's $200 bucks cheaper than the QM8L. Plus, the QM7L is available in a 55-inch model, which is a popular screen size for people who shop in the QM7L's mid-tier price range. For this reason, it has wider appeal.</p><p>While the QM8L delivers a brighter, better-looking picture overall, I suspect that most shoppers would be almost as impressed by the QM7L — and walk away with an extra $200 in their pocket, too.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L review</a></li><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-qm7l-review">TCL QM7L review</a></li><li><a href="https://www.tomsguide.com/tvs/the-ram-crisis-came-for-computers-first-and-now-its-coming-for-tvs-heres-why-i-recommend-upgrading-while-you-still-can">The RAM crisis came for computers first and now it's coming for TVs — here's why I recommend upgrading while you still can</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/4k-tvs/tcl-qm8l-vs-qm7l-which-sqd-mini-led-tv-tested-better-in-our-lab</link>
                                                                            <description>
                            <![CDATA[ The TCL QM8L and QM7L are all-new, Super Quantum Dot (SQD) Mini-LED TVs for 2026. Here's how they compare — from performance to features and price. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">vAw5j3q2VxwB8jC8fcy7TK</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/CaRXmkjmKphSWU67ZAdveW-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 21 Aug 2026 09:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[4k TVs]]></category>
                                                    <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/CaRXmkjmKphSWU67ZAdveW-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The TCL QM8L and the QM7L in a side-by-side composite]]></media:description>                                                            <media:text><![CDATA[The TCL QM8L and the QM7L in a side-by-side composite]]></media:text>
                                <media:title type="plain"><![CDATA[The TCL QM8L and the QM7L in a side-by-side composite]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/CaRXmkjmKphSWU67ZAdveW-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L</a> is an all-new, Mini-LED TV that leverages Super Quantum Dot (SQD) display technology for brighter, bolder color. According to our test results, the QM8L's picture is, indeed, quite punchy, and the QM8L rounds out its impressive performance with a thorough collection of features.</p><p>The <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-qm7l-review">TCL QM7L</a> is the brand's mid-range Mini-LED TV for 2026. Like its step-up sibling, the QM7L also leverages SQD technology, and while it's not as impressive-looking as the QM8L, it's much more affordable.</p><p>If you're in the market for a bright, high-performance Mini-LED TV this year, the choice may come down to one of these two TCL TVs. Here's how they compare — from performance to features and price.</p>        <div class="featured_product_block featured_block_versus" data-id="62014036-9caf-11f1-a99a-232066656406">            <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review" data-model-name="TCL QM8L" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/y6zxm2KoohC6JFqu4fBaof.jpg" alt="The TCL QM8L SQD Mini-LED TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL QM8L</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="80" /></span></div>                                        <p><p>The QM8L is a flagship-level TV that leverages TCL's newest display technology to enhance its color and overall brightness. Its performance is reflective of its higher price tag, and the QM8L also comes with a ton of features, too.</p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_versus" data-id="620140b8-9caf-11f1-8295-dbf3804fc356">            <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-qm7l-review" data-model-name="TCL QM7L,TCL QM7L 75-inch TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/dmQvthmnqDJWtBsrEduZaK.jpg" alt="TCL QM7L SQD Mini-LED TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL QM7L</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="90" /></span></div>                                        <p><p>The QM7L is TCL's mid-range Mini-LED TV for 2026, and like the QM8L, it delivers an exceptionally bright, color picture for its class. The QM8L is a better-performing TV all around, but the QM7L's friendlier price tag make it a better pick for most people.</p></p>                </div>                            </div>        </div><h2 id="tcl-qm8l-vs-qm7l-specs-compared">TCL QM8L vs QM7L: Specs compared</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL QM8L</p></th><th  ><p>TCL QM7L</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Sizes</strong></p></td><td  ><p>65", 75", 85", 98"</p></td><td  ><p>55", 65", 75", 85", 98"</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>4x HDMI 2.1</p></td><td  ><p>2x HDMI 2.1, 2x HDMI 2.0</p></td></tr><tr><td class="firstcol " ><p><strong>Resolution</strong></p></td><td  ><p>3,840 x 2,160p</p></td><td  ><p>3,840 x 2,160p</p></td></tr><tr><td class="firstcol " ><p><strong>Refresh rate</strong></p></td><td  ><p>144Hz</p></td><td  ><p>144Hz</p></td></tr><tr><td class="firstcol " ><p><strong>HDR</strong></p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td></tr><tr><td class="firstcol " ><p><strong>Smart TV software</strong></p></td><td  ><p>Google TV</p></td><td  ><p>Google TV</p></td></tr><tr><td class="firstcol " ><p><strong>ATSC 3.0 support?</strong></p></td><td  ><p>Yes</p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Processor</strong></p></td><td  ><p>TSR AI Pro Processor</p></td><td  ><p>TSR AI Pro Processor</p></td></tr></tbody></table></div><p>When it comes to their respective spec sheets, there are two significant differences worth unpacking: size availability and HDMI functionality.</p><p>While the QM8L is available in four sizes ranging from 65 to 98 inches, the QM7L is available five sizes between 55 and 98 inches. If you're in the market for something smaller than a 65-inch screen, the QM7L has you covered.</p><p>On the other hand, although both sets arrive with the standard set of four total HDMI inputs, only two of the QM7L's inputs offer HDMI 2.1 compatibility. Folks who spend up on the QM8L will enjoy a full suite of HDMI 2.1-compatible inputs.</p><p>With four high-bandwidth ports, the QM8L offers a bit more flexibility, as they all support 4K content at 120Hz (and up to 144Hz with VRR). Fortunately, the QM7L's dedicated eARC input doesn't overlap with one of its high-bandwidth inputs.</p><p>The QM7L's additional, 55-inch screen will matter more to people shopping for that screen size than its lack of two additional HDMI 2.1 inputs, but the QM8L's added flexibility here is more likely to affect a wider swath of people shopping in this price range.</p><p><em><strong>Winner: </strong></em><em>TCL QM8L</em></p><h2 id="tcl-qm8l-vs-qm7l-design">TCL QM8L vs QM7L: Design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="d8mR67WQMwWr25Zdb7Um9h" name="TCL-75QM8L-TV-15" alt="The back of a TCL QM8L TV" src="https://cdn.mos.cms.futurecdn.net/d8mR67WQMwWr25Zdb7Um9h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Due to the nature of its relatively complex display hardware, the TCL QM8L (seen above) is bulkier than many high-end LED TVs. That said, its design is quite refined despite the added bulk.</p><p>The QM8L's panel sits on top of heavy, pedestal-style stand that sits below the center of the screen. While the stand design introduces slightly more wobble than what you'll typically experience with a pair of wide-set feet, the placement of the pedestal lets people to place the QM8L on a narrower piece of furniture if they so choose.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Yr86FrXitSAoCWjQX6t23J" name="TCL-75QM7L-TV--21" alt="The back of a TCL QM7L 75-inch TV" src="https://cdn.mos.cms.futurecdn.net/Yr86FrXitSAoCWjQX6t23J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As you can see from the photo above, the QM7L is nearly identical in its design approach. Its panel also bulges out around the middle, and it features a similar, pedestal-style stand.</p><p>The stands on both sets can be attached in two height configurations. This is particularly convenient for people with tall soundbars.</p><p>Additionally, both TVs ship with nearly identical, conveniently backlit remote controls. The QM8L's remote has a brightness rocker on its side.</p><p>Given the similarities, this category is too close to call. The QM8L and QM7L aren't as slim and premium-feeling as other TVs in their price range, but both of these sets are among the best-designed TCL TVs I've seen this year.</p><p><em><strong>Winner:</strong></em><em> Draw</em></p><h2 id="tcl-qm8l-vs-qm7l-performance">TCL QM8L vs QM7L: Performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="DnhAwkBgkVZofXCUfBbsVc" name="TCL-75QM8L-TV-1-LIST" alt="A 75-inch TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/DnhAwkBgkVZofXCUfBbsVc.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Before we dig deeper into how these TVs look, let's compare their test results. (Both TVs were in their respective Filmmaker picture modes when these tests were taken.)</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>TCL QM8L</strong></p></th><th  ><p><strong>TCL QM7L</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>SDR Brightness (10%, in nits)    </strong></p></td><td  ><p>229</p></td><td  ><p>196</p></td></tr><tr><td class="firstcol " ><p><strong>Delta-E (lower is better)    </strong></p></td><td  ><p>3.7</p></td><td  ><p>2.6</p></td></tr><tr><td class="firstcol " ><p><strong>HDR Brightness (10%, in nits)    </strong></p></td><td  ><p>3,719</p></td><td  ><p>2,270</p></td></tr><tr><td class="firstcol " ><p><strong>UHDA-P3 Gamut Coverage    </strong></p></td><td  ><p>97.97%</p></td><td  ><p>97.64%</p></td></tr><tr><td class="firstcol " ><p><strong>Rec.2020 Gamut Coverage    </strong></p></td><td  ><p>90.34% </p></td><td  ><p>90.28%</p></td></tr><tr><td class="firstcol " ><p><strong>Input latency (milliseconds)   </strong></p></td><td  ><p>9.5</p></td><td  ><p>9.4</p></td></tr></tbody></table></div><p>The story of these TVs is rather simple. They're two of the first TVs to feature TCL's souped-up, quantum dot-based technology, Super Quantum Dot. Both the QM8L and QM7L deliver a wider array of color than previous TCL QLEDs thanks to a new color filter and a major reworking of the brand's picture processing algorithms.</p><p>However, according to our test results, the QM8L carries a significant advantage over the QM7L: peak brightness.</p><p>The QM8L is capable of driving way more brightness to small, concentrated areas of the picture, resulting in a punchier, more-cinematic look during certain content mastered in HDR. Additionally, its full-screen brightness in both SDR and HDR is slightly higher than that of the QM7L.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uMLFconvVq2gEVGqSYEM7J" name="TCL-75QM7L-TV--6" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/uMLFconvVq2gEVGqSYEM7J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div><blockquote><p>The QM8L carries a significant advantage over the QM7L: peak brightness.</p></blockquote></div><p>Somewhat surprisingly, the QM8L's added brightness doesn't make <em>that</em> big of a difference when it comes to color. You might notice better saturation of dark, low-luminance color on the QM8L, but for the most part, the QM7L does an excellent job of keeping up here.</p><p>In many viewing conditions, the real difference-maker is the QM8L's first-rate array of Mini-LEDs. Both the QM7L and QM8L do a terrific job of limiting haloing, but the QM8L is a step above the QM7L in this regard.</p><p>Everything else — color accuracy, input latency and upscaling — is very close. But if you're looking for the best-possible performance, the QM8L's added brightness and superior backlight control will be appealing to you.</p><p><em><strong>Winner:</strong></em><em> TCL QM8L</em></p><h2 id="tcl-qm8l-vs-qm7l-smart-platform-and-features">TCL QM8L vs QM7L: Smart platform and features</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="rKFT26Nuo5fc4ycgaECXPc" name="TCL-75QM8L-TV-13" alt="A 75-inch TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/rKFT26Nuo5fc4ycgaECXPc.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Both TVs are built around the Google TV streaming platform, and they perform similarly. Google TV is one of my preferred streaming platforms (just behind Roku), as it's easy to navigate and supports nearly every streaming service and app you'd want on a smart TV.</p><p>The QM8L and QM7L both come with a similar set gaming features, too. These include Variable Refresh Rate (VRR) and AMD FreeSync Premium Pro (for smooth, artifact-free gaming), as well as TCL's Game Bar, a quick-access menu that lets users access the key gaming features instantly.</p><p>Each set supports 4K gaming at 120Hz, the highest 4K spec among current-generation consoles like Xbox Series X and PlayStation 5. With a gaming PC linked up, both TVs support 4K games at 144Hz, too. </p><p>As a reminder, the QM7L comes with just two HDMI 2.1-compatible inputs. In order to access those gaming enhancements, you've got to use one of those ports. The QM8L, on the other hand, comes with four.</p><p>That said, we've already settled this when comparing specs. In almost every other way that matters to the average viewer, the QM8L and QM7L roll with a similar set of features.</p><p><em><strong>Winner:  </strong></em><em>Draw</em></p><h2 id="tcl-qm8l-vs-qm7l-outlook">TCL QM8L vs QM7L: outlook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VNSKSDVTVvCA2Z4dcHFc2J" name="TCL-75QM7L-TV--7" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/VNSKSDVTVvCA2Z4dcHFc2J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL QM8L</p></th><th  ><p>TCL QM7L</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Specs (25)</strong></p></td><td  ><p>23</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Design (25)</strong></p></td><td  ><p>22</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Performance (25)</strong></p></td><td  ><p>23</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Features (25)</strong></p></td><td  ><p>23</p></td><td  ><p>23</p></td></tr><tr><td class="firstcol " ><p><strong>Total Score (100)</strong></p></td><td  ><p><strong>91</strong></p></td><td  ><p><strong>89</strong></p></td></tr></tbody></table></div><p>In our full review of each TV, the QM8L received a four-star rating and the QM7L earned a slightly higher, four-and-a-half-star rating. As you can see, however, the tally above has the QM8L at two points higher than its mid-range sibling. So, what gives?</p><p>Well, it all comes down to value. Right now, the <a href="https://www.bestbuy.com/product/tcl-65-class-qm8l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH359" target="_blank" rel="nofollow">65-inch TCL QM8L is $1,399 at Best Buy</a>. That's a fantastic sale price, considering that this model launched at $2,499.</p><p>But the <a href="https://www.bestbuy.com/product/tcl-65-class-qm7l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTHL6R" target="_blank" rel="nofollow">65-inch QM7L is just $1,199 at Best Buy</a> at the time of publishing (down from its original price of $1,499). That's $200 bucks cheaper than the QM8L. Plus, the QM7L is available in a 55-inch model, which is a popular screen size for people who shop in the QM7L's mid-tier price range. For this reason, it has wider appeal.</p><p>While the QM8L delivers a brighter, better-looking picture overall, I suspect that most shoppers would be almost as impressed by the QM7L — and walk away with an extra $200 in their pocket, too.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L review</a></li><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-qm7l-review">TCL QM7L review</a></li><li><a href="https://www.tomsguide.com/tvs/the-ram-crisis-came-for-computers-first-and-now-its-coming-for-tvs-heres-why-i-recommend-upgrading-while-you-still-can">The RAM crisis came for computers first and now it's coming for TVs — here's why I recommend upgrading while you still can</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I tested the TCL QM7L — and it’s my top Mini-LED TV value of the year ]]></title>
                                                                                                <dc:content><![CDATA[ <p>TCL has established a well-earned rep for delivering bright, colorful TVs without the big price tag. That’s exactly why I was excited when the new, affordably priced QM7L showed up in the Tom’s Guide labs.</p><p>The QM7L ($1,499 as tested for 75-inch) aims to distinguish itself from its predecessor with the company’s new Super Quantum Dot (SQD) Mini-LED technology that delivers brighter, more-accurate out-of-the-box color than what you'll usually see on regular QLED TVs from rival brands. </p><p>After watching hours of content on the QM7L and lab testing it myself, it is clear that this isn’t just another affordable 75-inch TV: The QM7L sets new expectations for exactly how much performance you should expect from an affordable 75-inch TV for your money. Here’s why I think it’s one of the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html"><u>best TVs of 2026</u></a> (so far).</p><h3 class="article-body__section" id="section-tcl-qm7l-review-pricing-and-availability"><span>TCL QM7L review: Pricing and availability</span></h3><p>The QM7L is the most affordable entry point to TCL’s SQD Mini-LED tier. At the very top of TCL’s 2026 lineup is the <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review"><u>TCL X11L</u></a> which we reviewed in February, and the middle is the <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review"><u>TCL QM8L</u></a> that we previously reviewed in April. Listed pricing for the QM7L starts at $1,200 for a 55-inch model, though when on sale, you’ll find it for as low as $1,000. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uMLFconvVq2gEVGqSYEM7J" name="TCL-75QM7L-TV--6" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/uMLFconvVq2gEVGqSYEM7J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The 75-inch model we have for review has a list cost of $2,000, but it is currently on sale for $1,500. You can go all the way up to a 98-inch version for $4,000 — or $3,000 when it’s on sale. </p><p>Original MSRPs for the whole range are listed below, also accounting for sale prices. TCL has kept the pricing on the 75-inch model identical to last year's <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review"><u>QM7K</u></a>, making the upgrades this set offers feel like even better value.</p><ul><li>55-inch: $1,199 | <a href="https://www.bestbuy.com/product/tcl-55-class-qm7l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTHLR6/sku/6673190"><u>Sale $999</u></a></li><li>65-inch: $1,499 | <a href="https://www.bestbuy.com/product/tcl-65-class-qm7l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTHL6R"><u>Sale $1,199</u></a></li><li>75-inch: $1,999 | <a href="https://www.bestbuy.com/product/tcl-75-class-qm7l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTHL6G"><u>Sale $1,299</u></a></li><li>85-inch: $2,499 | <a href="https://www.bestbuy.com/product/tcl-85-class-qm7l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTHL64"><u>Sale $1,699</u></a></li><li>98-inch: $3,999 | <a href="https://www.bestbuy.com/product/tcl-98-class-qm7l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH8GG"><u>Sale $2,799</u></a></li></ul><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="urYPXMC5tB3YthMyyNSz8J" name="TCL-75QM7L-TV--14" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/urYPXMC5tB3YthMyyNSz8J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Note that dimming zones on the QM7L are proportional by size, and TCL claims the largest size of this TV can hit up to 2,100+ discrete dimming zones and a total of 3,000 nits of brightness. The core audio hardware on the QM7L is identical across all screen sizes, though, so buying a smaller size doesn’t mean you’ll get worse audio performance. </p><p>Pricing-wise, the TCL QM7L lines up with its direct competitor, Hisense. The Hisense U7 75-inch model has the exact price as this TCL. On the higher-end side, the more premium True RGB <a href="https://www.tomsguide.com/tvs/oled-tvs/sony-bravia-7-ii-true-rgb-tv-review"><u>Sony Bravia 7 II</u></a> comes in at a whopping $3,099 for a 75-inch model. Meanwhile, if you want an OLED alternative, the <a href="https://www.tomsguide.com/tvs/oled-tvs/samsung-s85h-oled-review"><u>Samsung S85H</u></a> comes in at $2,399 for a 77-inch model. </p><h3 class="article-body__section" id="section-tcl-qm7l-review-design-and-ports"><span>TCL QM7L review: Design and ports</span></h3><p>The 75-inch QM7L is a huge TV, measuring 65.6 inches wide and weighing nearly 59 pounds with its stand attached. Despite its portly stature, the TV keeps to the streamlined design of its QM8L sibling with its center-facing stand.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Yr86FrXitSAoCWjQX6t23J" name="TCL-75QM7L-TV--21" alt="The back of a TCL QM7L 75-inch TV" src="https://cdn.mos.cms.futurecdn.net/Yr86FrXitSAoCWjQX6t23J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The overall look and design is simple, as the TV has minimal branding aside from a small TCL logo on the thin bottom chin. There’s also TCL’s SQD branding on the right side bezel which has a nice brushed, metal-like finish to it.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="eHpttSrMxVNzA3Nrdbww8J" name="TCL-75QM7L-TV--22" alt="The pedestal stand of a TCL QM7L 75-inch TV" src="https://cdn.mos.cms.futurecdn.net/eHpttSrMxVNzA3Nrdbww8J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Setup involves sliding one half of a plastic stand into the wedge-shaped plastic base, and then screwing the stand into the back of the TV. It’s not as intuitive as just having to slide the stand into the TV like on a Sony Bravia 7 II, but the stand is quite sturdy. </p><p>You have a little under two inches of room under the bezel in the middle to slide accessories and to reach the power button in the middle of the chin. The side of the TV comes in at a thickness of around 2 inches.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="sgdwxe7MsTi6UK2FAVyipH" name="TCL-75QM7L-TV--23" alt="The side of the screen on a TCL QM7L 75-inch TV" src="https://cdn.mos.cms.futurecdn.net/sgdwxe7MsTi6UK2FAVyipH.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The ports for the QM7L are on the back right side of the TV, in an easy to reach spot not tucked under a bezel. There are four HDMI 2.1 ports — but not all of them are made equal. You can only get 144Hz out of HDMI 1 and 2; it’s only 60Hz at 1080p for HDMI 3 and 4. Additional ports include a USB 2.0 and USB 3.0 port, along with Ethernet, and an optical digital audio output. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="opHGisKCwEFr286iCygH8J" name="TCL-75QM7L-TV--20" alt="The ports on a TCL QM7L 75-inch TV" src="https://cdn.mos.cms.futurecdn.net/opHGisKCwEFr286iCygH8J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The rear of the TV has the two Bang and Olufsen speakers at the top, and the screw holes for the VESA mount. For network connectivity, the TV uses Wi-Fi 5, which is a bit dated at this point but not a huge dealbreaker if your router does not support the new <a href="https://www.tomsguide.com/us/wifi-6-explained,news-28274.html"><u>Wi-Fi 6</u></a> standard. </p><h3 class="article-body__section" id="section-tcl-qm7l-review-how-we-test"><span>TCL QM7L review: How we test</span></h3><p>In our New York City test lab, my lab assistant and I test every TV across SDR and HDR benchmarks using the 10% window. For a true to cinema look and feel, and for color accuracy, we switch the TV over to Filmmaker Mode, usually the “best” mode on the TV. We also disable any intrusive ambient light sensors that could skew our meter’s readings.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fqX68iu8hge3XZsv7eYV7J" name="TCL-75QM7L-TV--4" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/fqX68iu8hge3XZsv7eYV7J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>In terms of tools, we use the Jeti spectraval 1501-HiRes spectroradiometer to profile our Klein K10-A colorimeter. Once profiled, this high-end hardware works in tandem with a Murideo 8K-SIX-G Metal pattern generator and a custom workflow in <a href="https://www.portrait.com/calman-home/"><u>Portrait Displays’ Calman Ultimate software</u></a> to map out the TV’s performance. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ordr4pguLN29QfQwf2425J" name="TCL-75QM7L-TV--18" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/ordr4pguLN29QfQwf2425J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>For gaming performance, we use a Leo Bodnar 4K Video Signal Lag Tester to measure exactly how responsive the TV really is. Once technical lab testing is done, we put the TV through subjective testing using a curated selection of films and shows. You can learn more about this process by reading our “<a href="https://www.tomsguide.com/us/how-we-test-tvs,review-2478.html"><u>How we test TVs</u></a>” guide.</p><h3 class="article-body__section" id="section-tcl-qm7l-review-performance"><span>TCL QM7L review: Performance</span></h3><p>To put the QM7L through its paces, I watched the UHD version of <em>Dune Part 2</em>, nature videos on YouTube, then <em>Spider Noir </em>and a replay of a NASCAR Cup Series race<em> </em>on Amazon Prime Video. Across every type of content, the QM7L impressed with brightness and color. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="eWvjgGvFJdzJuaZ2MUbK7J" name="TCL-75QM7L-TV--8" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/eWvjgGvFJdzJuaZ2MUbK7J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p><em>Dune: Part Two</em> was the perfect test movie. While watching, I noticed how the desert sands of Arrakis were packed with fine detail, showing the QM7L’s ability to bring out subtle textures and warm golden hues. The natural-looking skin tones were also impressive — in desert scenes, many of the characters' orange sunlit faces retained lifelike color without looking overly warm. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DCT2PrCxAPah4tvFrJhTzH" name="TCL-75QM7L-TV--3" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/DCT2PrCxAPah4tvFrJhTzH.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Even though the movie frequently shifts between daylight and low-light environments, the QM7L handled the contrast and brightness well. The blacks in many darker interior scenes looked great and bright elements, like the beam of white light of swords during desert fights, still packed plenty of punch. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="raqw7vay9tR5KUirPrLPsH" name="TCL-75QM7L-TV--2" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/raqw7vay9tR5KUirPrLPsH.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Next, I turned to streaming <em>Spider-Noir </em>on Amazon Prime. I previously watched this on the <a href="https://www.tomsguide.com/tvs/oled-tvs/samsung-s85f-oled-tv-review"><u>Samsung S85F OLED TV</u></a>, and visually, the experience was quite close. The QM7L pushed out great blacks, especially in The Spider’s suit when he was hanging from a wall inside a hotel. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="94dPqntJDvDvMasdtJYCyH" name="TCL-75QM7L-TV--10" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/94dPqntJDvDvMasdtJYCyH.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>When watching the series in color, the TV didn’t lose the details in scenes that show off the series’ atmosphere: A dimly lit hotel room still had slight gray shadows, and reds looked vibrant in a neon sign against a black sky as The Spider was swinging in to steal from Silvermane’s safe under the cover of darkness. In later scenes, Cat Hardy’s green dress sparkled and shined, and so did her golden bangles — adding a sense of realism that made me think she was in the room with me. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="W6t8LYSMR7YPjhEF3Fx5sH" name="TCL-75QM7L-TV--11" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/W6t8LYSMR7YPjhEF3Fx5sH.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>For an SDR test, I watched a replay of Amazon Prime's NASCAR Cup Series race coverage from Pocono. I set the TCL QM7L to Vivid Mode, and its 3,167 nits of peak brightness in this mode made the broadcast look especially bright and colorful. Chase Elliott's blue and yellow NAPA Chevrolet stood out with bright colors. I could also clearly see the bright sunlight reflecting off Denny Hamlin's helmet during an in-car camera shot. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vD5JZ37gMFih6FUKvxXvzH" name="TCL-75QM7L-TV--12" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/vD5JZ37gMFih6FUKvxXvzH.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Finally, for a display bloom test, I watched a HDR video on YouTube that is specially designed for this. Watching normally from a few feet away, I didn’t immediately notice any blooming. It was present only in small momentary fireworks scene and visible only when I moved my seat to the corner of the panel. This panel on this TV is definitely good for the price, if you don’t go looking for the faults with a fine tooth comb.</p><h3 class="article-body__section" id="section-tcl-qm7l-review-test-results"><span>TCL QM7L review: Test results</span></h3><div ><table><thead><tr><th class="firstcol " ><p>Test Name</p></th><th  ><p>TCL QM7L (75-inch)</p></th><th  ><p>TCL QM7K (65-inch)</p></th><th  ><p>Hisense U7 (65-inch)</p></th><th  ><p>Sony Bravia 7 II (65-inch)</p></th><th  ><p>Samsung 65-inch S85H OLED</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>SDR Brightness (10%, in nits)</strong></p></td><td  ><p>196</p></td><td  ><p>131</p></td><td  ><p>185</p></td><td  ><p>100</p></td><td  ><p>9.2</p></td></tr><tr><td class="firstcol " ><p><strong>Delta-E (lower is better)</strong></p></td><td  ><p>2.64</p></td><td  ><p>1.44</p></td><td  ><p>3.00</p></td><td  ><p>4.79</p></td><td  ><p>1.69</p></td></tr><tr><td class="firstcol " ><p><strong>Rec. 709 Gamut Coverage</strong></p></td><td  ><p>99.48%</p></td><td  ><p>99.17%</p></td><td  ><p>99.38%</p></td><td  ><p>98.95%</p></td><td  ><p>99.99%</p></td></tr><tr><td class="firstcol " ><p><strong>HDR Brightness (10%, in nits)</strong></p></td><td  ><p>2,270</p></td><td  ><p>1,733</p></td><td  ><p>2,866</p></td><td  ><p>2,077</p></td><td  ><p>770</p></td></tr><tr><td class="firstcol " ><p><strong>UHDA-P3 Gamut Coverage</strong></p></td><td  ><p>97.64%</p></td><td  ><p>96.98%</p></td><td  ><p>97.31%</p></td><td  ><p>97.73%</p></td><td  ><p>97.48%</p></td></tr><tr><td class="firstcol " ><p><strong>Rec. 2020 Gamut Coverage</strong></p></td><td  ><p>90.28%</p></td><td  ><p>79.22%</p></td><td  ><p>82.75%</p></td><td  ><p>87.17%</p></td><td  ><p>72.94%</p></td></tr><tr><td class="firstcol " ><p><strong>Input latency (in milliseconds)</strong></p></td><td  ><p>9.4</p></td><td  ><p>13.1</p></td><td  ><p>9.8</p></td><td  ><p>10.4</p></td><td  ><p>9.2</p></td></tr></tbody></table></div><p>Lab results showed the TCL QM7L is a huge jump across the board in terms of brightness, and HDR color accuracy from its predecessor, the QM7K. The QM7L also matches or exceeds most similarly priced LED competitors in brightness while remaining competitive in color accuracy. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WvshzwCPAXw8Ykzu8EDC7J" name="TCL-75QM7L-TV--13" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/WvshzwCPAXw8Ykzu8EDC7J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>While not a lot of content is mastered for Rec 2020 yet, our lab’s measured Gamut Coverage shows why HDR on this TV looked so good. The QM7L hit 90.28% of the Rec 2020 gamut. That’s highest among TCL’s competitors; the U7 hit 82.75%, the Bravia 87.18, and the Samsung OLED 72.94%. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="urYPXMC5tB3YthMyyNSz8J" name="TCL-75QM7L-TV--14" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/urYPXMC5tB3YthMyyNSz8J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>TCL claims this TV can cover 100% Rec 2020, but measurements can vary based on equipment used. Still, against every TV we’ve tested this year, only TCL’s own X11L scored higher in our labs, with 91.81% coverage. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VNSKSDVTVvCA2Z4dcHFc2J" name="TCL-75QM7L-TV--7" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/VNSKSDVTVvCA2Z4dcHFc2J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>With a measured HDR brightness of 2,270 nits, the QM7L lands second with its competitors. That even beats out the pricey true RGB Sony Bravia 7 II, and leaving Samsung’s most affordable 2026 OLED TV far behind — though those are all 65-inch models. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Eu5JE4ZyJAnXdasQHjSC3J" name="TCL-75QM7L-TV--5" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/Eu5JE4ZyJAnXdasQHjSC3J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Overall, the QM7L delivered a bright, vibrant picture. Its measured Delta-E of 2.64 also points to a very good SDR color accuracy, third best amongst its competitors. </p><h3 class="article-body__section" id="section-tcl-qm7l-review-gaming"><span>TCL QM7L review: Gaming</span></h3><p>While the viewing experience on the TCL QM7L is impressive, so is the gaming. The TV measured 9.4 ms in our input lag tests which is no surprise, given all the features.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vzwHrjzHMeFL5N7bmz8q5J" name="TCL-75QM7L-TV--17" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/vzwHrjzHMeFL5N7bmz8q5J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>There’s support for AMD FreeSync Premium Pro, Variable Refresh Rate (VRR), and Auto Low Latency Mode (ALLM). A long press of a button on the remote can bring up the Game Bar, which has several additional features like an aiming aid and a magnifier. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HUj4LkVyXUgrLXCkaqaD6J" name="TCL-75QM7L-TV--16" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/HUj4LkVyXUgrLXCkaqaD6J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I do like how there’s a frame rate floating window, so you can keep up with how efficiently your game is running. During my time with the TV, I used this menu and also turned on HGIG and enabled high frame rate modes. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9NnCKRBRiLeNwJfDEjmtzH" name="TCL-75QM7L-TV--15" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/9NnCKRBRiLeNwJfDEjmtzH.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>When playing Marvel’s<em> Spider-Man 2</em> on our lab’s PlayStation 5, web swinging through Manhattan was smooth, maxing out at 119fps in the frame rate floating window. Same for <em>Assassins Creed: Black Flag Resynced </em>where in the ship battles in the opening scenes, despite wave crashes and my swaying the ship side by side, the game was still playing smoothly with minimal input lag.</p><h3 class="article-body__section" id="section-tcl-qm7l-review-sound"><span>TCL QM7L review: Sound</span></h3><p>For audio testing, I watched the music video of Andrea Bocelli, David Guetta, EJAE and Megan Thee Stallion’s “DNA.” On this TV’s 2.2-channel Bang & Olufsen-tuned speaker system, this World Cup anthem sounded better than expected.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mAbN4ZmzauPqXGM9XSDR7J" name="TCL-75QM7L-TV--19" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/mAbN4ZmzauPqXGM9XSDR7J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Bass had an energetic balance between vocals and the song’s EDM style beats. Things were surprisingly balanced for a built-in TV speaker system. Bocelli’s voice came through clearly, while the heavier electronic beats and Megan Thee Stallion’s verses had some thump and bop to it. The speakers sounded quite wide, too, so I don’t think you’ll need a soundbar here. </p><h3 class="article-body__section" id="section-tcl-qm7l-review-smart-tv-and-remote"><span>TCL QM7L review: Smart TV and remote</span></h3><p>The TCL QM7L is powered by Google TV. Much like my experience with the Sony Bravia 7 II, I enjoyed the user interface. Getting through settings, looking for content with the included voice remote is clean and easy. Google Gemini for TV has a conversational style that helps surface my content easily, and the home screen isn’t full of ads unlike some of its competitors. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="BBsa6XLseaZyH6d5fL5N9J" name="TCL-75QM7L-TV--24" alt="The remote for a TCL QM7L 75-inch TV" src="https://cdn.mos.cms.futurecdn.net/BBsa6XLseaZyH6d5fL5N9J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As for the remote, not much has changed from the previous QM7K — it still is plastic and black with a brushed finish. Buttons are relatively close together, and backlit. My favorite services have dedicated buttons on the remote, too, with access to Netflix, Prime Video, Netflix, Tubi, Disney, and FreeTV just a touch away.</p><h3 class="article-body__section" id="section-tcl-qm7l-review-verdict"><span>TCL QM7L review: Verdict</span></h3><p>The TCL QM7L has everything most people might look for in a good mid-range TV: It delivers bright HDR performance, a responsive gaming experience, and good speakers, at a competitive price of $1,500 (or less) when on sale. While it falls short of being the perfect TV due to some minor imperfections with blooming in some HDR scenes, it still is a smart buy.</p><p>There is some tough competition around this price point, however. There’s the aforementioned Hisense U7 that delivers similar performance for a competitive price. It’s not quite as adept at HDR content as the QM7L, but it does sound better (expect our full review soon). And at the very top of the RGB TV spectrum, the Sony Bravia 7 II is one of the very best LED TVs you can buy. Real enthusiasts seeking strict reference accuracy might prefer it, honestly. </p><p>In spite of some fierce competition, though, the TCL QM7L is one of the best mid-range TVs right now if you want a giant 75-inch screen and don’t want to spend over $2,000 on it.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/qled-tvs/tcl-qm7l-review</link>
                                                                            <description>
                            <![CDATA[ The TCL QM7L is one of the best mid-range Mini-LED TVs with impressive brightness and HDR performance, solid gaming experience and surprisingly good speakers. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">bJXGvp6CMa5Xgt7b6n5TNe</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/xYUDV4RDftwqMbKG6nGEtH-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 13 Aug 2026 14:16:36 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[QLED TVs]]></category>
                                                    <category><![CDATA[TVs]]></category>
                                                                                                                    <dc:creator><![CDATA[ Arif Bacchus ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/45MeDeb7Xn988jfZfHW7UG.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/xYUDV4RDftwqMbKG6nGEtH-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[TCL QM7L 75-inch TV on a desk]]></media:description>                                                            <media:text><![CDATA[TCL QM7L 75-inch TV on a desk]]></media:text>
                                <media:title type="plain"><![CDATA[TCL QM7L 75-inch TV on a desk]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/xYUDV4RDftwqMbKG6nGEtH-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>TCL has established a well-earned rep for delivering bright, colorful TVs without the big price tag. That’s exactly why I was excited when the new, affordably priced QM7L showed up in the Tom’s Guide labs.</p><p>The QM7L ($1,499 as tested for 75-inch) aims to distinguish itself from its predecessor with the company’s new Super Quantum Dot (SQD) Mini-LED technology that delivers brighter, more-accurate out-of-the-box color than what you'll usually see on regular QLED TVs from rival brands. </p><p>After watching hours of content on the QM7L and lab testing it myself, it is clear that this isn’t just another affordable 75-inch TV: The QM7L sets new expectations for exactly how much performance you should expect from an affordable 75-inch TV for your money. Here’s why I think it’s one of the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html"><u>best TVs of 2026</u></a> (so far).</p><h3 class="article-body__section" id="section-tcl-qm7l-review-pricing-and-availability"><span>TCL QM7L review: Pricing and availability</span></h3><p>The QM7L is the most affordable entry point to TCL’s SQD Mini-LED tier. At the very top of TCL’s 2026 lineup is the <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review"><u>TCL X11L</u></a> which we reviewed in February, and the middle is the <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review"><u>TCL QM8L</u></a> that we previously reviewed in April. Listed pricing for the QM7L starts at $1,200 for a 55-inch model, though when on sale, you’ll find it for as low as $1,000. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uMLFconvVq2gEVGqSYEM7J" name="TCL-75QM7L-TV--6" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/uMLFconvVq2gEVGqSYEM7J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The 75-inch model we have for review has a list cost of $2,000, but it is currently on sale for $1,500. You can go all the way up to a 98-inch version for $4,000 — or $3,000 when it’s on sale. </p><p>Original MSRPs for the whole range are listed below, also accounting for sale prices. TCL has kept the pricing on the 75-inch model identical to last year's <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review"><u>QM7K</u></a>, making the upgrades this set offers feel like even better value.</p><ul><li>55-inch: $1,199 | <a href="https://www.bestbuy.com/product/tcl-55-class-qm7l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTHLR6/sku/6673190"><u>Sale $999</u></a></li><li>65-inch: $1,499 | <a href="https://www.bestbuy.com/product/tcl-65-class-qm7l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTHL6R"><u>Sale $1,199</u></a></li><li>75-inch: $1,999 | <a href="https://www.bestbuy.com/product/tcl-75-class-qm7l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTHL6G"><u>Sale $1,299</u></a></li><li>85-inch: $2,499 | <a href="https://www.bestbuy.com/product/tcl-85-class-qm7l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTHL64"><u>Sale $1,699</u></a></li><li>98-inch: $3,999 | <a href="https://www.bestbuy.com/product/tcl-98-class-qm7l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH8GG"><u>Sale $2,799</u></a></li></ul><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="urYPXMC5tB3YthMyyNSz8J" name="TCL-75QM7L-TV--14" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/urYPXMC5tB3YthMyyNSz8J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Note that dimming zones on the QM7L are proportional by size, and TCL claims the largest size of this TV can hit up to 2,100+ discrete dimming zones and a total of 3,000 nits of brightness. The core audio hardware on the QM7L is identical across all screen sizes, though, so buying a smaller size doesn’t mean you’ll get worse audio performance. </p><p>Pricing-wise, the TCL QM7L lines up with its direct competitor, Hisense. The Hisense U7 75-inch model has the exact price as this TCL. On the higher-end side, the more premium True RGB <a href="https://www.tomsguide.com/tvs/oled-tvs/sony-bravia-7-ii-true-rgb-tv-review"><u>Sony Bravia 7 II</u></a> comes in at a whopping $3,099 for a 75-inch model. Meanwhile, if you want an OLED alternative, the <a href="https://www.tomsguide.com/tvs/oled-tvs/samsung-s85h-oled-review"><u>Samsung S85H</u></a> comes in at $2,399 for a 77-inch model. </p><h3 class="article-body__section" id="section-tcl-qm7l-review-design-and-ports"><span>TCL QM7L review: Design and ports</span></h3><p>The 75-inch QM7L is a huge TV, measuring 65.6 inches wide and weighing nearly 59 pounds with its stand attached. Despite its portly stature, the TV keeps to the streamlined design of its QM8L sibling with its center-facing stand.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Yr86FrXitSAoCWjQX6t23J" name="TCL-75QM7L-TV--21" alt="The back of a TCL QM7L 75-inch TV" src="https://cdn.mos.cms.futurecdn.net/Yr86FrXitSAoCWjQX6t23J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The overall look and design is simple, as the TV has minimal branding aside from a small TCL logo on the thin bottom chin. There’s also TCL’s SQD branding on the right side bezel which has a nice brushed, metal-like finish to it.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="eHpttSrMxVNzA3Nrdbww8J" name="TCL-75QM7L-TV--22" alt="The pedestal stand of a TCL QM7L 75-inch TV" src="https://cdn.mos.cms.futurecdn.net/eHpttSrMxVNzA3Nrdbww8J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Setup involves sliding one half of a plastic stand into the wedge-shaped plastic base, and then screwing the stand into the back of the TV. It’s not as intuitive as just having to slide the stand into the TV like on a Sony Bravia 7 II, but the stand is quite sturdy. </p><p>You have a little under two inches of room under the bezel in the middle to slide accessories and to reach the power button in the middle of the chin. The side of the TV comes in at a thickness of around 2 inches.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="sgdwxe7MsTi6UK2FAVyipH" name="TCL-75QM7L-TV--23" alt="The side of the screen on a TCL QM7L 75-inch TV" src="https://cdn.mos.cms.futurecdn.net/sgdwxe7MsTi6UK2FAVyipH.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The ports for the QM7L are on the back right side of the TV, in an easy to reach spot not tucked under a bezel. There are four HDMI 2.1 ports — but not all of them are made equal. You can only get 144Hz out of HDMI 1 and 2; it’s only 60Hz at 1080p for HDMI 3 and 4. Additional ports include a USB 2.0 and USB 3.0 port, along with Ethernet, and an optical digital audio output. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="opHGisKCwEFr286iCygH8J" name="TCL-75QM7L-TV--20" alt="The ports on a TCL QM7L 75-inch TV" src="https://cdn.mos.cms.futurecdn.net/opHGisKCwEFr286iCygH8J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The rear of the TV has the two Bang and Olufsen speakers at the top, and the screw holes for the VESA mount. For network connectivity, the TV uses Wi-Fi 5, which is a bit dated at this point but not a huge dealbreaker if your router does not support the new <a href="https://www.tomsguide.com/us/wifi-6-explained,news-28274.html"><u>Wi-Fi 6</u></a> standard. </p><h3 class="article-body__section" id="section-tcl-qm7l-review-how-we-test"><span>TCL QM7L review: How we test</span></h3><p>In our New York City test lab, my lab assistant and I test every TV across SDR and HDR benchmarks using the 10% window. For a true to cinema look and feel, and for color accuracy, we switch the TV over to Filmmaker Mode, usually the “best” mode on the TV. We also disable any intrusive ambient light sensors that could skew our meter’s readings.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fqX68iu8hge3XZsv7eYV7J" name="TCL-75QM7L-TV--4" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/fqX68iu8hge3XZsv7eYV7J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>In terms of tools, we use the Jeti spectraval 1501-HiRes spectroradiometer to profile our Klein K10-A colorimeter. Once profiled, this high-end hardware works in tandem with a Murideo 8K-SIX-G Metal pattern generator and a custom workflow in <a href="https://www.portrait.com/calman-home/"><u>Portrait Displays’ Calman Ultimate software</u></a> to map out the TV’s performance. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ordr4pguLN29QfQwf2425J" name="TCL-75QM7L-TV--18" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/ordr4pguLN29QfQwf2425J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>For gaming performance, we use a Leo Bodnar 4K Video Signal Lag Tester to measure exactly how responsive the TV really is. Once technical lab testing is done, we put the TV through subjective testing using a curated selection of films and shows. You can learn more about this process by reading our “<a href="https://www.tomsguide.com/us/how-we-test-tvs,review-2478.html"><u>How we test TVs</u></a>” guide.</p><h3 class="article-body__section" id="section-tcl-qm7l-review-performance"><span>TCL QM7L review: Performance</span></h3><p>To put the QM7L through its paces, I watched the UHD version of <em>Dune Part 2</em>, nature videos on YouTube, then <em>Spider Noir </em>and a replay of a NASCAR Cup Series race<em> </em>on Amazon Prime Video. Across every type of content, the QM7L impressed with brightness and color. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="eWvjgGvFJdzJuaZ2MUbK7J" name="TCL-75QM7L-TV--8" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/eWvjgGvFJdzJuaZ2MUbK7J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p><em>Dune: Part Two</em> was the perfect test movie. While watching, I noticed how the desert sands of Arrakis were packed with fine detail, showing the QM7L’s ability to bring out subtle textures and warm golden hues. The natural-looking skin tones were also impressive — in desert scenes, many of the characters' orange sunlit faces retained lifelike color without looking overly warm. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DCT2PrCxAPah4tvFrJhTzH" name="TCL-75QM7L-TV--3" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/DCT2PrCxAPah4tvFrJhTzH.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Even though the movie frequently shifts between daylight and low-light environments, the QM7L handled the contrast and brightness well. The blacks in many darker interior scenes looked great and bright elements, like the beam of white light of swords during desert fights, still packed plenty of punch. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="raqw7vay9tR5KUirPrLPsH" name="TCL-75QM7L-TV--2" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/raqw7vay9tR5KUirPrLPsH.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Next, I turned to streaming <em>Spider-Noir </em>on Amazon Prime. I previously watched this on the <a href="https://www.tomsguide.com/tvs/oled-tvs/samsung-s85f-oled-tv-review"><u>Samsung S85F OLED TV</u></a>, and visually, the experience was quite close. The QM7L pushed out great blacks, especially in The Spider’s suit when he was hanging from a wall inside a hotel. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="94dPqntJDvDvMasdtJYCyH" name="TCL-75QM7L-TV--10" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/94dPqntJDvDvMasdtJYCyH.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>When watching the series in color, the TV didn’t lose the details in scenes that show off the series’ atmosphere: A dimly lit hotel room still had slight gray shadows, and reds looked vibrant in a neon sign against a black sky as The Spider was swinging in to steal from Silvermane’s safe under the cover of darkness. In later scenes, Cat Hardy’s green dress sparkled and shined, and so did her golden bangles — adding a sense of realism that made me think she was in the room with me. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="W6t8LYSMR7YPjhEF3Fx5sH" name="TCL-75QM7L-TV--11" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/W6t8LYSMR7YPjhEF3Fx5sH.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>For an SDR test, I watched a replay of Amazon Prime's NASCAR Cup Series race coverage from Pocono. I set the TCL QM7L to Vivid Mode, and its 3,167 nits of peak brightness in this mode made the broadcast look especially bright and colorful. Chase Elliott's blue and yellow NAPA Chevrolet stood out with bright colors. I could also clearly see the bright sunlight reflecting off Denny Hamlin's helmet during an in-car camera shot. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vD5JZ37gMFih6FUKvxXvzH" name="TCL-75QM7L-TV--12" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/vD5JZ37gMFih6FUKvxXvzH.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Finally, for a display bloom test, I watched a HDR video on YouTube that is specially designed for this. Watching normally from a few feet away, I didn’t immediately notice any blooming. It was present only in small momentary fireworks scene and visible only when I moved my seat to the corner of the panel. This panel on this TV is definitely good for the price, if you don’t go looking for the faults with a fine tooth comb.</p><h3 class="article-body__section" id="section-tcl-qm7l-review-test-results"><span>TCL QM7L review: Test results</span></h3><div ><table><thead><tr><th class="firstcol " ><p>Test Name</p></th><th  ><p>TCL QM7L (75-inch)</p></th><th  ><p>TCL QM7K (65-inch)</p></th><th  ><p>Hisense U7 (65-inch)</p></th><th  ><p>Sony Bravia 7 II (65-inch)</p></th><th  ><p>Samsung 65-inch S85H OLED</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>SDR Brightness (10%, in nits)</strong></p></td><td  ><p>196</p></td><td  ><p>131</p></td><td  ><p>185</p></td><td  ><p>100</p></td><td  ><p>9.2</p></td></tr><tr><td class="firstcol " ><p><strong>Delta-E (lower is better)</strong></p></td><td  ><p>2.64</p></td><td  ><p>1.44</p></td><td  ><p>3.00</p></td><td  ><p>4.79</p></td><td  ><p>1.69</p></td></tr><tr><td class="firstcol " ><p><strong>Rec. 709 Gamut Coverage</strong></p></td><td  ><p>99.48%</p></td><td  ><p>99.17%</p></td><td  ><p>99.38%</p></td><td  ><p>98.95%</p></td><td  ><p>99.99%</p></td></tr><tr><td class="firstcol " ><p><strong>HDR Brightness (10%, in nits)</strong></p></td><td  ><p>2,270</p></td><td  ><p>1,733</p></td><td  ><p>2,866</p></td><td  ><p>2,077</p></td><td  ><p>770</p></td></tr><tr><td class="firstcol " ><p><strong>UHDA-P3 Gamut Coverage</strong></p></td><td  ><p>97.64%</p></td><td  ><p>96.98%</p></td><td  ><p>97.31%</p></td><td  ><p>97.73%</p></td><td  ><p>97.48%</p></td></tr><tr><td class="firstcol " ><p><strong>Rec. 2020 Gamut Coverage</strong></p></td><td  ><p>90.28%</p></td><td  ><p>79.22%</p></td><td  ><p>82.75%</p></td><td  ><p>87.17%</p></td><td  ><p>72.94%</p></td></tr><tr><td class="firstcol " ><p><strong>Input latency (in milliseconds)</strong></p></td><td  ><p>9.4</p></td><td  ><p>13.1</p></td><td  ><p>9.8</p></td><td  ><p>10.4</p></td><td  ><p>9.2</p></td></tr></tbody></table></div><p>Lab results showed the TCL QM7L is a huge jump across the board in terms of brightness, and HDR color accuracy from its predecessor, the QM7K. The QM7L also matches or exceeds most similarly priced LED competitors in brightness while remaining competitive in color accuracy. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WvshzwCPAXw8Ykzu8EDC7J" name="TCL-75QM7L-TV--13" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/WvshzwCPAXw8Ykzu8EDC7J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>While not a lot of content is mastered for Rec 2020 yet, our lab’s measured Gamut Coverage shows why HDR on this TV looked so good. The QM7L hit 90.28% of the Rec 2020 gamut. That’s highest among TCL’s competitors; the U7 hit 82.75%, the Bravia 87.18, and the Samsung OLED 72.94%. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="urYPXMC5tB3YthMyyNSz8J" name="TCL-75QM7L-TV--14" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/urYPXMC5tB3YthMyyNSz8J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>TCL claims this TV can cover 100% Rec 2020, but measurements can vary based on equipment used. Still, against every TV we’ve tested this year, only TCL’s own X11L scored higher in our labs, with 91.81% coverage. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VNSKSDVTVvCA2Z4dcHFc2J" name="TCL-75QM7L-TV--7" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/VNSKSDVTVvCA2Z4dcHFc2J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>With a measured HDR brightness of 2,270 nits, the QM7L lands second with its competitors. That even beats out the pricey true RGB Sony Bravia 7 II, and leaving Samsung’s most affordable 2026 OLED TV far behind — though those are all 65-inch models. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Eu5JE4ZyJAnXdasQHjSC3J" name="TCL-75QM7L-TV--5" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/Eu5JE4ZyJAnXdasQHjSC3J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Overall, the QM7L delivered a bright, vibrant picture. Its measured Delta-E of 2.64 also points to a very good SDR color accuracy, third best amongst its competitors. </p><h3 class="article-body__section" id="section-tcl-qm7l-review-gaming"><span>TCL QM7L review: Gaming</span></h3><p>While the viewing experience on the TCL QM7L is impressive, so is the gaming. The TV measured 9.4 ms in our input lag tests which is no surprise, given all the features.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vzwHrjzHMeFL5N7bmz8q5J" name="TCL-75QM7L-TV--17" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/vzwHrjzHMeFL5N7bmz8q5J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>There’s support for AMD FreeSync Premium Pro, Variable Refresh Rate (VRR), and Auto Low Latency Mode (ALLM). A long press of a button on the remote can bring up the Game Bar, which has several additional features like an aiming aid and a magnifier. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HUj4LkVyXUgrLXCkaqaD6J" name="TCL-75QM7L-TV--16" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/HUj4LkVyXUgrLXCkaqaD6J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I do like how there’s a frame rate floating window, so you can keep up with how efficiently your game is running. During my time with the TV, I used this menu and also turned on HGIG and enabled high frame rate modes. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9NnCKRBRiLeNwJfDEjmtzH" name="TCL-75QM7L-TV--15" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/9NnCKRBRiLeNwJfDEjmtzH.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>When playing Marvel’s<em> Spider-Man 2</em> on our lab’s PlayStation 5, web swinging through Manhattan was smooth, maxing out at 119fps in the frame rate floating window. Same for <em>Assassins Creed: Black Flag Resynced </em>where in the ship battles in the opening scenes, despite wave crashes and my swaying the ship side by side, the game was still playing smoothly with minimal input lag.</p><h3 class="article-body__section" id="section-tcl-qm7l-review-sound"><span>TCL QM7L review: Sound</span></h3><p>For audio testing, I watched the music video of Andrea Bocelli, David Guetta, EJAE and Megan Thee Stallion’s “DNA.” On this TV’s 2.2-channel Bang & Olufsen-tuned speaker system, this World Cup anthem sounded better than expected.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mAbN4ZmzauPqXGM9XSDR7J" name="TCL-75QM7L-TV--19" alt="TCL QM7L 75-inch TV on a desk" src="https://cdn.mos.cms.futurecdn.net/mAbN4ZmzauPqXGM9XSDR7J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Bass had an energetic balance between vocals and the song’s EDM style beats. Things were surprisingly balanced for a built-in TV speaker system. Bocelli’s voice came through clearly, while the heavier electronic beats and Megan Thee Stallion’s verses had some thump and bop to it. The speakers sounded quite wide, too, so I don’t think you’ll need a soundbar here. </p><h3 class="article-body__section" id="section-tcl-qm7l-review-smart-tv-and-remote"><span>TCL QM7L review: Smart TV and remote</span></h3><p>The TCL QM7L is powered by Google TV. Much like my experience with the Sony Bravia 7 II, I enjoyed the user interface. Getting through settings, looking for content with the included voice remote is clean and easy. Google Gemini for TV has a conversational style that helps surface my content easily, and the home screen isn’t full of ads unlike some of its competitors. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="BBsa6XLseaZyH6d5fL5N9J" name="TCL-75QM7L-TV--24" alt="The remote for a TCL QM7L 75-inch TV" src="https://cdn.mos.cms.futurecdn.net/BBsa6XLseaZyH6d5fL5N9J.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As for the remote, not much has changed from the previous QM7K — it still is plastic and black with a brushed finish. Buttons are relatively close together, and backlit. My favorite services have dedicated buttons on the remote, too, with access to Netflix, Prime Video, Netflix, Tubi, Disney, and FreeTV just a touch away.</p><h3 class="article-body__section" id="section-tcl-qm7l-review-verdict"><span>TCL QM7L review: Verdict</span></h3><p>The TCL QM7L has everything most people might look for in a good mid-range TV: It delivers bright HDR performance, a responsive gaming experience, and good speakers, at a competitive price of $1,500 (or less) when on sale. While it falls short of being the perfect TV due to some minor imperfections with blooming in some HDR scenes, it still is a smart buy.</p><p>There is some tough competition around this price point, however. There’s the aforementioned Hisense U7 that delivers similar performance for a competitive price. It’s not quite as adept at HDR content as the QM7L, but it does sound better (expect our full review soon). And at the very top of the RGB TV spectrum, the Sony Bravia 7 II is one of the very best LED TVs you can buy. Real enthusiasts seeking strict reference accuracy might prefer it, honestly. </p><p>In spite of some fierce competition, though, the TCL QM7L is one of the best mid-range TVs right now if you want a giant 75-inch screen and don’t want to spend over $2,000 on it.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Tom's Guide TV Satisfaction Survey: Tell us what you love (and hate) about your TV ]]></title>
                                                                                                <dc:content><![CDATA[ <p>For the past few weeks we've been putting TV manufacturers' feet to the fire. We're holding them accountable by grading them in key categories like design, performance, features and pricing — and now we're asking our readers to get involved.</p><p>We recently asked readers <a href="https://www.tomsguide.com/tvs/we-asked-readers-which-tv-brand-they-trusted-most-and-one-company-rose-above-the-rest">which brand they trusted most and one company was the clear winner</a>. Now we're coming to you all directly with a short survey that will help us figure out what you love and hate about the six biggest TV makers: <a href="https://www.tomsguide.com/tvs/hisense-tv-report-card-2026-one-of-the-best-ways-to-maximize-your-dollar">Hisense</a>, <a href="https://www.tomsguide.com/tvs/lg-tvs-are-better-than-theyve-ever-been-heres-what-theyre-doing-right-what-theyre-doing-wrong-and-what-needs-to-change-in-2026">LG</a>, <a href="https://www.tomsguide.com/tvs/samsung-tv-report-card-2026-you-can-rely-on-samsung-to-deliver-exceptional-performance">Samsung</a>, <a href="https://www.tomsguide.com/tvs/theres-no-way-around-it-sony-tvs-are-priced-higher-than-most-of-the-competition-heres-what-sonys-doing-right-what-its-doing-wrong-and-what-needs-to-change-in-2026">Sony</a>, <a href="https://www.tomsguide.com/tvs/tcl-tv-report-card-2026-i-suspect-that-ive-recommended-tcl-tvs-more-than-any-other-brand">TCL</a> and <a href="https://www.tomsguide.com/tvs/vizio-tv-report-card-2026-vizio-is-still-finding-its-footing-post-walmart-acquisition">Vizio</a>.</p><p>Fill it out at your leisure and let me know in the comments what your biggest gripes are. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eG2mEX"></div>                            </div>                            <script src="https://kwizly.com/embed/eG2mEX.js" async></script><h2 id="here-s-how-i-d-answer">Here's how I'd answer</h2><p>Testing TVs for a living has left me with an embarrassing amount of screens in my home. In my home office I've got a 75-inch <a href="https://www.tomsguide.com/tvs/tcl-qm9k-mini-led-tv-review">TCL QM9K</a>. Downstairs in my living room is a <a href="https://www.tomsguide.com/tvs/oled-tvs/samsung-s95d-oled-review">Samsung S95D OLED</a>. In my music listening room I've got the <a href="https://www.tomsguide.com/tvs/hisense-u8n-mini-led-tv-review">Hisense U8N</a>. </p><p>In the above survey, I'd mark all three down.</p><p>How long have I owned those TVs? Not all that long. </p><p>The first TV I ever owned was a massive CRT model that I used to play N64 and PS1 games on growing up. My parents bought that TV for me and my brother in 1996 and I was still rocking it to play Halo 2 a decade later. </p><div><blockquote><p>These days, however, I'm trading out TVs every two to three years.</p></blockquote></div><p>These days, however, I'm trading out TVs every two to three years. That's probably a bit excessive, honestly, but as someone who covers this stuff, I want to make sure that I have access to all the latest and greatest technology to provide the best analysis to you guys. </p><p>Would I buy these TVs again? I absolutely would. They're all great value options. Not everyone probably feels the same as I feel, though. For some of you I'm sure the answer is going to be a resounding <em>no</em>. If that's you, drop a comment below letting me know why that is. </p><p>If the answer is <em>yes</em>, also drop a comment below letting me know why you like your TV so much. By doing so, you could be directly helping someone find their new favorite TV. </p><p>Stay tuned for the results of these surveys and check out our guide to the <a href="https://www.tomsguide.com/tvs/we-just-graded-every-tv-brand-on-price-performance-and-more-heres-how-their-report-cards-stack-up">best TV brands in 2026</a> if you haven't done so already. You'll be seeing the results used in more stories in the coming weeks as we continue to break down what's working — and what's not working — in the world of TVs.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/theres-a-better-cable-for-tvs-than-hdmi-but-heres-why-well-probably-never-use-it">There's a better cable for TVs than HDMI — but here's why we'll probably never use it</a></li><li><a href="https://www.tomsguide.com/tvs/best-buy-essentials-ultra-thin-amplified-hdtv-antenna-review">Best Buy Essentials Ultra-Thin Amplified HDTV Antenna review</a></li><li><a href="https://www.tomsguide.com/tvs/your-streaming-stick-isnt-broken-these-apps-are-just-slowing-it-down-to-a-crawl">Your streaming stick isn't broken — these apps are just slowing it down to a crawl</a></li></ul><h2 id=""></h2> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/toms-guide-tv-satisfaction-survey-tell-us-what-you-love-and-hate-about-your-tv</link>
                                                                            <description>
                            <![CDATA[ Take our Tom's Guide TV Satisfaction Survey and tell us what you like about the TV you own and what you really don't like. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ZvFwSRtfH25kguR4zHU3hQ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/i2ni7uXmQ3KCaPGwekosSB-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 08 Aug 2026 07:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ Nick.Pino@futurenet.com (Nick Pino) ]]></author>                    <dc:creator><![CDATA[ Nick Pino ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/7xnnEdyK5eEbDVbS5pYB54.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Nick Pino heads up the TV and AV verticals at Tom&#039;s Guide and covers everything from OLED TVs to the latest wireless headphones. He&#039;s a Level 1 Certified THX Home Theater Professional, and has attended classes on TV and audio calibration. On Tom&#039;s Guide, he looks after some of the site&#039;s important buying guides like the best TVs, best OLED TVs, best 4K TVs, so most of his day is spent watching and evaluating new screens from LG, Samsung, Sony, Hisense, TCL and Vizio. (And yes, he knows how lucky he is to say that.) He was formerly the Senior Editor, TV and AV at TechRadar (Tom&#039;s Guide&#039;s sister site) and has previously written for GamesRadar, Official Xbox Magazine, PC Gamer and other outlets over the last decade. He got his start on Best Buy&#039;s official video game magazine, @GAMER, for whom he attended his first E3 in 2013. He&#039;s served as a judge for CES&#039; prestigious Innovation Awards and has attended the tech conference in Las Vegas since 2014. He has a computer science degree from the University at Buffalo and still resides in the Buffalo area. (Go Bills!) Not sure which TV you should buy? Drop him an email or tweet him on Twitter and he can help you out.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/i2ni7uXmQ3KCaPGwekosSB-1280-80.jpg">
                                                            <media:credit><![CDATA[Samsung, TCL, LG / Edited by Gemini]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A selection of Samsung, TCL and LG TVs in a room.]]></media:description>                                                            <media:text><![CDATA[A selection of Samsung, TCL and LG TVs in a room.]]></media:text>
                                <media:title type="plain"><![CDATA[A selection of Samsung, TCL and LG TVs in a room.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/i2ni7uXmQ3KCaPGwekosSB-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>For the past few weeks we've been putting TV manufacturers' feet to the fire. We're holding them accountable by grading them in key categories like design, performance, features and pricing — and now we're asking our readers to get involved.</p><p>We recently asked readers <a href="https://www.tomsguide.com/tvs/we-asked-readers-which-tv-brand-they-trusted-most-and-one-company-rose-above-the-rest">which brand they trusted most and one company was the clear winner</a>. Now we're coming to you all directly with a short survey that will help us figure out what you love and hate about the six biggest TV makers: <a href="https://www.tomsguide.com/tvs/hisense-tv-report-card-2026-one-of-the-best-ways-to-maximize-your-dollar">Hisense</a>, <a href="https://www.tomsguide.com/tvs/lg-tvs-are-better-than-theyve-ever-been-heres-what-theyre-doing-right-what-theyre-doing-wrong-and-what-needs-to-change-in-2026">LG</a>, <a href="https://www.tomsguide.com/tvs/samsung-tv-report-card-2026-you-can-rely-on-samsung-to-deliver-exceptional-performance">Samsung</a>, <a href="https://www.tomsguide.com/tvs/theres-no-way-around-it-sony-tvs-are-priced-higher-than-most-of-the-competition-heres-what-sonys-doing-right-what-its-doing-wrong-and-what-needs-to-change-in-2026">Sony</a>, <a href="https://www.tomsguide.com/tvs/tcl-tv-report-card-2026-i-suspect-that-ive-recommended-tcl-tvs-more-than-any-other-brand">TCL</a> and <a href="https://www.tomsguide.com/tvs/vizio-tv-report-card-2026-vizio-is-still-finding-its-footing-post-walmart-acquisition">Vizio</a>.</p><p>Fill it out at your leisure and let me know in the comments what your biggest gripes are. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eG2mEX"></div>                            </div>                            <script src="https://kwizly.com/embed/eG2mEX.js" async></script><h2 id="here-s-how-i-d-answer">Here's how I'd answer</h2><p>Testing TVs for a living has left me with an embarrassing amount of screens in my home. In my home office I've got a 75-inch <a href="https://www.tomsguide.com/tvs/tcl-qm9k-mini-led-tv-review">TCL QM9K</a>. Downstairs in my living room is a <a href="https://www.tomsguide.com/tvs/oled-tvs/samsung-s95d-oled-review">Samsung S95D OLED</a>. In my music listening room I've got the <a href="https://www.tomsguide.com/tvs/hisense-u8n-mini-led-tv-review">Hisense U8N</a>. </p><p>In the above survey, I'd mark all three down.</p><p>How long have I owned those TVs? Not all that long. </p><p>The first TV I ever owned was a massive CRT model that I used to play N64 and PS1 games on growing up. My parents bought that TV for me and my brother in 1996 and I was still rocking it to play Halo 2 a decade later. </p><div><blockquote><p>These days, however, I'm trading out TVs every two to three years.</p></blockquote></div><p>These days, however, I'm trading out TVs every two to three years. That's probably a bit excessive, honestly, but as someone who covers this stuff, I want to make sure that I have access to all the latest and greatest technology to provide the best analysis to you guys. </p><p>Would I buy these TVs again? I absolutely would. They're all great value options. Not everyone probably feels the same as I feel, though. For some of you I'm sure the answer is going to be a resounding <em>no</em>. If that's you, drop a comment below letting me know why that is. </p><p>If the answer is <em>yes</em>, also drop a comment below letting me know why you like your TV so much. By doing so, you could be directly helping someone find their new favorite TV. </p><p>Stay tuned for the results of these surveys and check out our guide to the <a href="https://www.tomsguide.com/tvs/we-just-graded-every-tv-brand-on-price-performance-and-more-heres-how-their-report-cards-stack-up">best TV brands in 2026</a> if you haven't done so already. You'll be seeing the results used in more stories in the coming weeks as we continue to break down what's working — and what's not working — in the world of TVs.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/theres-a-better-cable-for-tvs-than-hdmi-but-heres-why-well-probably-never-use-it">There's a better cable for TVs than HDMI — but here's why we'll probably never use it</a></li><li><a href="https://www.tomsguide.com/tvs/best-buy-essentials-ultra-thin-amplified-hdtv-antenna-review">Best Buy Essentials Ultra-Thin Amplified HDTV Antenna review</a></li><li><a href="https://www.tomsguide.com/tvs/your-streaming-stick-isnt-broken-these-apps-are-just-slowing-it-down-to-a-crawl">Your streaming stick isn't broken — these apps are just slowing it down to a crawl</a></li></ul><h2 id=""></h2>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ We asked readers which TV brand they trusted most — and one company rose above the rest ]]></title>
                                                                                                <dc:content><![CDATA[ <p>As Senior TV Editor, I see nearly every TV release year after year. It’s a special opportunity to share a ton of helpful context with folks shopping for a new TV, but it also means that I’m liable to lose sight of how the average person feels about the state of the industry.</p><p>This is why, for the last several weeks, we’ve been asking you — the readers — which major TV brand you consider to be the most trustworthy.</p><p>Between Hisense, LG, Samsung, Sony, TCL and Vizio, one brand proved more trustworthy than the rest — and it wasn’t particularly close. Sony, makers of some of the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TVs</a> you can buy, rose above the competition. Here’s how the rest of the pack stacked up.</p><h2 id="trusted-tv-brands-full-results">Trusted TV brands: Full results</h2><p>In just over two weeks, our poll compiled just over 3,200 votes. Here's a breakdown of the results at the time of publishing:</p><div ><table><thead><tr><th class="firstcol " ><p>Brand</p></th><th  ><p>% Total</p></th><th  ><p># of Votes</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Sony</strong></p></td><td  ><p>32%</p></td><td  ><p>1,043</p></td></tr><tr><td class="firstcol " ><p><strong>LG</strong></p></td><td  ><p>25%</p></td><td  ><p>805</p></td></tr><tr><td class="firstcol " ><p><strong>Samsung</strong></p></td><td  ><p>24%</p></td><td  ><p>786</p></td></tr><tr><td class="firstcol " ><p><strong>TCL</strong></p></td><td  ><p>11%</p></td><td  ><p>352</p></td></tr><tr><td class="firstcol " ><p><strong>Hisense</strong></p></td><td  ><p>6%</p></td><td  ><p>201</p></td></tr><tr><td class="firstcol " ><p><strong>Vizio</strong></p></td><td  ><p>1%</p></td><td  ><p>46</p></td></tr></tbody></table></div><p>Among our readers, Sony-branded QLEDs, OLEDs and True RGB TVs are the most trusted. LG and Samsung are closely positioned in second and third place, while TCL, Hisense and Vizio received far fewer votes overall.</p><div  class="fancy-box"><div class="fancy_box-title">Want to learn more?</div><div class="fancy_box_body"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' ><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kCA3oKqmzwMtQEzcP4kKWW" name="TG Brand Report Card FINAL LIST" caption="" alt="The final TV report card with every TV manufacturer" src="https://cdn.mos.cms.futurecdn.net/kCA3oKqmzwMtQEzcP4kKWW.jpg" mos="" link="" align="" fullscreen="" width="" height="" attribution="" endorsement="" class="pinterest-pin-exclude"></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p class="fancy-box__body-text"><strong>Check out all of our report cards for the </strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/tvs/we-just-graded-every-tv-brand-on-price-performance-and-more-heres-how-their-report-cards-stack-up"><strong>best TV brands in 2026</strong></a><strong>.</strong></p></div></div><p>It's an interesting time to analyze these results. We recently conducted a week-long exercise in which we doled out report cards to these brands, grading each on performance, features, price and more. Sony received our highest grade for performance (A). However, Sony was also the recipient of the lowest grade we handed out for price (C-).</p><p>Our reasoning for these grades is simple: Sony's superb engineering and unparalleled picture processing amount to some of the best performance money can buy. Unfortunately, the cost of this consistency is often passed down to the viewer, as Sony TVs tend to be priced higher than rival TVs.</p><h2 id="sony-tvs-in-2026-and-beyond">Sony TVs in 2026 and beyond</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3008px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LpifwEvPHLE3gisyuowv4d" name="Setting 2 BRAVIA family-FNL" alt="The Sony 2025 lineup of TVs and soundbars" src="https://cdn.mos.cms.futurecdn.net/LpifwEvPHLE3gisyuowv4d.jpg" mos="" align="middle" fullscreen="" width="3008" height="1692" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony)</span></figcaption></figure><p>If Sony's 2026 Bravia TV lineup is any indication, the company is perfectly comfortable assuming the role of a trusted premium TV-maker — even if its mid-range and luxury models are priced higher than the competition.</p><p>Interestingly, our poll proves that viewers and TV-shoppers aren't necessarily fazed by this arrangement. Among our readers, Sony is more trustworthy than LG and Samsung (brands that specialize in high-end performance) and <em>far</em> more trustworthy than TCL and Hisense (brands commonly associated with value-forward, budget-friendly models).</p><p>Recently, Sony spun out its TV business, with rival brand TCL taking on a 51% stake in the operation. It's tough to say how this might affect Sony TVs, TCL TVs and the reputation of both brands.</p><p>We'll be continuing to run the poll, so if you haven't responded to our poll about TV-brand trustworthiness, we want to hear from you: Your input could help shape how these companies will build, tune, and market these TVs in 2027 and beyond. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ePaJpW"></div>                            </div>                            <script src="https://kwizly.com/embed/ePaJpW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/we-just-graded-every-tv-brand-on-price-performance-and-more-heres-how-their-report-cards-stack-up">We just graded every TV brand on price, performance and more — here’s how their report cards stack up</a></li><li><a href="https://www.tomsguide.com/tvs/4k-tvs/this-rgb-led-tv-is-the-one-to-buy-if-the-sony-bravia-9-ii-is-outside-of-your-budget">This RGB LED TV is the one to buy if the Sony Bravia 9 II is outside of your budget</a></li><li><a href="https://www.tomsguide.com/tvs/tcl-and-sony-are-joining-forces-to-sell-more-tvs-but-is-that-bad-news-for-shoppers">TCL and Sony are joining forces to sell more TVs — but is that bad news for shoppers?</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/we-asked-readers-which-tv-brand-they-trusted-most-and-one-company-rose-above-the-rest</link>
                                                                            <description>
                            <![CDATA[ Our poll asked readers which of the following TV brands have been the most reliable: Hisense, LG, Samsung, Sony, TCL and Vizio. Here's what you had to say. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">8Wc62Tm5kepmacBsABtjjK</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/8SELnGezPdAcTSxwoPW9YU-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 05 Aug 2026 05:15:00 +0000</pubDate>                                                                                                                                <updated>Tue, 11 Aug 2026 12:17:42 +0000</updated>
                                                                                                                                            <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/8SELnGezPdAcTSxwoPW9YU-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A man thoughtfully looks at LCD TVs in a large store with his back to the camera]]></media:description>                                                            <media:text><![CDATA[A man thoughtfully looks at LCD TVs in a large store with his back to the camera]]></media:text>
                                <media:title type="plain"><![CDATA[A man thoughtfully looks at LCD TVs in a large store with his back to the camera]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/8SELnGezPdAcTSxwoPW9YU-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>As Senior TV Editor, I see nearly every TV release year after year. It’s a special opportunity to share a ton of helpful context with folks shopping for a new TV, but it also means that I’m liable to lose sight of how the average person feels about the state of the industry.</p><p>This is why, for the last several weeks, we’ve been asking you — the readers — which major TV brand you consider to be the most trustworthy.</p><p>Between Hisense, LG, Samsung, Sony, TCL and Vizio, one brand proved more trustworthy than the rest — and it wasn’t particularly close. Sony, makers of some of the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TVs</a> you can buy, rose above the competition. Here’s how the rest of the pack stacked up.</p><h2 id="trusted-tv-brands-full-results">Trusted TV brands: Full results</h2><p>In just over two weeks, our poll compiled just over 3,200 votes. Here's a breakdown of the results at the time of publishing:</p><div ><table><thead><tr><th class="firstcol " ><p>Brand</p></th><th  ><p>% Total</p></th><th  ><p># of Votes</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Sony</strong></p></td><td  ><p>32%</p></td><td  ><p>1,043</p></td></tr><tr><td class="firstcol " ><p><strong>LG</strong></p></td><td  ><p>25%</p></td><td  ><p>805</p></td></tr><tr><td class="firstcol " ><p><strong>Samsung</strong></p></td><td  ><p>24%</p></td><td  ><p>786</p></td></tr><tr><td class="firstcol " ><p><strong>TCL</strong></p></td><td  ><p>11%</p></td><td  ><p>352</p></td></tr><tr><td class="firstcol " ><p><strong>Hisense</strong></p></td><td  ><p>6%</p></td><td  ><p>201</p></td></tr><tr><td class="firstcol " ><p><strong>Vizio</strong></p></td><td  ><p>1%</p></td><td  ><p>46</p></td></tr></tbody></table></div><p>Among our readers, Sony-branded QLEDs, OLEDs and True RGB TVs are the most trusted. LG and Samsung are closely positioned in second and third place, while TCL, Hisense and Vizio received far fewer votes overall.</p><div  class="fancy-box"><div class="fancy_box-title">Want to learn more?</div><div class="fancy_box_body"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' ><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kCA3oKqmzwMtQEzcP4kKWW" name="TG Brand Report Card FINAL LIST" caption="" alt="The final TV report card with every TV manufacturer" src="https://cdn.mos.cms.futurecdn.net/kCA3oKqmzwMtQEzcP4kKWW.jpg" mos="" link="" align="" fullscreen="" width="" height="" attribution="" endorsement="" class="pinterest-pin-exclude"></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p class="fancy-box__body-text"><strong>Check out all of our report cards for the </strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/tvs/we-just-graded-every-tv-brand-on-price-performance-and-more-heres-how-their-report-cards-stack-up"><strong>best TV brands in 2026</strong></a><strong>.</strong></p></div></div><p>It's an interesting time to analyze these results. We recently conducted a week-long exercise in which we doled out report cards to these brands, grading each on performance, features, price and more. Sony received our highest grade for performance (A). However, Sony was also the recipient of the lowest grade we handed out for price (C-).</p><p>Our reasoning for these grades is simple: Sony's superb engineering and unparalleled picture processing amount to some of the best performance money can buy. Unfortunately, the cost of this consistency is often passed down to the viewer, as Sony TVs tend to be priced higher than rival TVs.</p><h2 id="sony-tvs-in-2026-and-beyond">Sony TVs in 2026 and beyond</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3008px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LpifwEvPHLE3gisyuowv4d" name="Setting 2 BRAVIA family-FNL" alt="The Sony 2025 lineup of TVs and soundbars" src="https://cdn.mos.cms.futurecdn.net/LpifwEvPHLE3gisyuowv4d.jpg" mos="" align="middle" fullscreen="" width="3008" height="1692" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony)</span></figcaption></figure><p>If Sony's 2026 Bravia TV lineup is any indication, the company is perfectly comfortable assuming the role of a trusted premium TV-maker — even if its mid-range and luxury models are priced higher than the competition.</p><p>Interestingly, our poll proves that viewers and TV-shoppers aren't necessarily fazed by this arrangement. Among our readers, Sony is more trustworthy than LG and Samsung (brands that specialize in high-end performance) and <em>far</em> more trustworthy than TCL and Hisense (brands commonly associated with value-forward, budget-friendly models).</p><p>Recently, Sony spun out its TV business, with rival brand TCL taking on a 51% stake in the operation. It's tough to say how this might affect Sony TVs, TCL TVs and the reputation of both brands.</p><p>We'll be continuing to run the poll, so if you haven't responded to our poll about TV-brand trustworthiness, we want to hear from you: Your input could help shape how these companies will build, tune, and market these TVs in 2027 and beyond. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ePaJpW"></div>                            </div>                            <script src="https://kwizly.com/embed/ePaJpW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/we-just-graded-every-tv-brand-on-price-performance-and-more-heres-how-their-report-cards-stack-up">We just graded every TV brand on price, performance and more — here’s how their report cards stack up</a></li><li><a href="https://www.tomsguide.com/tvs/4k-tvs/this-rgb-led-tv-is-the-one-to-buy-if-the-sony-bravia-9-ii-is-outside-of-your-budget">This RGB LED TV is the one to buy if the Sony Bravia 9 II is outside of your budget</a></li><li><a href="https://www.tomsguide.com/tvs/tcl-and-sony-are-joining-forces-to-sell-more-tvs-but-is-that-bad-news-for-shoppers">TCL and Sony are joining forces to sell more TVs — but is that bad news for shoppers?</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Best TV Brands 2026: We just graded them on price, performance and more — here’s how their report cards stack up ]]></title>
                                                                                                <dc:content><![CDATA[ <p>This week, we handed out report cards to the biggest brands in the TV industry: <a href="https://www.tomsguide.com/tvs/hisense-tv-report-card-2026-one-of-the-best-ways-to-maximize-your-dollar">Hisense</a>, <a href="https://www.tomsguide.com/tvs/lg-tvs-are-better-than-theyve-ever-been-heres-what-theyre-doing-right-what-theyre-doing-wrong-and-what-needs-to-change-in-2026">LG</a>, <a href="https://www.tomsguide.com/tvs/samsung-tv-report-card-2026-you-can-rely-on-samsung-to-deliver-exceptional-performance">Samsung</a>, <a href="https://www.tomsguide.com/tvs/theres-no-way-around-it-sony-tvs-are-priced-higher-than-most-of-the-competition-heres-what-sonys-doing-right-what-its-doing-wrong-and-what-needs-to-change-in-2026">Sony</a>, <a href="https://www.tomsguide.com/tvs/tcl-tv-report-card-2026-i-suspect-that-ive-recommended-tcl-tvs-more-than-any-other-brand">TCL</a> and <a href="https://www.tomsguide.com/tvs/vizio-tv-report-card-2026-vizio-is-still-finding-its-footing-post-walmart-acquisition">Vizio</a>.</p><p>The goal was simple: grade each TV-maker on pricing, design, features and performance. We also took a hard look at each of these brands' software.</p><p>Now that these familiar names have received their respective report cards, it's time to meet them in the classroom for a conference about how they're doing this year. If you're shopping for the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TV</a> in 2026, this ought to give you a pretty clear picture about how to spend your money.</p><h2 id="pricing">Pricing</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4348px;"><p class="vanilla-image-block" style="padding-top:69.53%;"><img id="ArhUyWFK2seaATznAtyMmY" name="TV Brand Report Card_Final_PRICING" alt="The Tom's Guide 2026 Report Cards" src="https://cdn.mos.cms.futurecdn.net/ArhUyWFK2seaATznAtyMmY.jpg" mos="" align="middle" fullscreen="" width="4348" height="3023" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Of the six names in the mix, Hisense, TCL and Vizio led the class in the all-important pricing category. If you’ve shopped for a TV lately, this probably won’t come as a surprise.</p><p>Vizio has focused almost entirely on ultra-affordable TVs in recent years. While the rest of the big-name brands tinker with high-end, cutting-edge technologies like RGB LED and QD-OLED, Vizio is focused on more cost-effective hardware.</p><div><blockquote><p>When comparing similarly priced models, Hisense and TCL TVs offer a bit more bang for your buck when it comes to features.</p></blockquote></div><p>Meanwhile, the most-popular entry-level sets in Hisense and TCL’s primary lineups tend to be more affordable than those of LG, Samsung and Sony. In addition, it’s often the case that, when comparing similarly priced models, Hisense and TCL TVs offer a bit more bang for your buck when it comes to features.</p><p><strong>Winner: </strong>Tie (Hisense, TCL and Vizio)</p><h2 id="design">Design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4348px;"><p class="vanilla-image-block" style="padding-top:69.53%;"><img id="2CZtBcUxff3jUmsu9tfrkY" name="TV Brand Report Card_Final_DESIGN" alt="The Tom's Guide 2026 Report Cards" src="https://cdn.mos.cms.futurecdn.net/2CZtBcUxff3jUmsu9tfrkY.jpg" mos="" align="middle" fullscreen="" width="4348" height="3023" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>When it comes to design, Samsung and Sony lead the way. Sony’s top TVs often arrive with multiple stand configurations, and its most recent True RGB TVs feature a unique stand design that effectively hides cables by way of lenticular lensing.</p><p>Samsung consistently innovates at the higher end of its lineup, too, popularizing matte-style screens, external connectivity hubs and, most recently, eye-catching metallic frames. Affordable, entry-level Samsung QLEDs lean into the simplistic nature of their display hardware, often arriving with sleek, slim panels that play the part of a more-premium set.</p><div><blockquote><p>When it comes to design, Samsung and Sony lead the way.</p></blockquote></div><p>LG’s most noteworthy TVs — its OLEDs — are handsomely engineered, too, but the worldwide leader in OLED TVs doesn’t seem too eager to move away from tried and true formulas.</p><p>TCL and Hisense are purveyors of TVs with safe, middle-of-the-road designs that don’t innovate as much as they respond to (and replicate) industry trends. Their higher-end TVs tend to carry their best design characteristics.</p><p><strong>Winner: </strong>Tie (Samsung and Sony)</p><h2 id="features">Features</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4348px;"><p class="vanilla-image-block" style="padding-top:69.53%;"><img id="UUj45ydUmCH3eBk3uXqukY" name="TV Brand Report Card_Final_FEATURES" alt="The Tom's Guide 2026 Report Cards" src="https://cdn.mos.cms.futurecdn.net/UUj45ydUmCH3eBk3uXqukY.jpg" mos="" align="middle" fullscreen="" width="4348" height="3023" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Years ago, LG was among the first TV-makers to outfit its TVs with a full slate of HDMI 2.1 inputs. This aggressive approach to supplemental features has carried all the way into 2026, where the company narrowly leads TCL and Samsung when it comes to gaming- and streaming-related enhancements.</p><p>Although Samsung’s top-shelf TVs are jam-packed with extras, there are plenty of people shopping in this higher price tier expecting the full package. Without Dolby Vision support, LG’s top TVs are the most feature-complete.</p><div><blockquote><p>LG’s top TVs are the most feature-complete.</p></blockquote></div><p>Sony is the last of these brands to embrace full HDMI 2.1 support. Fortunately, that seems to be the new standard for the brand as the company looks to leverage newer chipsets in 2026 and beyond.</p><p>This year, Hisense and TCL are similar in how they approach feature availability across their respective lineups, but for the last couple of years, Hisense has traded a fourth HDMI input for a USB-C DisplayPort on its higher-end models — a move that might disappoint home theater enthusiasts looking to plug in every single one of their HDMI-equipped devices.</p><p>Being the brand most concerned with affordability above all else, it’s no surprise that Vizio is the brand least concerned with premium features.</p><p><strong>Winner: </strong>LG </p><h2 id="performance">Performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4348px;"><p class="vanilla-image-block" style="padding-top:69.53%;"><img id="p8hPGyPqCUWk2qTeAH5vmY" name="TV Brand Report Card_Final_PERFORMANCE" alt="The Tom's Guide 2026 Report Cards" src="https://cdn.mos.cms.futurecdn.net/p8hPGyPqCUWk2qTeAH5vmY.jpg" mos="" align="middle" fullscreen="" width="4348" height="3023" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Although TCL and Hisense make exceptional TVs, LG, Samsung and Sony are the brands to consider if you’re looking for top-tier, best-in-the-business performance.</p><p>Of the six brands we graded, LG, Samsung and Sony are the only three that make OLED TVs. Despite the rapid ascension of RGB LED technology, OLED remains the best all-around option (provided you don’t need super-high full-field brightness to overcome a sun-soaked room). And, of the graded brands releasing RGB LED TVs in 2026, Samsung and Sony have impressed me the most with the Samsung R95H and Sony Bravia 9 II.</p><p>These brands also deliver better picture processing than Hisense, TCL and Vizio. On the whole, Sony TVs feature better processing than any other brand, but LG and Samsung aren’t far behind.</p><div><blockquote><p>On the whole, Sony TVs feature better processing than any other brand.</p></blockquote></div><p>At the mid-range and entry level, ranking the brands’ performance isn’t as cut and dry. Hisense and TCL have fortified their position as the best bang-for-your-buck brands in these price tiers because they typically offer brighter pictures with better contrast control. In many cases, you could spend the same amount of money on an entry-level or mid-range LED TV from LG, Samsung or Sony and walk away with a less-impressive picture.</p><p>Vizio is… Well, <em>Vizio. </em>The Walmart-owned brand doesn’t make high-end flagships anymore, and the rest of its TVs are affordably made models engineered primarily to generate ad revenue by way of its web-based software. There’s nothing wrong with buying a Vizio TV as long as you’re shopping for affordability instead of sheer picture prowess.</p><p><strong>Winner: </strong>Sony</p><h2 id="smart-tv-platform">Smart TV platform</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4348px;"><p class="vanilla-image-block" style="padding-top:69.53%;"><img id="PGm7KsvsEjgrWCiwaizKnY" name="TV Brand Report Card_Final_SMART TV PLAT" alt="The Tom's Guide 2026 Report Cards" src="https://cdn.mos.cms.futurecdn.net/PGm7KsvsEjgrWCiwaizKnY.jpg" mos="" align="middle" fullscreen="" width="4348" height="3023" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Hisense, TCL and Sony offer the smoothest streaming experiences thanks to their built-in Google TV smart platform. It’s my second-favorite choice behind the Roku operating system on account of its relatively straightforward interface and vast library of downloadable apps.</p><p>LG and Samsung fall to a lower tier, primarily because their respective software suites aren’t as easy to navigate. Both LG’s webOS and Samsung’s Smart Hub also come with a unique set of annoyances, like unnecessary AI features and auto-playing content.</p><div><blockquote><p>Hisense, TCL and Sony offer the smoothest streaming experiences thanks to their built-in Google TV smart platform.</p></blockquote></div><p>Vizio is to be avoided if you’re hoping to avoid buying an external streaming device, as its proprietary software lags behind the five other brands. The interface is inundated with more ads than its competitors (including auto-playing commercials) and its app selection is limited.</p><p><strong>Winner: </strong>Hisense, TCL and Sony</p><h2 id="overall-brand-grades">Overall Brand Grades</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4348px;"><p class="vanilla-image-block" style="padding-top:69.53%;"><img id="bRS2YKg2xGTVmrfoo88fnY" name="TV Brand Report Card_Final_OVERALL GRADES" alt="The Tom's Guide 2026 Report Cards" src="https://cdn.mos.cms.futurecdn.net/bRS2YKg2xGTVmrfoo88fnY.jpg" mos="" align="middle" fullscreen="" width="4348" height="3023" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>So, you’re shopping for a TV this year and you want to put all of this information to proper use. Allow me to simplify things.</p><p>If you’re looking to splash out on a top-performing TV with an emphasis on design and features, LG and Samsung ought to be at the top of your list of options. At the highest price tier, Sony’s TVs offer similarly excellent performance and design, but some of these models don’t offer as many gaming-related features despite their steep cost.</p><p>If you’re looking for a mid-range TV in the <em>Goldilocks Zone </em>between affordability and high performance, consider Hisense and TCL. These two brands are especially suited for mid-range TV-shoppers on the hunt for the brightest possible picture, since Hisense and TCL specialize in budget-friendly Mini-LED TVs that don’t skimp on display hardware. (For what it’s worth, Hisense and TCL flagship models are usually quite good — just not as impressive as flagships from LG, Samsung and Sony.)</p><div><blockquote><p>Next year, we’ll grade all of these brands again. That means there’s plenty of time for them to study up.</p></blockquote></div><p>If you’re looking to spend as little as possible, I strongly recommend shopping for something from Hisense or TCL over anything from Insignia, Pioneer or Onn. I also recommend Hisense and TCL over Vizio, unless you’re comfortable with Vizio’s ad-heavy software experience.</p><p>Next year, we’ll grade all of these brands again. That means there’s plenty of time for them to study up.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ePaJpW"></div>                            </div>                            <script src="https://kwizly.com/embed/ePaJpW.js" async></script> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/we-just-graded-every-tv-brand-on-price-performance-and-more-heres-how-their-report-cards-stack-up</link>
                                                                            <description>
                            <![CDATA[ Shopping for a TV in 2026? We just handed out report cards to Hisense, LG, Samsung, Sony, TCL and Vizio based on their TVs' price, performance and more. Here's how they grade. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">CeD98MzqPVY34FFfpiWURh</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/kCA3oKqmzwMtQEzcP4kKWW-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 31 Jul 2026 06:30:00 +0000</pubDate>                                                                                                                                <updated>Tue, 04 Aug 2026 11:36:41 +0000</updated>
                                                                                                                                            <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/kCA3oKqmzwMtQEzcP4kKWW-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The final TV report card with every TV manufacturer ]]></media:description>                                                            <media:text><![CDATA[The final TV report card with every TV manufacturer ]]></media:text>
                                <media:title type="plain"><![CDATA[The final TV report card with every TV manufacturer ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/kCA3oKqmzwMtQEzcP4kKWW-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>This week, we handed out report cards to the biggest brands in the TV industry: <a href="https://www.tomsguide.com/tvs/hisense-tv-report-card-2026-one-of-the-best-ways-to-maximize-your-dollar">Hisense</a>, <a href="https://www.tomsguide.com/tvs/lg-tvs-are-better-than-theyve-ever-been-heres-what-theyre-doing-right-what-theyre-doing-wrong-and-what-needs-to-change-in-2026">LG</a>, <a href="https://www.tomsguide.com/tvs/samsung-tv-report-card-2026-you-can-rely-on-samsung-to-deliver-exceptional-performance">Samsung</a>, <a href="https://www.tomsguide.com/tvs/theres-no-way-around-it-sony-tvs-are-priced-higher-than-most-of-the-competition-heres-what-sonys-doing-right-what-its-doing-wrong-and-what-needs-to-change-in-2026">Sony</a>, <a href="https://www.tomsguide.com/tvs/tcl-tv-report-card-2026-i-suspect-that-ive-recommended-tcl-tvs-more-than-any-other-brand">TCL</a> and <a href="https://www.tomsguide.com/tvs/vizio-tv-report-card-2026-vizio-is-still-finding-its-footing-post-walmart-acquisition">Vizio</a>.</p><p>The goal was simple: grade each TV-maker on pricing, design, features and performance. We also took a hard look at each of these brands' software.</p><p>Now that these familiar names have received their respective report cards, it's time to meet them in the classroom for a conference about how they're doing this year. If you're shopping for the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TV</a> in 2026, this ought to give you a pretty clear picture about how to spend your money.</p><h2 id="pricing">Pricing</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4348px;"><p class="vanilla-image-block" style="padding-top:69.53%;"><img id="ArhUyWFK2seaATznAtyMmY" name="TV Brand Report Card_Final_PRICING" alt="The Tom's Guide 2026 Report Cards" src="https://cdn.mos.cms.futurecdn.net/ArhUyWFK2seaATznAtyMmY.jpg" mos="" align="middle" fullscreen="" width="4348" height="3023" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Of the six names in the mix, Hisense, TCL and Vizio led the class in the all-important pricing category. If you’ve shopped for a TV lately, this probably won’t come as a surprise.</p><p>Vizio has focused almost entirely on ultra-affordable TVs in recent years. While the rest of the big-name brands tinker with high-end, cutting-edge technologies like RGB LED and QD-OLED, Vizio is focused on more cost-effective hardware.</p><div><blockquote><p>When comparing similarly priced models, Hisense and TCL TVs offer a bit more bang for your buck when it comes to features.</p></blockquote></div><p>Meanwhile, the most-popular entry-level sets in Hisense and TCL’s primary lineups tend to be more affordable than those of LG, Samsung and Sony. In addition, it’s often the case that, when comparing similarly priced models, Hisense and TCL TVs offer a bit more bang for your buck when it comes to features.</p><p><strong>Winner: </strong>Tie (Hisense, TCL and Vizio)</p><h2 id="design">Design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4348px;"><p class="vanilla-image-block" style="padding-top:69.53%;"><img id="2CZtBcUxff3jUmsu9tfrkY" name="TV Brand Report Card_Final_DESIGN" alt="The Tom's Guide 2026 Report Cards" src="https://cdn.mos.cms.futurecdn.net/2CZtBcUxff3jUmsu9tfrkY.jpg" mos="" align="middle" fullscreen="" width="4348" height="3023" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>When it comes to design, Samsung and Sony lead the way. Sony’s top TVs often arrive with multiple stand configurations, and its most recent True RGB TVs feature a unique stand design that effectively hides cables by way of lenticular lensing.</p><p>Samsung consistently innovates at the higher end of its lineup, too, popularizing matte-style screens, external connectivity hubs and, most recently, eye-catching metallic frames. Affordable, entry-level Samsung QLEDs lean into the simplistic nature of their display hardware, often arriving with sleek, slim panels that play the part of a more-premium set.</p><div><blockquote><p>When it comes to design, Samsung and Sony lead the way.</p></blockquote></div><p>LG’s most noteworthy TVs — its OLEDs — are handsomely engineered, too, but the worldwide leader in OLED TVs doesn’t seem too eager to move away from tried and true formulas.</p><p>TCL and Hisense are purveyors of TVs with safe, middle-of-the-road designs that don’t innovate as much as they respond to (and replicate) industry trends. Their higher-end TVs tend to carry their best design characteristics.</p><p><strong>Winner: </strong>Tie (Samsung and Sony)</p><h2 id="features">Features</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4348px;"><p class="vanilla-image-block" style="padding-top:69.53%;"><img id="UUj45ydUmCH3eBk3uXqukY" name="TV Brand Report Card_Final_FEATURES" alt="The Tom's Guide 2026 Report Cards" src="https://cdn.mos.cms.futurecdn.net/UUj45ydUmCH3eBk3uXqukY.jpg" mos="" align="middle" fullscreen="" width="4348" height="3023" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Years ago, LG was among the first TV-makers to outfit its TVs with a full slate of HDMI 2.1 inputs. This aggressive approach to supplemental features has carried all the way into 2026, where the company narrowly leads TCL and Samsung when it comes to gaming- and streaming-related enhancements.</p><p>Although Samsung’s top-shelf TVs are jam-packed with extras, there are plenty of people shopping in this higher price tier expecting the full package. Without Dolby Vision support, LG’s top TVs are the most feature-complete.</p><div><blockquote><p>LG’s top TVs are the most feature-complete.</p></blockquote></div><p>Sony is the last of these brands to embrace full HDMI 2.1 support. Fortunately, that seems to be the new standard for the brand as the company looks to leverage newer chipsets in 2026 and beyond.</p><p>This year, Hisense and TCL are similar in how they approach feature availability across their respective lineups, but for the last couple of years, Hisense has traded a fourth HDMI input for a USB-C DisplayPort on its higher-end models — a move that might disappoint home theater enthusiasts looking to plug in every single one of their HDMI-equipped devices.</p><p>Being the brand most concerned with affordability above all else, it’s no surprise that Vizio is the brand least concerned with premium features.</p><p><strong>Winner: </strong>LG </p><h2 id="performance">Performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4348px;"><p class="vanilla-image-block" style="padding-top:69.53%;"><img id="p8hPGyPqCUWk2qTeAH5vmY" name="TV Brand Report Card_Final_PERFORMANCE" alt="The Tom's Guide 2026 Report Cards" src="https://cdn.mos.cms.futurecdn.net/p8hPGyPqCUWk2qTeAH5vmY.jpg" mos="" align="middle" fullscreen="" width="4348" height="3023" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Although TCL and Hisense make exceptional TVs, LG, Samsung and Sony are the brands to consider if you’re looking for top-tier, best-in-the-business performance.</p><p>Of the six brands we graded, LG, Samsung and Sony are the only three that make OLED TVs. Despite the rapid ascension of RGB LED technology, OLED remains the best all-around option (provided you don’t need super-high full-field brightness to overcome a sun-soaked room). And, of the graded brands releasing RGB LED TVs in 2026, Samsung and Sony have impressed me the most with the Samsung R95H and Sony Bravia 9 II.</p><p>These brands also deliver better picture processing than Hisense, TCL and Vizio. On the whole, Sony TVs feature better processing than any other brand, but LG and Samsung aren’t far behind.</p><div><blockquote><p>On the whole, Sony TVs feature better processing than any other brand.</p></blockquote></div><p>At the mid-range and entry level, ranking the brands’ performance isn’t as cut and dry. Hisense and TCL have fortified their position as the best bang-for-your-buck brands in these price tiers because they typically offer brighter pictures with better contrast control. In many cases, you could spend the same amount of money on an entry-level or mid-range LED TV from LG, Samsung or Sony and walk away with a less-impressive picture.</p><p>Vizio is… Well, <em>Vizio. </em>The Walmart-owned brand doesn’t make high-end flagships anymore, and the rest of its TVs are affordably made models engineered primarily to generate ad revenue by way of its web-based software. There’s nothing wrong with buying a Vizio TV as long as you’re shopping for affordability instead of sheer picture prowess.</p><p><strong>Winner: </strong>Sony</p><h2 id="smart-tv-platform">Smart TV platform</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4348px;"><p class="vanilla-image-block" style="padding-top:69.53%;"><img id="PGm7KsvsEjgrWCiwaizKnY" name="TV Brand Report Card_Final_SMART TV PLAT" alt="The Tom's Guide 2026 Report Cards" src="https://cdn.mos.cms.futurecdn.net/PGm7KsvsEjgrWCiwaizKnY.jpg" mos="" align="middle" fullscreen="" width="4348" height="3023" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Hisense, TCL and Sony offer the smoothest streaming experiences thanks to their built-in Google TV smart platform. It’s my second-favorite choice behind the Roku operating system on account of its relatively straightforward interface and vast library of downloadable apps.</p><p>LG and Samsung fall to a lower tier, primarily because their respective software suites aren’t as easy to navigate. Both LG’s webOS and Samsung’s Smart Hub also come with a unique set of annoyances, like unnecessary AI features and auto-playing content.</p><div><blockquote><p>Hisense, TCL and Sony offer the smoothest streaming experiences thanks to their built-in Google TV smart platform.</p></blockquote></div><p>Vizio is to be avoided if you’re hoping to avoid buying an external streaming device, as its proprietary software lags behind the five other brands. The interface is inundated with more ads than its competitors (including auto-playing commercials) and its app selection is limited.</p><p><strong>Winner: </strong>Hisense, TCL and Sony</p><h2 id="overall-brand-grades">Overall Brand Grades</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4348px;"><p class="vanilla-image-block" style="padding-top:69.53%;"><img id="bRS2YKg2xGTVmrfoo88fnY" name="TV Brand Report Card_Final_OVERALL GRADES" alt="The Tom's Guide 2026 Report Cards" src="https://cdn.mos.cms.futurecdn.net/bRS2YKg2xGTVmrfoo88fnY.jpg" mos="" align="middle" fullscreen="" width="4348" height="3023" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>So, you’re shopping for a TV this year and you want to put all of this information to proper use. Allow me to simplify things.</p><p>If you’re looking to splash out on a top-performing TV with an emphasis on design and features, LG and Samsung ought to be at the top of your list of options. At the highest price tier, Sony’s TVs offer similarly excellent performance and design, but some of these models don’t offer as many gaming-related features despite their steep cost.</p><p>If you’re looking for a mid-range TV in the <em>Goldilocks Zone </em>between affordability and high performance, consider Hisense and TCL. These two brands are especially suited for mid-range TV-shoppers on the hunt for the brightest possible picture, since Hisense and TCL specialize in budget-friendly Mini-LED TVs that don’t skimp on display hardware. (For what it’s worth, Hisense and TCL flagship models are usually quite good — just not as impressive as flagships from LG, Samsung and Sony.)</p><div><blockquote><p>Next year, we’ll grade all of these brands again. That means there’s plenty of time for them to study up.</p></blockquote></div><p>If you’re looking to spend as little as possible, I strongly recommend shopping for something from Hisense or TCL over anything from Insignia, Pioneer or Onn. I also recommend Hisense and TCL over Vizio, unless you’re comfortable with Vizio’s ad-heavy software experience.</p><p>Next year, we’ll grade all of these brands again. That means there’s plenty of time for them to study up.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ePaJpW"></div>                            </div>                            <script src="https://kwizly.com/embed/ePaJpW.js" async></script>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ TCL TV report card 2026: 'I suspect that I've recommended TCL TVs more than any other brand' ]]></title>
                                                                                                <dc:content><![CDATA[ <p>When you buy a TV, you're buying more than just a screen — you're buying into a brand's entire philosophy. For better or worse, over the course of the next several years, that brand will be at the center of your living room.</p><p>As professional TV-reviewers, no one understands the relationship between a viewer and their TV better than us. That's why we're passing out report cards to the biggest names in the TV industry this week, grading everything from price to performance.</p><p>Previously, we doled out report cards to both <a href="https://www.tomsguide.com/tvs/lg-tvs-are-better-than-theyve-ever-been-heres-what-theyre-doing-right-what-theyre-doing-wrong-and-what-needs-to-change-in-2026">LG</a> and <a href="https://www.tomsguide.com/tvs/theres-no-way-around-it-sony-tvs-are-priced-higher-than-most-of-the-competition-heres-what-sonys-doing-right-what-its-doing-wrong-and-what-needs-to-change-in-2026">Sony</a>. Today, we’re taking a look at TCL, makers of some of the most popular QLEDs on the market. In 2026, TCL's proprietary Super Quantum Dot (SQD) technology is up against some fierce competition, too.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4348px;"><p class="vanilla-image-block" style="padding-top:69.53%;"><img id="3soZYBQxHuoiTHyXcekSU9" name="TV Brand Report Card 2026_TCL" alt="TCL's 2006 TV brand report card" src="https://cdn.mos.cms.futurecdn.net/3soZYBQxHuoiTHyXcekSU9.jpg" mos="" align="middle" fullscreen="" width="4348" height="3023" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><h2 id="pricing-2">Pricing</h2><p>In recent years (including 2026), TCL TVs have played the part of value-forward alternatives to pricier analogues from brands like Samsung and Sony. They’re not always budget friendly, but outside of a handful of exceptions, TCL sets are typically priced lower than the competition while still offering many of the same benefits and features.</p><p>On the lower end of the spectrum, TVs like the four-star <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review">TCL QM6K</a> offer a taste of premium hardware for a price most people can justify. Backed by Mini-LEDs, a 65-inch QM6K launched at just $799 and eventually fell even further throughout its shelf life.</p><div><blockquote><p>TCL sets are typically priced lower than the competition while still offering many of the same benefits and features.</p></blockquote></div><p>The Best Buy-exclusive TCL QM5K offers a modest array of Mini-LEDs for even less. The <a href="https://www.bestbuy.com/product/tcl-65-class-qm5k-series-4k-uhd-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZ4/sku/6625874" target="_blank" rel="nofollow">65-inch QM5K is still available for $499</a>.</p><p>You don’t have to stick to entry-level and mid-range models to see the inherent value in most TCL TVs in 2026. The top-shelf <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L</a> — which recently earned our four-star rating — is equipped with the brand’s best display technology, but still comes in at a relatively low price compared to some of its competitors.</p><p>Just a few months (and price drops) after its release, the <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review" target="_blank" rel="nofollow">65-inch TCL QM8L is just $1,499</a>. For all intents and purposes, it’s a direct competitor of the Sony Bravia 9 II True RGB TV and the Samsung R95H Micro RGB TV, but those sets are currently $3,599 and $3,199, respectively.</p><p>TCL is no stranger to the concept of a flashy, big-screen luxury TV. The <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">TCL X11L</a> is a prime example of this. But when it comes to its mainline QLEDs, its TVs are usually more affordable than alternatives from LG, Samsung and Sony — and they tend to go on sale fast and frequently.</p><p><em><strong>Grade: </strong></em><em>A-</em></p><h2 id="design-2">Design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="Eqyiq64cY8a4AZxGx6efEh" name="TCL-75QM8L-TV-16" alt="The foot of a TCL QM8L TV" src="https://cdn.mos.cms.futurecdn.net/Eqyiq64cY8a4AZxGx6efEh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I've been covering TCL TVs for over a decade, and early on, the company wasn't exactly known for the build quality of its TVs. Fortunately, as TCL's lineups upgraded and expanded, so too did its design chops.</p><div><blockquote><p>TCL TVs are neither flimsy nor posh.</p></blockquote></div><p>In 2026, TCL TVs are neither flimsy nor posh. They're on the nicer end of the utilitarian spectrum — they're thoughtful in their approach while safely following a formula. The most eye-catching design flourish you're likely to notice on a TCL TV is something like a Bang & Olufsen-branded sound system.</p><p>If you shop high enough in TCL's lineup, your TV will include one of the most convenient remote controls of 2026. It comes with a built-in backlight for easy use in the dark and runs off a built-in battery that recharges via USB-C. Much appreciated.</p><p><em><strong>Grade: </strong></em><em>B-</em></p><h2 id="features-2">Features</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="KMnNcqcbYvhgtPJGDLNR9c" name="TCL-75QM8L-TV-3" alt="A 75-inch TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/KMnNcqcbYvhgtPJGDLNR9c.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>When it comes to extra features and enhancements, very few TVs come with everything but the kitchen sink. When they do, they're usually pretty pricy.</p><p>What matters more is that a given TV comes with enough features to be worthy of its price. For TCL, this is generally true across the board: Its lower-end and mid-range models may not be covered in bells and whistles, but rarely do I feel like I should be getting more features for a TCL TV's price.</p><div><blockquote><p>Rarely do I feel like I should be getting more features for a TCL TV's price.</p></blockquote></div><p>The brand's primary mid-range model for 2026 is the TCL QM7L (a TV that we're still in the process of evaluating). This set doesn't come with a full slate of HDMI 2.1-compatible inputs like an LG OLED, but you're getting a pair of high-bandwidth ports that each support 4K games at up to 144Hz. That's plenty for most people, and unless you have more than three gaming devices, you won't find yourself shuffling around cables.</p><p>Critically, if you shell out for a top-shelf TCL TV and go with the QM8L or X11L, you won't have to settle for a mid-range setup. These high-end models come with four HDMI 2.1 inputs and nearly every major gaming feature. In addition, mainline TCL TVs support both Dolby Vision and HDR10+.</p><p><em><strong>Grade: </strong></em><em>B+</em></p><h2 id="performance-2">Performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="gha5aFhE8ZDxvQyVjW9X9h" name="TCL-75QM8L-TV-9" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/gha5aFhE8ZDxvQyVjW9X9h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>This year, while the rest of the TV world is showcasing their spin on RGB LED technology, TCL is zagging in a different direction. Three of its TVs are equipped with something called Super Quantum Dot (SQD) color, and based on our test results, these souped-up dots are just as intriguing as RGB LEDs.</p><p>Without getting too deep into the weeds, SQD TVs are engineered to wring a wider range of color out of traditional quantum dots by way of added brightness, improved processing algorithms and a fancy new color filter.</p><p>Thanks to SQD technology, the QM7L, QM8L and X11L are capable of color volume we previously only measured on quantum dot-equipped OLED TVs. These figures are also on par with what we’ve been measuring on RGB LED-based TVs, too.</p><div><blockquote><p>TCL has shown that its competing tech can stand toe-to-toe with the rest.</p></blockquote></div><p>Given the nature of TV technology, it’s tough to do a generic, one-to-one comparison of SQD and RGB LED. How, exactly, brands <em>use</em> these technologies matters the most, and not all are created equal. But in RGB LED’s inaugural year, TCL has shown that its competing tech can stand toe-to-toe with the rest.</p><p>There’s room for improvement here, however. I’ve watched TCL make great strides when it comes to picture processing, but from what I’ve seen throughout the last year, some models still struggle to upscale sub-4K content as cleanly as LG, Samsung and Sony. For picture purists, out-of-the-box accuracy can be disappointing, too, especially compared to rival brands’ flagship models.</p><p>For the average viewer in the market for a good deal on a high-performing TV, though, models like the QM7L and QM8L are a savvy way to secure a bright, colorful picture without paying a premium on RGB LEDs. You can still splash out on a TCL-branded RGB Mini-LED TV if you so choose, but it's clear that SQD technology is the brand's top focus at the moment.</p><p><em><strong>Grade: </strong></em><em>A-</em></p><h2 id="smart-tv-platform-2">Smart TV platform</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="NNA6EZgkqEXcTbrfwkDaCh" name="TCL-75QM8L-TV-13" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/NNA6EZgkqEXcTbrfwkDaCh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>In 2026, TCL TVs are built around the Google TV smart platform. Despite its bevy of sponsored and recommended content, Google TV remains one of my top picks for everyday streaming, second only to Roku.</p><p>Here's the thing: There are elements of the Google TV experience that annoy me, but as a TV-reviewer, I'm acutely aware of how much more annoying the alternatives can be. Samsung's Tizen-based OS and LG webOS are far more frustrating to use on a daily basis (to say nothing of Vizio's dreadful in-house software).</p><div><blockquote><p>Despite its bevy of sponsored and recommended content, Google TV remains one of my top picks for everyday streaming.</p></blockquote></div><p>By and large, the Google TV navigational experience is straightforward and hassle-free. It moves along at a steady pace, and this is true even for some of the brand's lower-end models.</p><p><em><strong>Grade: </strong></em><em>B+</em></p><h2 id="overall-grade-b">Overall grade: B+</h2><p>Similar to Hisense, TCL has gone from being a brand known primarily for affordability to one recognized for value. Affordability and value often go hand in hand, but in this case, I can plot a clear shift from <em>TCL, a brand that makes cheap TVs </em>to <em>TCL, a brand that makes really good TVs for less than the price of most of its competitors.</em></p><p>I have no way of knowing for sure, but over the last year, I'm willing to bet that I've recommended TCL TVs more than any other brand — at least when it comes to budget-friendly options. The brand often demonstrates the highest amount of upside relative to cost, so it's well-liked by folks who want to spend less while still buying an impressive-looking picture.</p><p>I've yet to see a TCL TV whose picture looks as good as, say, Samsung's <a href="https://www.tomsguide.com/tvs/oled-tvs/best-oled-tvs">best OLED TV</a> in 2026. But if you can get the QM8L — one of TCL's best SQD TVs — for half the price, that's a pretty friendly proposition, don't you think?</p><p>Want something even cheaper than the QM8L? We're still working through our full review of it, but the QM7L is brighter and more colorful than most TVs in its mid-range class. As mentioned, it comes with nearly every feature a dedicated gamer could ask for, and its streaming software is better than what you'll get on a comparably priced LG or Samsung set.</p><div data-widget-type="multimodelreview" data-widget-title="Today's best 2026 TCL TV deals" data-model-name="TCL 75QM8L SQD-Mini LED,TCL QM7K Mini-LED TV,TCL QM8K QLED 4K TV,TCL X11L 4K SQD Mini LED TV"></div><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ePaJpW"></div>                            </div>                            <script src="https://kwizly.com/embed/ePaJpW.js" async></script> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/tcl-tv-report-card-2026-i-suspect-that-ive-recommended-tcl-tvs-more-than-any-other-brand</link>
                                                                            <description>
                            <![CDATA[ We're handing our report cards for every major TV brand on the price, performance and software of its TVs. Here's how TCL's QLEDs and SQD TVs grade. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">HxcxXtQVTBJymSJJregVnL</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/EfwYGznCGc2kwPw54sCJXZ-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 28 Jul 2026 07:00:00 +0000</pubDate>                                                                                                                                <updated>Thu, 30 Jul 2026 14:18:19 +0000</updated>
                                                                                                                                            <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/EfwYGznCGc2kwPw54sCJXZ-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The TCL QM8L displaying a city skyline alongside a badge that reads: &quot;Tom&#039;s Guide TV Brand Report Card&quot;]]></media:description>                                                            <media:text><![CDATA[The TCL QM8L displaying a city skyline alongside a badge that reads: &quot;Tom&#039;s Guide TV Brand Report Card&quot;]]></media:text>
                                <media:title type="plain"><![CDATA[The TCL QM8L displaying a city skyline alongside a badge that reads: &quot;Tom&#039;s Guide TV Brand Report Card&quot;]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/EfwYGznCGc2kwPw54sCJXZ-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>When you buy a TV, you're buying more than just a screen — you're buying into a brand's entire philosophy. For better or worse, over the course of the next several years, that brand will be at the center of your living room.</p><p>As professional TV-reviewers, no one understands the relationship between a viewer and their TV better than us. That's why we're passing out report cards to the biggest names in the TV industry this week, grading everything from price to performance.</p><p>Previously, we doled out report cards to both <a href="https://www.tomsguide.com/tvs/lg-tvs-are-better-than-theyve-ever-been-heres-what-theyre-doing-right-what-theyre-doing-wrong-and-what-needs-to-change-in-2026">LG</a> and <a href="https://www.tomsguide.com/tvs/theres-no-way-around-it-sony-tvs-are-priced-higher-than-most-of-the-competition-heres-what-sonys-doing-right-what-its-doing-wrong-and-what-needs-to-change-in-2026">Sony</a>. Today, we’re taking a look at TCL, makers of some of the most popular QLEDs on the market. In 2026, TCL's proprietary Super Quantum Dot (SQD) technology is up against some fierce competition, too.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4348px;"><p class="vanilla-image-block" style="padding-top:69.53%;"><img id="3soZYBQxHuoiTHyXcekSU9" name="TV Brand Report Card 2026_TCL" alt="TCL's 2006 TV brand report card" src="https://cdn.mos.cms.futurecdn.net/3soZYBQxHuoiTHyXcekSU9.jpg" mos="" align="middle" fullscreen="" width="4348" height="3023" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><h2 id="pricing-2">Pricing</h2><p>In recent years (including 2026), TCL TVs have played the part of value-forward alternatives to pricier analogues from brands like Samsung and Sony. They’re not always budget friendly, but outside of a handful of exceptions, TCL sets are typically priced lower than the competition while still offering many of the same benefits and features.</p><p>On the lower end of the spectrum, TVs like the four-star <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review">TCL QM6K</a> offer a taste of premium hardware for a price most people can justify. Backed by Mini-LEDs, a 65-inch QM6K launched at just $799 and eventually fell even further throughout its shelf life.</p><div><blockquote><p>TCL sets are typically priced lower than the competition while still offering many of the same benefits and features.</p></blockquote></div><p>The Best Buy-exclusive TCL QM5K offers a modest array of Mini-LEDs for even less. The <a href="https://www.bestbuy.com/product/tcl-65-class-qm5k-series-4k-uhd-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZ4/sku/6625874" target="_blank" rel="nofollow">65-inch QM5K is still available for $499</a>.</p><p>You don’t have to stick to entry-level and mid-range models to see the inherent value in most TCL TVs in 2026. The top-shelf <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L</a> — which recently earned our four-star rating — is equipped with the brand’s best display technology, but still comes in at a relatively low price compared to some of its competitors.</p><p>Just a few months (and price drops) after its release, the <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review" target="_blank" rel="nofollow">65-inch TCL QM8L is just $1,499</a>. For all intents and purposes, it’s a direct competitor of the Sony Bravia 9 II True RGB TV and the Samsung R95H Micro RGB TV, but those sets are currently $3,599 and $3,199, respectively.</p><p>TCL is no stranger to the concept of a flashy, big-screen luxury TV. The <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">TCL X11L</a> is a prime example of this. But when it comes to its mainline QLEDs, its TVs are usually more affordable than alternatives from LG, Samsung and Sony — and they tend to go on sale fast and frequently.</p><p><em><strong>Grade: </strong></em><em>A-</em></p><h2 id="design-2">Design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="Eqyiq64cY8a4AZxGx6efEh" name="TCL-75QM8L-TV-16" alt="The foot of a TCL QM8L TV" src="https://cdn.mos.cms.futurecdn.net/Eqyiq64cY8a4AZxGx6efEh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I've been covering TCL TVs for over a decade, and early on, the company wasn't exactly known for the build quality of its TVs. Fortunately, as TCL's lineups upgraded and expanded, so too did its design chops.</p><div><blockquote><p>TCL TVs are neither flimsy nor posh.</p></blockquote></div><p>In 2026, TCL TVs are neither flimsy nor posh. They're on the nicer end of the utilitarian spectrum — they're thoughtful in their approach while safely following a formula. The most eye-catching design flourish you're likely to notice on a TCL TV is something like a Bang & Olufsen-branded sound system.</p><p>If you shop high enough in TCL's lineup, your TV will include one of the most convenient remote controls of 2026. It comes with a built-in backlight for easy use in the dark and runs off a built-in battery that recharges via USB-C. Much appreciated.</p><p><em><strong>Grade: </strong></em><em>B-</em></p><h2 id="features-2">Features</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="KMnNcqcbYvhgtPJGDLNR9c" name="TCL-75QM8L-TV-3" alt="A 75-inch TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/KMnNcqcbYvhgtPJGDLNR9c.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>When it comes to extra features and enhancements, very few TVs come with everything but the kitchen sink. When they do, they're usually pretty pricy.</p><p>What matters more is that a given TV comes with enough features to be worthy of its price. For TCL, this is generally true across the board: Its lower-end and mid-range models may not be covered in bells and whistles, but rarely do I feel like I should be getting more features for a TCL TV's price.</p><div><blockquote><p>Rarely do I feel like I should be getting more features for a TCL TV's price.</p></blockquote></div><p>The brand's primary mid-range model for 2026 is the TCL QM7L (a TV that we're still in the process of evaluating). This set doesn't come with a full slate of HDMI 2.1-compatible inputs like an LG OLED, but you're getting a pair of high-bandwidth ports that each support 4K games at up to 144Hz. That's plenty for most people, and unless you have more than three gaming devices, you won't find yourself shuffling around cables.</p><p>Critically, if you shell out for a top-shelf TCL TV and go with the QM8L or X11L, you won't have to settle for a mid-range setup. These high-end models come with four HDMI 2.1 inputs and nearly every major gaming feature. In addition, mainline TCL TVs support both Dolby Vision and HDR10+.</p><p><em><strong>Grade: </strong></em><em>B+</em></p><h2 id="performance-2">Performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="gha5aFhE8ZDxvQyVjW9X9h" name="TCL-75QM8L-TV-9" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/gha5aFhE8ZDxvQyVjW9X9h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>This year, while the rest of the TV world is showcasing their spin on RGB LED technology, TCL is zagging in a different direction. Three of its TVs are equipped with something called Super Quantum Dot (SQD) color, and based on our test results, these souped-up dots are just as intriguing as RGB LEDs.</p><p>Without getting too deep into the weeds, SQD TVs are engineered to wring a wider range of color out of traditional quantum dots by way of added brightness, improved processing algorithms and a fancy new color filter.</p><p>Thanks to SQD technology, the QM7L, QM8L and X11L are capable of color volume we previously only measured on quantum dot-equipped OLED TVs. These figures are also on par with what we’ve been measuring on RGB LED-based TVs, too.</p><div><blockquote><p>TCL has shown that its competing tech can stand toe-to-toe with the rest.</p></blockquote></div><p>Given the nature of TV technology, it’s tough to do a generic, one-to-one comparison of SQD and RGB LED. How, exactly, brands <em>use</em> these technologies matters the most, and not all are created equal. But in RGB LED’s inaugural year, TCL has shown that its competing tech can stand toe-to-toe with the rest.</p><p>There’s room for improvement here, however. I’ve watched TCL make great strides when it comes to picture processing, but from what I’ve seen throughout the last year, some models still struggle to upscale sub-4K content as cleanly as LG, Samsung and Sony. For picture purists, out-of-the-box accuracy can be disappointing, too, especially compared to rival brands’ flagship models.</p><p>For the average viewer in the market for a good deal on a high-performing TV, though, models like the QM7L and QM8L are a savvy way to secure a bright, colorful picture without paying a premium on RGB LEDs. You can still splash out on a TCL-branded RGB Mini-LED TV if you so choose, but it's clear that SQD technology is the brand's top focus at the moment.</p><p><em><strong>Grade: </strong></em><em>A-</em></p><h2 id="smart-tv-platform-2">Smart TV platform</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="NNA6EZgkqEXcTbrfwkDaCh" name="TCL-75QM8L-TV-13" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/NNA6EZgkqEXcTbrfwkDaCh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>In 2026, TCL TVs are built around the Google TV smart platform. Despite its bevy of sponsored and recommended content, Google TV remains one of my top picks for everyday streaming, second only to Roku.</p><p>Here's the thing: There are elements of the Google TV experience that annoy me, but as a TV-reviewer, I'm acutely aware of how much more annoying the alternatives can be. Samsung's Tizen-based OS and LG webOS are far more frustrating to use on a daily basis (to say nothing of Vizio's dreadful in-house software).</p><div><blockquote><p>Despite its bevy of sponsored and recommended content, Google TV remains one of my top picks for everyday streaming.</p></blockquote></div><p>By and large, the Google TV navigational experience is straightforward and hassle-free. It moves along at a steady pace, and this is true even for some of the brand's lower-end models.</p><p><em><strong>Grade: </strong></em><em>B+</em></p><h2 id="overall-grade-b">Overall grade: B+</h2><p>Similar to Hisense, TCL has gone from being a brand known primarily for affordability to one recognized for value. Affordability and value often go hand in hand, but in this case, I can plot a clear shift from <em>TCL, a brand that makes cheap TVs </em>to <em>TCL, a brand that makes really good TVs for less than the price of most of its competitors.</em></p><p>I have no way of knowing for sure, but over the last year, I'm willing to bet that I've recommended TCL TVs more than any other brand — at least when it comes to budget-friendly options. The brand often demonstrates the highest amount of upside relative to cost, so it's well-liked by folks who want to spend less while still buying an impressive-looking picture.</p><p>I've yet to see a TCL TV whose picture looks as good as, say, Samsung's <a href="https://www.tomsguide.com/tvs/oled-tvs/best-oled-tvs">best OLED TV</a> in 2026. But if you can get the QM8L — one of TCL's best SQD TVs — for half the price, that's a pretty friendly proposition, don't you think?</p><p>Want something even cheaper than the QM8L? We're still working through our full review of it, but the QM7L is brighter and more colorful than most TVs in its mid-range class. As mentioned, it comes with nearly every feature a dedicated gamer could ask for, and its streaming software is better than what you'll get on a comparably priced LG or Samsung set.</p><div data-widget-type="multimodelreview" data-widget-title="Today's best 2026 TCL TV deals" data-model-name="TCL 75QM8L SQD-Mini LED,TCL QM7K Mini-LED TV,TCL QM8K QLED 4K TV,TCL X11L 4K SQD Mini LED TV"></div><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ePaJpW"></div>                            </div>                            <script src="https://kwizly.com/embed/ePaJpW.js" async></script>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I love this massive 14-inch tablet with a paper-like display — and it’s $100 off right now ]]></title>
                                                                                                <dc:content><![CDATA[ <p>As smartphones have gotten bigger and bigger, you might find yourself wondering if you even need a tablet anymore. With a standard 10-inch tablet, you’re not really getting that much more screen real estate, but that couldn’t be further from the truth with the <a href="https://www.tomsguide.com/computing/android-tablets/i-thought-smaller-was-better-until-i-tried-a-massive-14-inch-tablet-that-feels-like-a-clipboard">TCL NXTPAPER 14</a>.</p><p>It sports a massive 14.3-inch display, and when turned sideways to watch a movie or a TV show, the device feels more like a portable monitor than a tablet. Then in portrait mode, I really felt like I was holding a clipboard in my hand in the best kind of way.</p><p>What really sets the TCL NXTPAPER 14 apart from the <a href="https://www.tomsguide.com/best-picks/best-ipad">best iPads</a> and other tablets though is its display. With the push of a button on the side, you can switch between three viewing modes: Regular Mode, Color Paper Mode and Ink Paper Mode.</p><div class="product"><a data-dimension112="f1d5710b-c91d-4f39-8cb8-a2e8af8170c7" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$369" href="https://www.amazon.com/dp/B0H1BHF57W?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1479px;"><p class="vanilla-image-block" style="padding-top:78.23%;"><img id="RieyhMD4q8Qys2uDrwLwWP" name="NXTPAPER 14" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/RieyhMD4q8Qys2uDrwLwWP.jpg" mos="" align="middle" fullscreen="" width="1479" height="1157" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0H1BHF57W?th=1" target="_blank" rel="nofollow" data-dimension112="f1d5710b-c91d-4f39-8cb8-a2e8af8170c7" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$369">NXTPAPER 14: was $469 now $369</a></strong><br>This tablet comes equipped with a massive 14.3-inch, 2.4k display that gives you plenty of screen space for both reading and drawing. It comes equipped with TCL’s NXTPAPER 3.0 tech but I found it works just as well as the newer version for the most part. You get 256GB of storage, 8GB of RAM and the best part, an equally massive 10,000 mAh battery which also features fast and reverse charging. It too comes with a stylus and a case included.<a class="view-deal button" href="https://www.amazon.com/dp/B0H1BHF57W?th=1" target="_blank" rel="nofollow" data-dimension112="f1d5710b-c91d-4f39-8cb8-a2e8af8170c7" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$369">View Deal</a></p></div><p>With Ink Paper Mode enabled, the NXTPAPER 14 transforms from a standard Android tablet into a black and white slate that offers a reading experience on par with one of the <a href="https://www.tomsguide.com/us/best-e-readers,review-2766.html">best Kindles</a> but supersized. Doing so also helps save battery life, but with a 10,000 mAh battery under the hood, finding a charger isn’t something you’re going to have to worry about all that often.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4caKnqvmwpxm2BsxmTsFtZ" name="TCL NXTPAPER 14--2" alt="The TCL NXTPAPER 14 in its case open on a desk" src="https://cdn.mos.cms.futurecdn.net/4caKnqvmwpxm2BsxmTsFtZ.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Having tried both the NXTPAPER 14 and the smaller yet more powerful <a href="https://www.tomsguide.com/computing/tablets/i-tried-the-tcl-nxtpaper-11-plus-and-this-budget-tablet-is-easily-my-ipad-killer-heres-why">NXTPAPER 11 Plus</a>, one thing I really like about TCL’s unique tablets is that they come with a case and a stylus right in the box. You don’t get a screen protector, but I wouldn’t use one with a NXTPAPER device anyways since their matte displays feel great under your fingertips. The stylus recharges via USB-C and attaches to the included case magnetically so you don’t have to worry about misplacing it. </p><h2 id="not-the-only-nxtpaper">Not the only NXTPAPER</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8ub6waqHVABVdMPSrbbDhZ" name="TCL NXTPAPER 11 Plus-4" alt="The TCL NXTPAPER 50 XE, the TCL NXTPAPER 11 Plus and the TCL NXTPAPER 14 side by side on a desk with each device showing a different display mode of TCL's NXTPAPER tech" src="https://cdn.mos.cms.futurecdn.net/8ub6waqHVABVdMPSrbbDhZ.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If you haven’t figured it out by now, this super-sized tablet is part of TCL’s wider NXTPAPER ecosystem. Sure, there are other NXTPAPER tablets, but there are also smartphones that come equipped with this same display tech to make reading a lot easier on your eyes. At the same time, you also won’t have to worry about glare when you’re outside since their matte screens aren’t reflective at all.</p><p>If the NXTPAPER 14 is a bit too big for your hands — or your use case — don’t worry, as you can still find plenty of great deals on the rest of TCL’s NXTPAPER devices right now.</p><h3 class="article-body__section" id="section-quick-links"><span>Quick Links</span></h3><ul><li><strong>TCL NXTPAPER 11 Gen 2: </strong><a href="https://www.amazon.com/gp/aw/d/B0H2HFT4KP" target="_blank" rel="nofollow"><strong>was $249 now $179 @ Amazon</strong></a><strong></strong></li><li><strong>TCL NXTPAPER 60 XE: </strong><a href="https://www.amazon.com/gp/aw/d/B0H2HM8MY5" target="_blank" rel="nofollow"><strong>was $284 now $229 @ Amazon</strong></a><strong></strong></li><li><strong>TCL NXTPAPER 11 Plus: </strong><a href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow"><strong>was $369 now $259 @ Amazon</strong></a><strong></strong></li><li><strong>TCL NXTPAPER 70 Pro: </strong><a href="https://www.amazon.com/TCL-NXTPAPER-Android-Unlocked-Storage/dp/B0GY3MJH6T?th=1" target="_blank" rel="nofollow"><strong>was $329 now $299 @ Amazon</strong></a><strong></strong></li><li><strong>TCL NXTPAPER 14: </strong><a href="https://www.amazon.com/gp/aw/d/B0FLP554CZ" target="_blank" rel="nofollow"><strong>was $469 now $369 @ Amazon</strong></a><strong></strong></li><li><strong>TCL Note A1: </strong><a href="https://www.amazon.com/TCL-NXTPAPER-Notebook-Paper-Like-Creativity/dp/B0H5K8NBZS" target="_blank" rel="nofollow"><strong>was $599 now $549 @ Amazon</strong></a></li></ul><h3 class="article-body__section" id="section-nxtpaper-tablet-and-phone-deals"><span>NXTPAPER tablet and phone deals</span></h3><div class="product"><a data-dimension112="220b5af4-6eaa-4770-a274-98a782b060c3" data-action="Deal Block" data-label="NXTPAPER 11 Gen 2" data-dimension48="NXTPAPER 11 Gen 2" data-dimension25="$179" href="https://www.amazon.com/gp/aw/d/B0H2HFT4KP" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1417px;"><p class="vanilla-image-block" style="padding-top:83.63%;"><img id="suZwzwtqgKWXxsHid5XdRM" name="NXTPAPER 11 Gen 2" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/suZwzwtqgKWXxsHid5XdRM.jpg" mos="" align="middle" fullscreen="" width="1417" height="1185" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/gp/aw/d/B0H2HFT4KP" target="_blank" rel="nofollow" data-dimension112="220b5af4-6eaa-4770-a274-98a782b060c3" data-action="Deal Block" data-label="NXTPAPER 11 Gen 2" data-dimension48="NXTPAPER 11 Gen 2" data-dimension25="$179">NXTPAPER 11 Gen 2: was $249 now $179</a></strong><br>This 11-inch tablet comes with 6GB of RAM, 64GB of storage, an 8,000 mAh battery and runs Android 15. It features TCL’s NXTPAPER 4.0 tech so you can switch from full color to color paper or black and white. You also get a stylus with over 4,000 pressure levels which is great for drawing and note taking. Likewise, you don’t have to worry about picking up a case as one comes in the box. You can even expand its storage further with a microSD card.<a class="view-deal button" href="https://www.amazon.com/gp/aw/d/B0H2HFT4KP" target="_blank" rel="nofollow" data-dimension112="220b5af4-6eaa-4770-a274-98a782b060c3" data-action="Deal Block" data-label="NXTPAPER 11 Gen 2" data-dimension48="NXTPAPER 11 Gen 2" data-dimension25="$179">View Deal</a></p></div><div class="product"><a data-dimension112="5aaf7136-3341-45d7-9747-17efe09240a8" data-action="Deal Block" data-label="NXTPAPER 60 XE (256GB)" data-dimension48="NXTPAPER 60 XE (256GB)" data-dimension25="$229" href="https://www.amazon.com/gp/aw/d/B0H2HM8MY5" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1072px;"><p class="vanilla-image-block" style="padding-top:139.93%;"><img id="F89B7Cm9aCaJumnYJUUCtQ" name="NXTPAPER 60 XE (256GB)" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/F89B7Cm9aCaJumnYJUUCtQ.jpg" mos="" align="middle" fullscreen="" width="1072" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/gp/aw/d/B0H2HM8MY5" target="_blank" rel="nofollow" data-dimension112="5aaf7136-3341-45d7-9747-17efe09240a8" data-action="Deal Block" data-label="NXTPAPER 60 XE (256GB)" data-dimension48="NXTPAPER 60 XE (256GB)" data-dimension25="$229">NXTPAPER 60 XE (256GB): was $284 now $229</a></strong><br>This 6.8-inch budget smartphone is available with either 128GB or 256GB of storage. It features a 120 Hz refresh rate with TCL’s NXTPAPER tech built in and a 5,010 mAh battery. While it doesn’t have wireless charging, you do get 18W fast charging along with 8GB of RAM.<a class="view-deal button" href="https://www.amazon.com/gp/aw/d/B0H2HM8MY5" target="_blank" rel="nofollow" data-dimension112="5aaf7136-3341-45d7-9747-17efe09240a8" data-action="Deal Block" data-label="NXTPAPER 60 XE (256GB)" data-dimension48="NXTPAPER 60 XE (256GB)" data-dimension25="$229">View Deal</a></p></div><div class="product"><a data-dimension112="76c61ac5-71db-4b1b-b8cc-eee223e7bb8f" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$259" href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1376px;"><p class="vanilla-image-block" style="padding-top:86.70%;"><img id="2rmQkEzhXCeVzcYeLEFNn9" name="NXTPAPER 11 Plus" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/2rmQkEzhXCeVzcYeLEFNn9.jpg" mos="" align="middle" fullscreen="" width="1376" height="1193" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow" data-dimension112="76c61ac5-71db-4b1b-b8cc-eee223e7bb8f" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$259">NXTPAPER 11 Plus: was $369 now $259</a></strong><br>This 11-inch tablet feels snappier thanks to its upgraded processor, 120 Hz display and 8GB of RAM. It comes with 256GB of storage and an 8,000 mAh battery which you can quickly recharge thanks to 33W fast charging. You also get a stylus and case in the box too. If you have the budget, I’d recommend spending a bit more on this tablet over the NXTPAPER 11 Gen 2 for a smoother overall experience.<a class="view-deal button" href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow" data-dimension112="76c61ac5-71db-4b1b-b8cc-eee223e7bb8f" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$259">View Deal</a></p></div><div class="product"><a data-dimension112="0a957cd6-a887-453e-9bd0-e4fbccfaa060" data-action="Deal Block" data-label="NXTPAPER 70 Pro" data-dimension48="NXTPAPER 70 Pro" data-dimension25="$299" href="https://www.amazon.com/TCL-NXTPAPER-Android-Unlocked-Storage/dp/B0GY3MJH6T?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:911px;"><p class="vanilla-image-block" style="padding-top:164.65%;"><img id="tEgz5smm36XbYoMrGR8Jab" name="NXTPAPER 70 Pro" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/tEgz5smm36XbYoMrGR8Jab.jpg" mos="" align="middle" fullscreen="" width="911" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>This upgraded smartphone is available with 128GB, 256GB or 512GB of storage, though you can add more via its microSD card slot. It has a slightly larger 6.9-inch display, faster Wi-Fi 6E connectivity and comes with TCL’s NXTPAPER 4.0- tech. The NXTPAPER 70 Pro also has faster 33W fast charging and while you don’t get a charger in the box, it does come with a case.<a class="view-deal button" href="https://www.amazon.com/TCL-NXTPAPER-Android-Unlocked-Storage/dp/B0GY3MJH6T?th=1" target="_blank" rel="nofollow" data-dimension112="0a957cd6-a887-453e-9bd0-e4fbccfaa060" data-action="Deal Block" data-label="NXTPAPER 70 Pro" data-dimension48="NXTPAPER 70 Pro" data-dimension25="$299">View Deal</a></p></div><div class="product"><a data-dimension112="fd32677c-e6c5-4459-aa38-bba7157b29de" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$369" href="https://www.amazon.com/dp/B0H1BHF57W?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1479px;"><p class="vanilla-image-block" style="padding-top:78.23%;"><img id="RieyhMD4q8Qys2uDrwLwWP" name="NXTPAPER 14" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/RieyhMD4q8Qys2uDrwLwWP.jpg" mos="" align="middle" fullscreen="" width="1479" height="1157" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0H1BHF57W?th=1" target="_blank" rel="nofollow" data-dimension112="fd32677c-e6c5-4459-aa38-bba7157b29de" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$369">NXTPAPER 14: was $469 now $369</a></strong><br>This tablet comes equipped with a massive 14.3-inch, 2.4k display that gives you plenty of screen space for both reading and drawing. It comes equipped with TCL’s NXTPAPER 3.0 tech but I found it works just as well as the newer version for the most part. You get 256GB of storage, 8GB of RAM and the best part, an equally massive 10,000 mAh battery which also features fast and reverse charging. It too comes with a stylus and a case included.<a class="view-deal button" href="https://www.amazon.com/dp/B0H1BHF57W?th=1" target="_blank" rel="nofollow" data-dimension112="fd32677c-e6c5-4459-aa38-bba7157b29de" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$369">View Deal</a></p></div><div class="product"><a data-dimension112="2de1db10-636d-46e0-9850-b3f6b66c8f3e" data-action="Deal Block" data-label="Note A1" data-dimension48="Note A1" data-dimension25="$549" href="https://www.amazon.com/TCL-NXTPAPER-Notebook-Paper-Like-Creativity/dp/B0H5K8NBZS" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:71.80%;"><img id="jfCsVsX5bNYT4AHmsneJQc" name="Note A1" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/jfCsVsX5bNYT4AHmsneJQc.jpg" mos="" align="middle" fullscreen="" width="1500" height="1077" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/TCL-NXTPAPER-Notebook-Paper-Like-Creativity/dp/B0H5K8NBZS" target="_blank" rel="nofollow" data-dimension112="2de1db10-636d-46e0-9850-b3f6b66c8f3e" data-action="Deal Block" data-label="Note A1" data-dimension48="Note A1" data-dimension25="$549">Note A1: was $599 now $549</a></strong><br>This productivity-focused device is a bit different than the rest as it’s more like a digital notebook than a traditional tablet. It features an 11.5-inch, 2.2K display with a 120 Hz refresh rate. Given it’s made for drawing and taking notes, you get TCL’s T-Pen Pro with 8,192 pressure sensitivity as opposed to the standard styluses you get with the rest of its NXTPAPER tablets. To keep all your notes and ideas organized, it comes pre-loaded with AI apps which can turn your scribbling into clean, editable text. <a class="view-deal button" href="https://www.amazon.com/TCL-NXTPAPER-Notebook-Paper-Like-Creativity/dp/B0H5K8NBZS" target="_blank" rel="nofollow" data-dimension112="2de1db10-636d-46e0-9850-b3f6b66c8f3e" data-action="Deal Block" data-label="Note A1" data-dimension48="Note A1" data-dimension25="$549">View Deal</a></p></div><div class="vizualizer-embed"><div class="tg-df-widget-host" data-widget-config="?search=tablets&brands=Amazon%2CApple%2CGoogle%2CLenovo%2CSamsung%2CTCL&price=165_&min_discount_ratio=0.95&sort=best_match&retailer=Amazon&widget_title=Top+Deals+Handpicked+by+Our+Editors&widget_subtitle=Discover+the+best+discounts+currently+available%2C+curated+daily+by+the+Tom%27s+Guide+Savings+Squad.&bg_color=transparent" data-vizualizer-embed="true"></div>    <script>    /**     * Tom's Guide Deals Finder - Vanilla JS Encapsulated Engine     */    (function() {      // --- Freyr Analytics Adapter ---      function initAnalytics() {        window.dataLayer = window.dataLayer || [];        window.googletag = window.googletag || {};        window.googletag.cmd = window.googletag.cmd || [];        window.hawk = window.hawk || { analytics: { freyr: [] } };        window.hawk.analytics = window.hawk.analytics || { freyr: [] };        window.hawk.analytics.freyr = window.hawk.analytics.freyr || [];        window.freyr = window.freyr || { cmd: [] };        const scriptSrc = 'https://freyr.futurecdn.net/freyr.js';        const hostname = typeof window !== 'undefined' ? window.location.hostname : '';        const isTestEnv = typeof window.navigator !== 'undefined' && (window.navigator.webdriver || window.navigator.userAgent.includes('Headless'));        const shouldSendRealAnalytics = !isTestEnv && hostname && hostname !== 'localhost' && hostname !== '127.0.0.1' && !hostname.includes('run.app');        if (shouldSendRealAnalytics && !document.querySelector(`script[src="${scriptSrc}"]`)) {          const script = document.createElement('script');          script.src = scriptSrc;          script.async = true;          document.head.appendChild(script);        }      }      function storeEventForDebug(name, data) {        if (!window.hawk || !window.hawk.analytics || !window.hawk.analytics.freyr) return;        window.hawk.analytics.freyr.push({ name, data });        try {          if (typeof window !== 'undefined' && window.localStorage) {            window.localStorage.setItem("hawk", JSON.stringify(window.hawk));          }        } catch (e) {          // Ignore storage issues        }        try {          window.dispatchEvent(new CustomEvent("hawk-analytics-update"));        } catch (e) {}      }      function sendToFreyr(eventName, data) {        if (typeof window === 'undefined') return;        window.freyr = window.freyr || { cmd: [] };        window.freyr.cmd.push(() => {          if (window.freyr && window.freyr.pushAndUpdate) {            window.freyr.pushAndUpdate(eventName, data);          }        });      }      function sendEvent(event, skip = false) {        try {          storeEventForDebug(event.name, event.data);          if (!skip) {            sendToFreyr(event.name, event.data);          }        } catch (e) {          // Ensure tracking errors don't surface to the user        }      }      function getCookie(name) {        try {          const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));          return match ? match[2] : null;        } catch (e) {          return null;        }      }      function normalizeCurrency(symbol) {        const map = {          '£': 'GBP',          '$': 'USD',          'A$': 'AUD',          'CA$': 'CAD',          '€': 'EUR'        };        return map[symbol] || symbol;      }      function trackElementInteraction(props) {        sendEvent({          name: 'elementInteraction',          data: {            element: {              action: props.action || "click",              id: props.id || undefined,              class: props.class || undefined,              name: props.name || undefined,              text: props.text || undefined,              label: props.label || undefined,              container: props.container || undefined,              url: props.url || undefined,              articleId: props.articleId || undefined            }          }        });      }      function generateRevenueId(url, productName, merchantName, modelId) {        const str = `${window.location.href}|${productName}|${merchantName}|${modelId || ''}|${new Date().toDateString()}|tomsguide`;        let hash = 0;        for (let i = 0; i < str.length; i++) {          const char = str.charCodeAt(i);          hash = ((hash << 5) - hash) + char;          hash = hash & hash;        }        let numericStr = Math.abs(hash).toString();        while (numericStr.length < 19) {          numericStr += Math.floor(Math.random() * 10).toString();        }        return numericStr.substring(0, 19);      }      function rewriteAffiliateLink(url, territory, revenueId) {        if (!url) return url;        const t = (territory || 'gb').toLowerCase();        return url.replace(/hawk-custom-tracking/g, `tomsguide-${t}-${revenueId}`);      }      function trackHawkEvent(params) {        const { clickType, widgetId, productCategoryName, product, productsArray, zeroBasedProductIndexOrNull, totalDealsOrProducts, areaClicked, merchant, revenueId, isoCurrencyCode, queryName, widgetTypeName } = params;        const data = {          event: "hawkEvent",          category: "Affiliates",          affiliate: {            action: {              type: clickType,              id: widgetId,              event: clickType === "appeared" ? "viewed" : "Click from",              timestamp: Date.now()            },            component: {              flag: "Editor",              product: productCategoryName || "deals",              category: `Signal Deal Finder ${widgetTypeName || "Carousel"} widget`,              type: clickType === "appeared" ? "review" : "signal product",              label: queryName || (product ? (product.name || "") : ""),              index: zeroBasedProductIndexOrNull === null || zeroBasedProductIndexOrNull === undefined ? -1 : zeroBasedProductIndexOrNull,              linkCount: totalDealsOrProducts || 0,              blockLayout: "",              areaClicked: areaClicked || ""            }          },          products: productsArray || (product && merchant ? [            {              product: {                primary: {                  id: product.id || product.matchId || null,                  name: product.name,                  type: "deal",                  price: product.price,                  previousPrice: product.previousPrice || null,                  currency: isoCurrencyCode || "USD",                  preorder: false,                  labels: [],                  link: product.link,                  originalLink: product.originalLink || null,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: null,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: product.globalId || null,                  inStock: product.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: isoCurrencyCode || "USD"                }              },              merchant: {                id: merchant.id || null,                name: merchant.name,                url: merchant.url || null,                network: merchant.network || null              },              model: {                id: product.modelId || null,                brand: product.brand || null,                name: product.name,                parent: product.parent || null              }            }          ] : []),          reviews: [],          _clear: true,          "gtm.uniqueEventId": Date.now() % 10000        };        sendEvent({ name: 'hawkEvent', data });      }      function trackDealClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card" });      }      function trackViewSimilarClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card View Similar" });      }      function trackPriceComparisonClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Price Comparison" });      }      function trackReviewClick(params) {        trackHawkEvent({ ...params, clickType: "review", areaClicked: "Signal Product Card Review Link" });      }      function trackShare(params) {        trackHawkEvent({ ...params, clickType: "share", areaClicked: "Signal Product Card Share" });      }      function trackDealsAppeared(widgetId, deals, revenueId, currency, queryName, widgetTypeName) {         if (!deals || deals.length === 0) return;                  const productsArray = deals.slice(0, 50).map((deal) => {            let voucherPct = null;            let rawPrice = parseFloat(deal.rawPrice) || parseFloat(deal.price) || null;            let rawMsrp = parseFloat(deal.rawMsrp) || parseFloat(deal.msrp) || null;            if (rawMsrp > rawPrice && rawPrice > 0) {              voucherPct = Math.round((1 - (rawPrice / rawMsrp)) * 100);            }            let numId = null;            if (deal.externalProductId && !isNaN(parseInt(deal.externalProductId))) {              numId = parseInt(deal.externalProductId);            } else if (deal.id && !isNaN(parseInt(deal.id))) {              numId = parseInt(deal.id);            } else {              numId = deal.matchId || null;            }            return {              product: {                primary: {                  id: numId,                  name: deal.productName || deal.title || "",                  type: "deal",                  price: rawPrice,                  previousPrice: rawMsrp,                  currency: currency || 'USD',                  preorder: false,                  labels: deal.modelBrand || deal.brand ? [                     { type: "brand", value: deal.modelBrand || deal.brand }                  ] : [],                  link: deal.url,                  originalLink: deal.url,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: voucherPct,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: deal.productKey || null,                  inStock: deal.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: currency || 'USD'                }              },              merchant: {                id: deal.merchantId ? parseInt(deal.merchantId) : null,                name: deal.merchant || "Retailer",                url: deal.merchantUrl || null,                network: deal.merchantNetwork || null              },              model: {                id: deal.modelId ? parseInt(deal.modelId) : null,                brand: deal.modelBrand || deal.brand || null,                name: deal.productName || deal.title || "",                parent: deal.modelParent || null              }            };         });                  trackHawkEvent({             clickType: "appeared",             widgetId: widgetId,             productCategoryName: "deals",             zeroBasedProductIndexOrNull: null,             totalDealsOrProducts: deals.length,             productsArray: productsArray,             queryName: queryName,             widgetTypeName: widgetTypeName         });      }      // 1. Setup Shadow DOM Sandbox      const currentScript = document.currentScript;      let hostContainer = null;      let template = null;            if (currentScript) {        let prev = currentScript.previousElementSibling;        while (prev) {          if (prev.tagName === 'TEMPLATE' && prev.classList.contains('tg-df-widget-template')) {            template = prev;          } else if (prev.tagName === 'DIV' && prev.classList.contains('tg-df-widget-host') && !prev.hasAttribute('data-initialized')) {            hostContainer = prev;            break;          }          prev = prev.previousElementSibling;        }      }            // Fallbacks in case script is deferred      if (!hostContainer) {        const hosts = document.querySelectorAll('.tg-df-widget-host:not([data-initialized])');        if (hosts.length > 0) hostContainer = hosts[0];      }            // Safely embedded template for CMS environments      const rawTemplate = `  \x3Cstyle>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with \`tg-df-\` to prevent CMS style leakage.    */    .tg-df-container {      container-type: inline-size;      container-name: tg-df;      --tg-df-blue: #1F69FF;      --tg-df-blue-hover: #004d8c;      --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: #1F69FF;    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters {      display: flex;      gap: 12px;      justify-content: center;      flex-wrap: wrap;    }    .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-price-input::-webkit-outer-spin-button,    .tg-df-price-input::-webkit-inner-spin-button {      -webkit-appearance: none;      margin: 0;    }    .tg-df-price-input {      -moz-appearance: textfield;    }    .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: 100%;      max-width: 200px;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges {      display: flex;      flex-wrap: wrap;      gap: 6px;      margin-bottom: 8px;    }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);      display: -webkit-box;      -webkit-line-clamp: 2;      -webkit-box-orient: vertical;      overflow: hidden;    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: 100%;      box-sizing: border-box;      background-color: #1f69ff;      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      background-color: #1555cc;    }    .tg-df-container .tg-df-card-cta.tg-df-cta-savings-squad {      background-color: #3c8d0d;    }    .tg-df-card:hover .tg-df-card-cta.tg-df-cta-savings-squad,    .tg-df-card-cta.tg-df-cta-savings-squad:hover {      background-color: #2b6509;    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 0;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-controls {        padding: 0 16px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }            .tg-df-filters {        width: calc(100% + 32px);        margin: 0 -16px;        padding: 0 16px 4px 16px;        display: flex;        justify-content: flex-start;        gap: 8px;        flex-wrap: nowrap;        overflow-x: auto;        -webkit-overflow-scrolling: touch;        scrollbar-width: none;      }      .tg-df-filters::after {        content: "";        display: block;        flex: 0 0 8px;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }            .tg-df-sort-wrapper {        flex: 0 0 max(42%, 130px);        min-width: 0;      }      .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 12px;        -webkit-line-clamp: 3;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        -webkit-line-clamp: 3;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 8px 16px;        font-size: 12px;        flex: 0 0 auto;        text-align: center;        white-space: normal;        line-height: 1.2;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }    .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: #1F69FF;          position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }    .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 16px;      text-align: center;      width: 100%;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }    .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;            scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }        .tg-df-container .tg-df-carousel-scroll-left,    .tg-df-container .tg-df-carousel-scroll-right {      position: absolute;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: #ffffff;      border: 1px solid #e2e8f0;      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);      color: #1F69FF;      cursor: pointer;      transition: all 0.2s;      margin-top: -4px;      z-index: 20;    }    .tg-df-container .tg-df-carousel-scroll-left { left: 8px; }    .tg-df-container .tg-df-carousel-scroll-right { right: 8px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left { left: 0px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right { right: 0px; }    .tg-df-carousel-filters-outer { margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }    @container tg-df (max-width: 599px) { .tg-df-carousel-filters-outer { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; } }        .tg-df-container .tg-df-carousel-scroll-left:hover,    .tg-df-container .tg-df-carousel-scroll-right:hover {      background-color: #f8fafc;      border-color: #cbd5e1;    }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right {      background-color: rgba(255, 255, 255, 0.4);      border: none;      box-shadow: none;      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right { right: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-right { right: 0; }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left:hover,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right:hover {      background-color: rgba(255, 255, 255, 0.6);      border: none;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-carousel-roundels::after {      content: "";      flex: 0 0 32px;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;      transition: font-weight 0.2s;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-label {      font-weight: 700;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }        .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;      display: inline-flex;      align-items: center;      justify-content: center;      min-height: 36px;      box-sizing: border-box;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn:hover {      background: #1e293b;      color: white;      border-color: #1e293b;    }    .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::after {      content: "";      flex: 0 0 32px;    }    .tg-df-grid-wrapper {      position: relative;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card {      flex: 0 0 auto;      width: 100px;      border-radius: 15px;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      border: 2px solid #1e293b;      background: white;      color: #1e293b;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      font-weight: 600;      font-size: 14px;      cursor: pointer;      padding: 16px;      text-align: center;      transition: all 0.2s;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card:hover {      background: #1e293b;      color: white;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      border-radius: 5px;      padding: 8px 10px;      margin-top: 4px;      background-color: #1F69FF;    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.45);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: block; }      .tg-df-container .hawk-deal-widget-image-container { display: block; float: left; margin: 0 16px 8px 0; width: 120px; max-width: 120px; height: auto; align-items: normal; justify-content: normal; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: block; text-align: left; }      .tg-df-container .hawk-deal-widget-footer { display: block; margin-top: 16px; clear: both; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; max-width: none !important; width: 100% !important; margin: 0 !important; }    }        .tg-df-container .hawk-affiliate-link-deal-button {       align-items: center; background-color: #5aaf0b; box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;     }    .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a9109; text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }  \x3C/style>  \x3C!-- Widget Container --\x3E  \x3Cdiv class="tg-df-container" id="signal-deals-finder-root">    \x3C!-- Editor Floating Bar --\x3E    \x3Cdiv class="tg-df-editor-bar" id="tg-df-editor-bar" style="display:none;">      \x3Cdiv class="tg-df-editor-bar-text" style="display: flex; align-items: center;">        \x3Cspan id="tg-df-selected-count">0\x3C/span>\x26nbsp;Deals Selected        \x3Cbutton class="tg-df-editor-clear-btn" id="tg-df-editor-clear" type="button" style="margin-left: 12px; font-size: 13px; color: #9ca3af; background: none; border: none; cursor: pointer; text-decoration: underline;">Clear All\x3C/button>      \x3C/div>      \x3Cbutton class="tg-df-editor-copy-btn" id="tg-df-editor-copy" type="button">        \x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">\x3C/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">\x3C/path>\x3C/svg>        Copy to CMS      \x3C/button>    \x3C/div>    \x3Cdiv class="tg-df-carousel-host" id="tg-df-carousel-host" style="display: none;">      \x3Cdiv class="tg-df-carousel-eyebrow">DEAL FINDER\x3C/div>      \x3Cdiv class="tg-df-carousel-query-title" id="tg-df-carousel-title-label">Best Deals\x3C/div>            \x3Cdiv class="tg-df-carousel-blue-box">        \x3Cdiv class="tg-df-carousel-bg-circle-1" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-2" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-3" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-box-content">          \x3Cdiv class="tg-df-countdown-wrapper" id="tg-df-countdown-wrapper" style="display:none;">            \x3Cdiv class="tg-df-countdown-title" id="tg-df-countdown-title">Prime Day starts in\x3C/div>            \x3Cdiv class="tg-df-countdown-blocks">              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-days">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">DAYS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-hrs">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">HRS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-min">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">MIN\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-sec">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">SEC\x3C/div>\x3C/div>            \x3C/div>          \x3C/div>          \x3Cdiv class="tg-df-carousel-box-eyebrow">DEAL FINDER\x3C/div>          \x3Cdiv class="tg-df-carousel-box-title">Find Deals Fast\x3C/div>          \x3Cdiv class="tg-df-carousel-box-subtitle">The latest deals from the biggest retailers, all in one place\x3C/div>                    \x3Cdiv class="tg-df-carousel-roundels-wrapper">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-roundels">            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>          \x3C/div>          \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-carousel-filters-outer" style="position: relative;">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-filters-wrap">                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="0">All\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_lightning">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_prime">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-d="10">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 10% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="15">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 15% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="25">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 25% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-pr="under50">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>            Under $50\x3C/button>        \x3C/div>        \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3C/div>    \x3C/div>    \x3C/div>      \x3C!-- Search & Filter Controls --\x3E    \x3Cdiv class="tg-df-controls" id="tg-df-controls" style="display:flex;">      \x3Cdiv class="tg-df-top-bar">        \x3Cdiv class="tg-df-search-wrapper">          \x3Cinput type="text" class="tg-df-search-input" placeholder="Search for deals, products, or brands...">          \x3Cbutton type="button" class="tg-df-search-btn" aria-label="Search">              \x3Csvg class="tg-df-search-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">                \x3Cpath d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>              \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-autocomplete-dropdown" id="tg-df-autocomplete">\x3C/div>        \x3C/div>                \x3Cdiv class="tg-df-settings-wrapper">          \x3Cbutton type="button" class="tg-df-settings-btn" aria-label="Settings" id="tg-df-settings-toggle">            \x3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20">                \x3Cpath d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.73 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .43-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.49-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>            \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-settings-dropdown-backdrop" id="tg-df-settings-backdrop">\x3C/div>          \x3Cdiv class="tg-df-settings-dropdown" id="tg-df-settings-panel">            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Search Region\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-region-select">                \x3Coption value="auto">🌍 Auto-detect\x3C/option>                \x3Coption value="US">🇺🇸 United States (US)\x3C/option>                \x3Coption value="GB">🇬🇧 United Kingdom (UK)\x3C/option>                \x3Coption value="CA">🇨🇦 Canada (CA)\x3C/option>                \x3Coption value="AU">🇦🇺 Australia (AU)\x3C/option>                \x3Coption value="DE">🇩🇪 Germany (DE)\x3C/option>                \x3Coption value="FR">🇫🇷 France (FR)\x3C/option>                \x3Coption value="IT">🇮🇹 Italy (IT)\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Retailer\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-retailer-select">                \x3Coption value="">All Retailers\x3C/option>                \x3Coption value="Amazon">Amazon\x3C/option>                \x3Coption value="Walmart">Walmart\x3C/option>                \x3Coption value="Best Buy">Best Buy\x3C/option>                \x3Coption value="Target">Target\x3C/option>                \x3Coption value="John Lewis">John Lewis\x3C/option>                \x3Coption value="Currys">Currys\x3C/option>                \x3Coption value="Argos">Argos\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Offer Type\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-offer-type-select">                \x3Coption value="">All Offers\x3C/option>                \x3Coption value="amazon_prime">Amazon Prime\x3C/option>                \x3Coption value="recommended_promo">Recommended Promo\x3C/option>                \x3Coption value="amazon_lightning">Amazon Lightning Deal\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Result Count\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-rows-select">                \x3Coption value="3">3 Items\x3C/option>                \x3Coption value="4">4 Items\x3C/option>                \x3Coption value="6">6 Items\x3C/option>                \x3Coption value="12" selected>12 Items\x3C/option>                \x3Coption value="24">24 Items\x3C/option>                \x3Coption value="48">48 Items\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Deal Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Only show products with active offers or previous prices (was_price)\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-deal-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Editor Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Enable multi-select to copy deals to CMS\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-editor-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">View Mode\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-view-mode-select">                \x3Coption value="auto">Auto Collection\x3C/option>                \x3Coption value="carousel">Carousel\x3C/option>                \x3Coption value="savings_squad">Savings Squad\x3C/option>                \x3Coption value="grid">Grid (Columns)\x3C/option>                \x3Coption value="row">Row (List)\x3C/option>              \x3C/select>            \x3C/div>          \x3C/div>        \x3C/div>      \x3C/div>      \x3Cdiv class="tg-df-filters">        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-category-filter-wrapper" style="display: none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-category-filter" aria-label="Category">            \x3Coption value="all">All Categories\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-multiselect-container" id="tg-df-brand-filter-wrapper" style="display:none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/>          \x3C/svg>          \x3Cdiv class="tg-df-filter-select tg-df-multiselect-trigger" id="tg-df-brand-trigger" tabindex="0">            Any Brand          \x3C/div>          \x3Cdiv class="tg-df-multiselect-dropdown" id="tg-df-brand-dropdown">            \x3C!-- Populated via script --\x3E          \x3C/div>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/>          \x3C/svg>          \x3Cselect class="tg-df-sort-select" aria-label="Sort Deals">            \x3Coption value="date_desc">Newest First\x3C/option>            \x3Coption value="best_match">Sort by: Match\x3C/option>            \x3Coption value="price_asc">Price Low to High\x3C/option>            \x3Coption value="price_desc">Price High to Low\x3C/option>            \x3Coption value="discount_desc">Biggest Discount\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-price-range-wrapper" id="tg-df-custom-price-wrapper" style="display: flex; align-items:center; justify-content:center; padding: 10px 20px; gap: 8px; border: 1px solid var(--tg-df-border); border-radius: 100px; background-color: var(--tg-df-bg);">          \x3Cspan style="font-size:14px; font-weight:500; color:var(--tg-df-text-primary);">Price\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-min" placeholder="Min" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">          \x3Cspan style="color:var(--tg-df-text-muted)">-\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-max" placeholder="Max" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices">            \x3Coption value="all">All Prices\x3C/option>            \x3Coption value="under50">Under $50\x3C/option>            \x3Coption value="50_100">$50 - $100\x3C/option>            \x3Coption value="100_200">$100 - $200\x3C/option>            \x3Coption value="200_500">$200 - $500\x3C/option>            \x3Coption value="over500">Over $500\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount">            \x3Coption value="all">Any discount\x3C/option>            \x3Coption value="5">Min 5%\x3C/option>            \x3Coption value="10">Min 10%\x3C/option>            \x3Coption value="15">Min 15%\x3C/option>            \x3Coption value="20">Min 20%\x3C/option>            \x3Coption value="25">Min 25%\x3C/option>            \x3Coption value="30">Min 30%\x3C/option>            \x3Coption value="40">Min 40%\x3C/option>            \x3Coption value="50">Min 50%\x3C/option>            \x3Coption value="60">Min 60%\x3C/option>            \x3Coption value="70">Min 70%\x3C/option>          \x3C/select>        \x3C/div>      \x3C/div>    \x3C/div>    \x3C!-- Deals Grid Wrapper --\x3E    \x3Cdiv class="tg-df-grid-wrapper tg-df-carousel-cards-wrapper" id="tg-df-grid-wrapper">      \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3Cdiv class="tg-df-grid" id="tg-df-grid">        \x3C!-- Content populated by JavaScript --\x3E      \x3C/div>      \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>    \x3C/div>        \x3C!-- Vouchers Modal --\x3E    \x3Cdiv class="tg-df-modal-backdrop" id="tg-df-vouchers-modal">      \x3Cdiv class="tg-df-modal">        \x3Cdiv class="tg-df-modal-header">          \x3Ch3 class="tg-df-modal-title" id="tg-df-vouchers-title">Available Coupons & Deals\x3C/h3>          \x3Cbutton class="tg-df-modal-close" id="tg-df-vouchers-close">            \x3Csvg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">              \x3Cline x1="18" y1="6" x2="6" y2="18">\x3C/line>              \x3Cline x1="6" y1="6" x2="18" y2="18">\x3C/line>            \x3C/svg>          \x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-modal-body" id="tg-df-vouchers-content">          \x3C!-- Vouchers injected here --\x3E        \x3C/div>      \x3C/div>    \x3C/div>  \x3C/div>`;      if (!template) {        template = document.createElement('template');        template.innerHTML = rawTemplate;      }      let shadowRoot = null;      if (hostContainer && template) {        hostContainer.setAttribute('data-initialized', 'true');        shadowRoot = hostContainer.attachShadow({ mode: 'open' });        shadowRoot.appendChild(template.content.cloneNode(true));      }      class DealsFinderWidget {        constructor(config) {          this.rootNode = config.rootNode || document;          this.hostContainer = config.hostContainer || null;          this.rootId = config.rootId || 'signal-deals-finder-root';          this.root = this.rootNode.querySelector('#' + this.rootId);          if (!this.root) return;          this.widgetId = (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'widget-' + Date.now() + '-' + Math.random().toString(36).slice(2);          this.grid = this.root.querySelector('#tg-df-grid');          this.tagsContainer = this.root.querySelector('#tg-df-tags-container');          this.categoryFilter = this.root.querySelector('#tg-df-category-filter');          this.categoryFilterWrapper = this.root.querySelector('#tg-df-category-filter-wrapper');          this.searchInput = this.root.querySelector('.tg-df-search-input');          this.autocompleteDropdown = this.root.querySelector('#tg-df-autocomplete');          this.sortSelect = this.root.querySelector('.tg-df-sort-select');          this.searchBtn = this.root.querySelector('.tg-df-search-btn');                    this.settingsToggle = this.root.querySelector('#tg-df-settings-toggle');          this.settingsPanel = this.root.querySelector('#tg-df-settings-panel');          this.settingsBackdrop = this.root.querySelector('#tg-df-settings-backdrop');          this.regionSelect = this.root.querySelector('#tg-df-region-select');          this.retailerSelect = this.root.querySelector('#tg-df-retailer-select');          this.offerTypeSelect = this.root.querySelector('#tg-df-offer-type-select');          this.viewModeSelect = this.root.querySelector('#tg-df-view-mode-select');          this.rowsSelect = this.root.querySelector('#tg-df-rows-select');          this.dealModeToggle = this.root.querySelector('#tg-df-deal-mode');          this.editorModeToggle = this.root.querySelector('#tg-df-editor-mode');          this.priceFilter = this.root.querySelector('#tg-df-price-filter');          this.discountFilter = this.root.querySelector('#tg-df-discount-filter');                    this.editorBar = this.root.querySelector('#tg-df-editor-bar');          this.editorSelectedCount = this.root.querySelector('#tg-df-selected-count');          this.editorCopyBtn = this.root.querySelector('#tg-df-editor-copy');          this.editorClearBtn = this.root.querySelector('#tg-df-editor-clear');                    this.apiUrl = 'https://search-api.fie.future.net.uk/widget.php';          this.deals = [];          this.displayLimit = 12;          this.airedaleArticles = null;          this.airedaleTags = [];          this.airedaleTagCounts = {};          this.activeDealTag = null;          this.selectedBrands = [];          this.currentQuery = '';          this.editorMode = this.hostContainer ? this.hostContainer.hasAttribute('data-editor-mode') : false;          this.viewModeOverride = this.hostContainer ? this.hostContainer.getAttribute('data-view-mode') : null;          this.selectedDeals = new Map();                    this.brandFilterWrapper = this.root.querySelector('#tg-df-brand-filter-wrapper');          this.brandTrigger = this.root.querySelector('#tg-df-brand-trigger');          this.brandDropdown = this.root.querySelector('#tg-df-brand-dropdown');                    this.customPriceWrapper = this.root.querySelector('#tg-df-custom-price-wrapper');          this.customPriceMin = this.root.querySelector('#tg-df-custom-price-min');          this.customPriceMax = this.root.querySelector('#tg-df-custom-price-max');          this.legacyPriceWrapper = this.root.querySelector('#tg-df-legacy-price-wrapper');          this.discountFilterWrapper = this.root.querySelector('#tg-df-discount-filter-wrapper');          this.initResizeObserver();          this.init();            if (['carousel', 'carousel-compact', 'auto', 'grid', 'row'].includes(this.getViewMode())) { this.loadCarouselSpreadsheet(); }        }        getViewMode() {          if (this.viewModeOverride && (!this.editorMode || !this.viewModeSelect)) {            return this.viewModeOverride;          }          return (this.viewModeSelect && this.viewModeSelect.value) ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');        }        applyLayoutMode() {          if (!this.grid) return;          const mode = this.getViewMode();          this.grid.classList.remove('layout-row', 'layout-grid', 'tg-df-grid-auto', 'carousel-compact', 'layout-replica-1', 'layout-replica-2');                    const carouselHost = this.root.querySelector('#tg-df-carousel-host');          const controlsDiv = this.root.querySelector('#tg-df-controls');          if (mode === 'carousel' || mode === 'auto' || mode === 'grid' || mode === 'row') {             if (mode === 'carousel') this.grid.classList.add('carousel-compact');             if (carouselHost) carouselHost.style.display = 'block';             if (controlsDiv) controlsDiv.style.display = 'none';             if (this.root.classList.contains('tg-df-container') && mode === 'carousel') {               this.root.classList.add('is-carousel');             } else if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          } else {             if (carouselHost) carouselHost.style.display = 'none';             if (controlsDiv) controlsDiv.style.display = 'flex';             if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          }          if (mode === 'grid') {            this.grid.classList.add('layout-grid');          } else if (mode === 'row') {            this.grid.classList.add('layout-row');          } else if (mode === 'savings_squad') {            this.grid.classList.add('tg-df-grid-auto', 'savings-squad-cards');          } else if (mode !== 'carousel') {            this.grid.classList.add('tg-df-grid-auto');          }                    const settingsWrapper = this.root.querySelector('.tg-df-settings-wrapper');          if (settingsWrapper) {            settingsWrapper.style.display = mode === 'auto' ? 'none' : 'block';          }          if (this.customPriceWrapper) {             this.customPriceWrapper.style.display = mode === 'auto' ? 'flex' : 'none';          }          if (this.legacyPriceWrapper) {             this.legacyPriceWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }          if (this.discountFilterWrapper) {             this.discountFilterWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }        }        initResizeObserver() {          try {            if (window.parent === window) return;          } catch (e) {            // cross origin frame check threw          }          const emitHeight = () => {            try {              const height = document.documentElement.scrollHeight || document.body.scrollHeight;              const msg = { type: 'embed-size', height: height };              if (window.parent && window.parent !== window) {                window.parent.postMessage(msg, '*');                window.parent.postMessage(JSON.stringify({ ...msg, sentinel: 'amp' }), '*');              }            } catch (e) {}          };                    if (window.ResizeObserver) {            try {              const ro = new ResizeObserver(() => emitHeight());              ro.observe(document.body);              if (this.root) ro.observe(this.root);            } catch(e){ console.warn(e); }          }          window.addEventListener('resize', emitHeight);          setTimeout(emitHeight, 300);        }        initCountdown() {          this.cdWrapper = this.root.querySelector('#tg-df-countdown-wrapper');                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          this.showCountdown = params.get('show_countdown') === 'true';          const showHeaderDetails = params.get('show_header_details') !== 'false';          const eyebrow = this.root.querySelector('.tg-df-carousel-box-eyebrow');          const title = this.root.querySelector('.tg-df-carousel-box-title');          const subtitle = this.root.querySelector('.tg-df-carousel-box-subtitle');          if (!showHeaderDetails) {            let containerElement = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (containerElement) containerElement.classList.add('hide-header-details');            if (eyebrow) eyebrow.style.display = 'none';            if (title) title.style.display = 'none';            if (subtitle) subtitle.style.display = 'none';          }          if (!this.cdWrapper) return;          this.cdTitle = this.root.querySelector('#tg-df-countdown-title');          this.cdDays = this.root.querySelector('#tg-df-cd-days');          this.cdHrs = this.root.querySelector('#tg-df-cd-hrs');          this.cdMin = this.root.querySelector('#tg-df-cd-min');          this.cdSec = this.root.querySelector('#tg-df-cd-sec');          this.updateCountdown();          this.cdInterval = setInterval(() => this.updateCountdown(), 1000);        }        updateCountdown() {          if (!this.cdWrapper) return;          if (!this.showCountdown) {            this.cdWrapper.style.display = 'none';            return;          }          const area = this.getAreaCode();          let offset = '-04:00';          if (['DE', 'FR', 'IT', 'ES', 'NL'].includes(area)) {             offset = '+02:00';          } else if (['GB', 'IE', 'UK'].includes(area)) {             offset = '+01:00';          }          const startTime = new Date('2026-06-23T00:00:00' + offset).getTime();          const endTime = new Date('2026-06-26T00:00:00' + offset).getTime();          const now = Date.now();          let targetTime = 0;          if (now < startTime) {             targetTime = startTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day starts in';             this.cdWrapper.style.display = 'flex';          } else if (now < endTime) {             targetTime = endTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day ends in';             this.cdWrapper.style.display = 'flex';          } else {             this.cdWrapper.style.display = 'none';             if (this.cdInterval) clearInterval(this.cdInterval);             return;          }          const diff = Math.max(0, targetTime - now);          const d = Math.floor(diff / (1000 * 60 * 60 * 24));          const h = Math.floor((diff / (1000 * 60 * 60)) % 24);          const m = Math.floor((diff / 1000 / 60) % 60);          const s = Math.floor((diff / 1000) % 60);          if (this.cdDays) this.cdDays.textContent = d;          if (this.cdHrs) this.cdHrs.textContent = h;          if (this.cdMin) this.cdMin.textContent = m;          if (this.cdSec) this.cdSec.textContent = s;        }        init() {          this.initCountdown();          try {            initAnalytics();          } catch (e) {            console.warn('Deals Widget Analytics Error:', e);          }                    this.bindEvents();                    let initialQuery = '';                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          let initialViewMode = params.get('view_mode');          if (!params.has('search') && !params.has('q') && !params.has('query') && initialViewMode !== 'savings_squad') {             initialQuery = 'Everything';             if (this.discountFilter && !params.has('min_discount_ratio')) {               this.discountFilter.value = '5';             }          }          const website = params.get('website') || 'tomsguide';          this.website = website;          if (website === 'techradar') {            const squadHeader = this.root.querySelector('.tg-df-savings-squad-header');            if (squadHeader) {               const pic = squadHeader.querySelector('picture');               if (pic) pic.style.display = 'none';            }            const style = document.createElement('style');            style.innerHTML = `              .tg-df-container .hawk-affiliate-link-deal-button { background-color: #5DAF08 !important; }              .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a8c06 !important; }            `;            this.root.appendChild(style);          }                    if (this.regionSelect) {            this.regionSelect.value = params.get('region') || 'auto';            this.updatePriceDropdownCurrency();          }                    if (this.retailerSelect && params.has('retailer')) {            this.retailerSelect.value = params.get('retailer');          }                    if (params.has('brands')) {            const b = params.get('brands');            if (b) {              this.selectedBrands = b.split(',');            }          }                    if (this.offerTypeSelect && params.has('offer_type')) {            this.offerTypeSelect.value = params.get('offer_type');          }          if (params.has('bg_color')) {            const bg = params.get('bg_color');            if (bg === 'white') {              this.root.style.setProperty('background-color', '#ffffff', 'important');            } else if (bg === 'transparent') {              this.root.style.setProperty('background-color', 'transparent', 'important');            } else if (bg === 'light_blue') {              this.root.style.setProperty('background-color', '#E7F0FF', 'important');            }          } else {             this.root.style.removeProperty('background-color');          }                    if (params.has('view_mode')) {            if (this.viewModeSelect) {              this.viewModeSelect.value = params.get('view_mode');            } else {              this.viewModeOverride = params.get('view_mode');            }          }          if (this.rowsSelect && params.has('rows')) {            this.rowsSelect.value = params.get('rows');          }          if (params.has('price')) {            const priceVal = params.get('price');            if (this.priceFilter) {               // Try assigning it directly to select. If it's not present implicitly ignores               this.priceFilter.value = priceVal;            }            if (priceVal.includes('_')) {               const parts = priceVal.split('_');               if (this.customPriceMin && parts[0]) this.customPriceMin.value = parts[0];               if (this.customPriceMax && parts[1]) this.customPriceMax.value = parts[1];            }          }          if (this.discountFilter && params.has('min_discount_ratio')) {            // Need to convert back from ratio (e.g. 0.8) to select value (e.g. "20")            const ratioStr = params.get('min_discount_ratio');            const ratioFloat = parseFloat(ratioStr);            if (!isNaN(ratioFloat)) {               const percentage = Math.round((1 - ratioFloat) * 100);               this.discountFilter.value = percentage.toString();            }          }          if (this.sortSelect) {            this.sortSelect.value = params.get('sort') || 'discount_desc';          }          if (this.dealModeToggle && params.has('deal_mode')) {            this.dealModeToggle.checked = params.get('deal_mode') === 'true' || params.get('deal_mode') === '1';          }                    // Re-apply layout after params have updated control values          this.applyLayoutMode();                    if (params.get('search')) {            initialQuery = params.get('search');          } else if (params.get('q')) {            initialQuery = params.get('q');          } else if (params.get('query')) {            initialQuery = params.get('query');          }                    this.currentQuery = initialQuery;          if (this.searchInput) {            this.searchInput.value = this.currentQuery;          }                    if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {            this.fetchDeals(this.currentQuery);          } else {            this.render();          }        }        updatePriceDropdownCurrency() {          if (!this.priceFilter || !this.regionSelect) return;          const currencySymbols = {            'US': '$',            'GB': '£',            'CA': '$CA',            'AU': '$AU',            'DE': '€',            'FR': '€',            'IT': '€',          };          const area = this.getAreaCode();          const cur = currencySymbols[area || 'US'] || '$';                    const options = this.priceFilter.options;          for (let i = 0; i < options.length; i++) {            const opt = options[i];            if (opt.value === 'all') {              opt.innerText = 'All Prices';            } else if (opt.value === 'under50') {              opt.innerText = `Under ${cur}50`;            } else if (opt.value === '50_100') {              opt.innerText = `${cur}50 - ${cur}100`;            } else if (opt.value === '100_200') {              opt.innerText = `${cur}100 - ${cur}200`;            } else if (opt.value === '200_500') {              opt.innerText = `${cur}200 - ${cur}500`;            } else if (opt.value === 'over500') {              opt.innerText = `Over ${cur}500`;            }          }        }        populateBrandDropdown(values) {          if (!this.brandDropdown || !this.brandFilterWrapper) return;          this.brandFilterWrapper.style.display = 'flex'; // show the wrapper                    let html = '';          const allChecked = this.selectedBrands.length === 0 ? 'checked' : '';          const _div = '<' + '/div>';          const _span = '<' + '/span>';          html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="" ${allChecked} class="tg-df-brand-chk"> Any Brand${_div}`;                    values.forEach(v => {             if (!v.formatted_value || v.formatted_value === 'Any Brand') return;             const isChecked = this.selectedBrands.includes(v.formatted_value) ? 'checked' : '';             html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="${this.escapeHTML(v.formatted_value)}" ${isChecked} class="tg-df-brand-chk"> ${this.escapeHTML(v.formatted_value)} \x3Cspan style="color:var(--tg-df-text-muted);font-size:12px">(${v.count || 0})${_span}${_div}`;          });                    this.brandDropdown.innerHTML = html;                    // Re-bind listeners          const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');          chks.forEach(chk => {            chk.addEventListener('change', (e) => {              const val = e.target.value;              if (val === '') {                this.selectedBrands = [];              } else {                if (e.target.checked) {                   if (!this.selectedBrands.includes(val)) this.selectedBrands.push(val);                } else {                   this.selectedBrands = this.selectedBrands.filter(b => b !== val);                }              }                            if (this.selectedBrands.length === 0) {                 this.brandTrigger.innerText = 'Any Brand';              } else if (this.selectedBrands.length === 1) {                 this.brandTrigger.innerText = this.selectedBrands[0];              } else {                 this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;              }                            // Only call API if changed from UI interactions              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.updateURLParams();                 this.fetchDeals(this.currentQuery);              }            });          });                    // Update button text on load          if (this.selectedBrands.length === 0) {             this.brandTrigger.innerText = 'Any Brand';          } else if (this.selectedBrands.length === 1) {             this.brandTrigger.innerText = this.selectedBrands[0];          } else {             this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;          }        }        updateURLParams() {          const url = new URL(window.location);          if (this.currentQuery && this.currentQuery !== 'Gaming laptops') {            url.searchParams.set('q', this.currentQuery);          } else {            url.searchParams.delete('q');            url.searchParams.delete('search');            url.searchParams.delete('query');          }                    if (this.regionSelect && this.regionSelect.value !== 'auto') {            url.searchParams.set('region', this.regionSelect.value);          } else {            url.searchParams.delete('region');          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.set('retailer', this.retailerSelect.value);          } else {            url.searchParams.delete('retailer');          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.set('brands', this.selectedBrands.join(','));          } else {            url.searchParams.delete('brands');          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.set('offer_type', this.offerTypeSelect.value);          } else {            url.searchParams.delete('offer_type');          }                    if (this.viewModeSelect && this.viewModeSelect.value !== 'auto') {            url.searchParams.set('view_mode', this.viewModeSelect.value);          } else {            url.searchParams.delete('view_mode');          }                    if (this.rowsSelect && this.rowsSelect.value !== '12') {            url.searchParams.set('rows', this.rowsSelect.value);          } else {            url.searchParams.delete('rows');          }                    const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             url.searchParams.set('price', `${min}_${max}`);          } else if (this.priceFilter && this.priceFilter.value !== 'all') {            url.searchParams.set('price', this.priceFilter.value);          } else {            url.searchParams.delete('price');          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {               const ratio = (100 - v) / 100;               url.searchParams.set('min_discount_ratio', ratio.toString());            }          } else {            url.searchParams.delete('min_discount_ratio');          }                    if (this.sortSelect && this.sortSelect.value !== 'discount_desc') {            url.searchParams.set('sort', this.sortSelect.value);          } else {            url.searchParams.delete('sort');          }                    if (this.dealModeToggle && this.dealModeToggle.checked) {            url.searchParams.set('deal_mode', 'true');          } else {            url.searchParams.delete('deal_mode');          }                    window.history.replaceState({}, '', url);        }        bindEvents() {          const roundels = this.root.querySelectorAll('.tg-df-carousel-cat.original-hardcoded');          roundels.forEach(r => {             r.addEventListener('click', () => {                const q = r.getAttribute('data-query');                const pr = r.getAttribute('data-pr');                if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: q,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = q;                const label = this.root.querySelector('#tg-df-carousel-title-label');                if (label) label.textContent = 'Best ' + q;                if (this.priceFilter) this.priceFilter.value = pr || 'all';                if (this.discountFilter) this.discountFilter.value = '5';                if (this.searchInput) this.searchInput.value = q;                                roundels.forEach(ro => ro.classList.remove('active'));                r.classList.add('active');                this.fetchDeals(this.currentQuery);             });          });          const discBtns = this.root.querySelectorAll('.tg-df-carousel-filter-btn');          discBtns.forEach(b => {             b.addEventListener('click', () => {                const d = b.getAttribute('data-d');                const pr = b.getAttribute('data-pr');                const ot = b.getAttribute('data-ot');                let label = b.innerText ? b.innerText.trim() : '';                let filterType = 'unknown';                let filterVal = 'unknown';                if (d !== null) { filterType = 'discount'; filterVal = d; }                else if (pr !== null) { filterType = 'price'; filterVal = pr; }                else if (ot !== null) { filterType = 'offertype'; filterVal = ot; }                if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-${filterType}-${filterVal}`, name: 'Filter Button', label: label });                                if (d !== null) {                   if (this.discountFilter) this.discountFilter.value = this.discountFilter.value === d ? '0' : d;                } else if (pr !== null) {                   if (this.priceFilter) this.priceFilter.value = this.priceFilter.value === pr ? 'all' : pr;                } else if (ot !== null) {                   if (this.offerTypeSelect) this.offerTypeSelect.value = this.offerTypeSelect.value === ot ? 'all' : ot;                } else {                   if (this.discountFilter) this.discountFilter.value = '0';                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.offerTypeSelect) this.offerTypeSelect.value = 'all';                }                if (d === null && pr === null && ot === null && b.getAttribute("data-type") !== "custom") {                   discBtns.forEach(ro => ro.classList.remove('active'));                   b.classList.add('active');                } else if (b.getAttribute("data-type") !== "custom") {                   // Only operate on hardcoded buttons (those without data-type)                   discBtns.forEach(ro => {                      if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active');                   });                                      let makeActive = true;                   if (d !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-d') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (pr !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-pr') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (ot !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-ot') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   }                                      if (makeActive) b.classList.add('active');                                      // Check if anything is active, if not activate "All"                   let anyActive = false;                   discBtns.forEach(ro => { if (ro.classList.contains('active') && ro.getAttribute('data-type') !== 'custom') anyActive = true; });                   if (!anyActive) {                       discBtns.forEach(ro => { if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.add('active'); });                   }                }                                this.fetchDeals(this.currentQuery);             });          });          if (this.brandTrigger && this.brandDropdown) {            this.brandTrigger.addEventListener('click', () => {              this.brandDropdown.classList.toggle('active');            });            document.addEventListener('click', (e) => {              if (this.brandFilterWrapper && !e.composedPath().includes(this.brandFilterWrapper)) {                this.brandDropdown.classList.remove('active');              }            });          }          let debounceTimer;          if(this.searchInput) {            this.searchInput.addEventListener('input', (e) => {              clearTimeout(debounceTimer);              const query = e.target.value.trim();              this.currentQuery = query;              if (this.getViewMode() === 'savings_squad' && this.autocompleteDropdown && this.airedaleTags && query.length > 0) {                 const matches = this.airedaleTags.filter(t => t.toLowerCase().includes(query.toLowerCase()) && t.toLowerCase() !== query.toLowerCase()).slice(0, 5);                 if (matches.length > 0) {                    this.autocompleteDropdown.innerHTML = matches.map(m => `\x3Cdiv class="tg-df-autocomplete-item" data-tag="${this.escapeHTML(m)}">${this.escapeHTML(m)}<` + `/div>`).join('');                    this.autocompleteDropdown.classList.add('active');                 } else {                    this.autocompleteDropdown.classList.remove('active');                 }              } else if (this.autocompleteDropdown) {                 this.autocompleteDropdown.classList.remove('active');              }              debounceTimer = setTimeout(() => {                this.updateURLParams();                if (query.length > 2) {                  this.fetchDeals(query);                } else if (query.length === 0) {                  this.deals = [];                  this.render();                }              }, 400);            });            this.searchInput.addEventListener('keypress', (e) => {              if (e.key === 'Enter') {                if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');                clearTimeout(debounceTimer);                const query = e.target.value.trim();                this.currentQuery = query;                this.activeDealTag = null;                trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });                this.updateURLParams();                if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                   this.fetchDeals(query);                }              }            });          }          if (this.autocompleteDropdown) {             this.autocompleteDropdown.addEventListener('click', (e) => {                const item = e.target.closest('.tg-df-autocomplete-item');                if (item) {                   const tag = item.getAttribute('data-tag');                   this.currentQuery = tag;                   if (this.searchInput) this.searchInput.value = tag;                   this.activeDealTag = tag;                   this.autocompleteDropdown.classList.remove('active');                   this.updateURLParams();                   this.fetchDeals(tag);                }             });             document.addEventListener('click', (e) => {               if (this.autocompleteDropdown && this.searchInput && !e.composedPath().includes(this.searchInput) && !e.composedPath().includes(this.autocompleteDropdown)) {                 this.autocompleteDropdown.classList.remove('active');               }             });          }          if (this.searchBtn) {            this.searchBtn.addEventListener('click', () => {              if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');              clearTimeout(debounceTimer);              const query = this.searchInput.value.trim();              trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });              this.activeDealTag = null;              this.currentQuery = query;              this.updateURLParams();              if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.fetchDeals(query);              }            });          }          if(this.sortSelect) this.sortSelect.addEventListener('change', () => {            trackElementInteraction({ id: `sort-option-${this.sortSelect.value}`, name: 'Sort', label: `Sort: ${this.sortSelect.options[this.sortSelect.selectedIndex].text}` });            this.updateURLParams();            if (this.deals.length > 0) {              this.sortData();              this.render();            }          });                    const priceFilter = this.root.querySelector('#tg-df-price-filter');          if (priceFilter) {            this.priceFilter = priceFilter;            this.priceFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-price-${this.priceFilter.value}`, name: 'Price', label: this.priceFilter.options[this.priceFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          const updateCustomPrice = () => {             this.updateURLParams();             if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);             } else {                this.render();             }          };          if (this.customPriceMin) {             this.customPriceMin.addEventListener('change', updateCustomPrice);             this.customPriceMin.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          if (this.customPriceMax) {             this.customPriceMax.addEventListener('change', updateCustomPrice);             this.customPriceMax.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          const discountFilter = this.root.querySelector('#tg-df-discount-filter');          if (discountFilter) {            this.discountFilter = discountFilter;            this.discountFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-discount-${this.discountFilter.value}`, name: 'Discount', label: this.discountFilter.options[this.discountFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          if (this.categoryFilter) {            this.categoryFilter.addEventListener('change', (e) => {               const val = e.target.value === 'all' ? null : e.target.value;               this.activeDealTag = val;               this.fetchSavingsSquad();            });          }                    if (this.settingsToggle) {            this.settingsToggle.addEventListener('click', () => {              const o = this.settingsPanel.classList.toggle('active');              this.settingsBackdrop.classList.toggle('active');              if (o) trackElementInteraction({ id: 'filter-open', name: 'Filters', label: 'Open filters' });            });          }                    if (this.settingsBackdrop) {            this.settingsBackdrop.addEventListener('click', () => {              this.settingsPanel.classList.remove('active');              this.settingsBackdrop.classList.remove('active');            });          }                    if (this.regionSelect) {            this.regionSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-region-${this.regionSelect.value}`, name: 'Region', label: this.regionSelect.options[this.regionSelect.selectedIndex].text });              this.updateURLParams();              this.updatePriceDropdownCurrency();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.retailerSelect) {            this.retailerSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-merchant-${this.retailerSelect.value}`, name: 'Retailer', label: this.retailerSelect.options[this.retailerSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.offerTypeSelect) {            this.offerTypeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-offertype-${this.offerTypeSelect.value}`, name: 'Offer Type', label: this.offerTypeSelect.options[this.offerTypeSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.viewModeSelect) {            this._prevViewMode = this.viewModeSelect.value;            this.viewModeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-viewmode-${this.viewModeSelect.value}`, name: 'View Mode', label: this.viewModeSelect.options[this.viewModeSelect.selectedIndex].text });                            // Reset all active toggles and filters to prevent config carry-over              this.selectedBrands = [];              if (this.brandTrigger) this.brandTrigger.innerText = 'Select Brands';              if (this.brandDropdown) {                const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                chks.forEach(chk => { chk.checked = false; });              }              if (this.priceFilter) this.priceFilter.value = 'all';              if (this.customPriceMin) this.customPriceMin.value = '';              if (this.customPriceMax) this.customPriceMax.value = '';              if (this.sortSelect) this.sortSelect.value = this.viewModeSelect.value === 'savings_squad' ? 'date_desc' : 'discount_desc';              if (this.discountFilter) this.discountFilter.value = '0';              if (this.retailerSelect) this.retailerSelect.value = '';              if (this.offerTypeSelect) this.offerTypeSelect.value = '';              if (this.rowsSelect) this.rowsSelect.value = '12';              if (this.categoryFilter) this.categoryFilter.value = 'all';              this.activeDealTag = null;              this.updateURLParams();              this.applyLayoutMode();                            if (this.getViewMode() === 'savings_squad' || this._prevViewMode === 'savings_squad') {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }              this._prevViewMode = this.viewModeSelect.value;            });          }                    if (this.rowsSelect) {            this.rowsSelect.addEventListener('change', () => {              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.dealModeToggle) {            this.dealModeToggle.addEventListener('change', () => {              this.updateURLParams();              this.render();            });          }          if (this.editorModeToggle) {             this.editorModeToggle.addEventListener('change', (e) => {                this.editorMode = e.target.checked;                this.render();                this.updateFloatingCopyBar();             });          }          if (this.editorCopyBtn) {             this.editorCopyBtn.addEventListener('click', () => {                this.copySelectedDealsToCMS();             });          }          if (this.editorClearBtn) {             this.editorClearBtn.addEventListener('click', () => {                this.selectedDeals.clear();                this.render();                this.updateFloatingCopyBar();             });          }          if (this.grid) {            this.grid.addEventListener('change', (e) => {               if (e.target.classList.contains('tg-df-deal-checkbox')) {                  const dealId = e.target.getAttribute('data-id');                  if (e.target.checked) {                     const dealObj = this.deals.find(d => d.id === dealId);                     if (dealObj) this.selectedDeals.set(dealId, dealObj);                  } else {                     this.selectedDeals.delete(dealId);                  }                  this.updateFloatingCopyBar();               }            });            this.grid.addEventListener('click', (e) => {              const dealCard = e.target.closest('[data-action="deal-click"]');              const similarCard = e.target.closest('[data-action="view-similar-click"]');              const cardLink = dealCard || similarCard;              if (cardLink) {                const productName = cardLink.getAttribute('data-product-name');                const merchantName = cardLink.getAttribute('data-merchant-name');                const productId = cardLink.getAttribute('data-analytics-id');                const price = parseFloat(cardLink.getAttribute('data-price')) || null;                const prevPriceStr = cardLink.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = cardLink.getAttribute('data-original-link');                const rewrittenLink = cardLink.getAttribute('href');                const revenueId = cardLink.getAttribute('data-revenue-id');                const index = parseInt(cardLink.getAttribute('data-index'), 10) || 0;                const inStock = cardLink.getAttribute('data-in-stock') === 'true';                const totalText = cardLink.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: cardLink.getAttribute('data-model-id') || null,                    matchId: cardLink.getAttribute('data-match-id') || null,                    brand: cardLink.getAttribute('data-model-brand') || null,                    parent: cardLink.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: cardLink.getAttribute('data-merchant-id') || null,                    network: cardLink.getAttribute('data-merchant-network') || null,                    url: cardLink.getAttribute('data-merchant-url') || null,                    name: merchantName                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: normalizeCurrency(this.escapeHTML(cardLink.getAttribute('data-currency') || '$'))                };                if (dealCard) {                  trackDealClick(trackingParams);                } else {                  trackViewSimilarClick(trackingParams);                }              }              const couponsBtn = e.target.closest('[data-action="coupons-click"]');              if (couponsBtn) {                trackElementInteraction({                  id: 'product-card-show-coupons',                  name: 'Coupons',                  label: `Product card coupons: ${couponsBtn.getAttribute('data-merchant')}`                });              }            });          }          this.setupScrollListeners();        }        setupScrollListeners() {          const containers = [             this.root.querySelector('.tg-df-carousel-roundels'),             this.root.querySelector('.tg-df-carousel-filters-wrap'),             this.root.querySelector('#tg-df-grid')          ];                    containers.forEach(container => {             if (!container) return;                          const checkScroll = () => {                if (!container.parentElement) return;                const leftBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-left');                const rightBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-right');                                if (leftBtn) {                   if (container.scrollLeft <= 5) leftBtn.style.display = 'none';                   else leftBtn.style.display = 'flex';                }                                if (rightBtn) {                   if (container.scrollWidth <= container.clientWidth) {                       rightBtn.style.display = 'none';                   } else if (container.scrollLeft >= container.scrollWidth - container.clientWidth - 5) {                       rightBtn.style.display = 'none';                   } else {                       rightBtn.style.display = 'flex';                   }                }             };                          container.addEventListener('scroll', checkScroll);             checkScroll();                          window.addEventListener('resize', checkScroll);                          const observer = new MutationObserver(checkScroll);             observer.observe(container, { childList: true, subtree: true, characterData: false });          });        }        get widgetTypeName() {          const mode = this.viewModeSelect ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');          switch(mode) {              case 'carousel': return 'Carousel';              case 'savings_squad': return 'Savings Squad';              case 'grid': return 'Grid';              case 'row': return 'Row';              default: return 'Auto Collection';          }        }        getAreaCode() {          if (this.regionSelect && this.regionSelect.value) {            if (this.regionSelect.value === 'auto') return null;            return this.regionSelect.value;          }          let area = null;          try {            const locale = window.navigator.language || window.navigator.userLanguage;            if (locale && locale.includes('-')) {              area = locale.split('-')[1].toUpperCase();            } else if (locale && locale.length === 2) {              if (locale.toUpperCase() === 'EN') { area = 'US'; }              else { area = locale.toUpperCase(); }            }          } catch (e) { /* Ignore */ }                    // Map to known valid options or fallback to US          const valid = ['US', 'GB', 'CA', 'AU', 'DE', 'FR', 'IT'];          if (area === 'UK') area = 'GB';          if (valid.includes(area)) {             return area;          }          return 'US';        }                async loadCarouselSpreadsheet() {          try {              const parseCSVRow = (str) => {                  let result = [], cur = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (inQuotes) {                          if (char === '"') {                              if (str[i + 1] === '"') { cur += '"'; i++; }                              else { inQuotes = false; }                          } else { cur += char; }                      } else {                          if (char === '"') { inQuotes = true; }                          else if (char === ',') { result.push(cur); cur = ''; }                          else { cur += char; }                      }                  }                  result.push(cur); return result;              };              const parseCSV = (str) => {                  const rows = []; let curRow = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (char === '"') inQuotes = !inQuotes;                      if ((char === '\n' || char === '\r') && !inQuotes) {                          if (char === '\r' && str[i+1] === '\n') i++;                          if (curRow) rows.push(parseCSVRow(curRow));                          curRow = '';                      } else { curRow += char; }                  }                  if (curRow) rows.push(parseCSVRow(curRow));                  return rows;              };              const preloadedCSV = decodeURIComponent(escape(atob("LCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNQ0KUm91bmRlbCB0ZXh0LEFsbCxUVnMsRm9vdHdlYXIsQXBwYXJlbCxNYXR0cmVzZXMsQXBwbGlhbmNlcyxXZWFyYWJsZSB0ZWNoLEhlYWRwaG9uZXMsU21hcnQgSG9tZSxTcGVha2VycyxMYXB0b3BzLFRhYmxldHMsQ29tcHV0aW5nLFBob25lcyxHYW1pbmcsTGVnbw0KUm91bmRlbCBpbWFnZSxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL2FpLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3R2cy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvN2IzYTIyNGIwNzk2M2M2MjdiNmI5MDliZDc4MzM4MzZlMDJmZjgxOS5qcGcud2VicCxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy84NGRhYzVkNDhlZDJkNDQ4NTU5ZWJhNjdhY2U4MzE0Y2M2N2NjZDk0LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vcHJvZHVjdHMvY2Fyb3VzZWwvbWF0dHJlc3Nlcy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvNzY4ZTk3Y2ViMDcxODAxZmFlMjA5MTBkMDgyMGIxNmY3NDdhZjkzOS5qcGcud2VicCxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3dlbGxuZXNzLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL2hlYWRwaG9uZXMuanBnLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzg5NTM1YmVlYmUyMGRiYmQ0YTM0NmQ2ZDZiZGZlOTFkOGE4ODRhMjEuanBnLndlYnAsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9hdWRpby5qcGcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9sYXB0b3BzLmpwZyxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy8yMzk3NTY0ZWQ3YTVmZjk0N2U5YjZiMzBlNTRmNDc0OTRiODQxZjg5LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vcHJvZHVjdHMvY2Fyb3VzZWwvY29tcHV0aW5nLmpwZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3Bob25lcy5wbmcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9nYW1pbmcucG5nLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzRmNmM2MjFjYWMwYmMxYTg1ZDU5M2UzNTk0YmE1YjM0OWVmZmQyOTIuanBnLndlYnANClNlYXJjaCBRdWVyeSxFdmVyeXRoaW5nLFRlbGV2aXNpb25zLCJTbmVha2VycywgcnVubmluZyBzaG9lcywgc2FuZGFscyIsQ2xvdGhpbmcsTWF0dHJlc3NlcyxIb21lIEFwcGxpYW5jZXMsV2VhcmFibGVzICYgRml0bmVzcyBUZWNoLEhlYWRwaG9uZXMsSG9tZSBUZWNoLFNwZWFrZXJzLExhcHRvcHMsVGFibGV0cyxDb21wdXRpbmcsUGhvbmVzLEdhbWluZyxDb25zdHJ1Y3Rpb24gVG95cw0KRGlzY291bnQgQW1vdW50LG1pbiA1JSxtaW4gMTAlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUNClByaWNlIFJhbmdlLCwsLCxtaW4gJDQwMCwsLCxtaW4gJDI1LCxtaW4gJDMwMCwsLG1pbiAkMTAwLCwNCkJyYW5kIFNlbGVjdGlvbiwsLCwsLCwsLCwsLCwsLCwNCkZpbHRlciBidXR0b25zLCwsLCwsLCwsLCwsLCwsLA0KMSxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMNCjIsQW1hem9uIGRlYWxzLFVuZGVyICQxMDAwLDUwJSBvZmYsQWRpZGFzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsNTAlIG9mZixBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscw0KMyxPdmVyICQ0MDAsVW5kZXIgJDUwMCxIb2thLE5pa2UsU2FhdHZhLE5pbmphLDQwJSBvZmYsSkxhYiwsSkJMLERlbGwsLEFzdXMsQXBwbGUsQ29uc29sZXMsU3RhciBXYXJzDQo0LFVuZGVyICQxMDAwLDUwJSBvZmYsU2tlY2hlcnMsVW5kZXIgQXJtb3VyLEhlbGl4LFNoYXJrLEdhcm1pbixBbmtlciBTb3VuZGNvcmUsUmluZyxTb25vcyxBcHBsZSxBcHBsZSxUUC1saW5rLFNhbXN1bmcsQWNjZXNzb3JpZXMsVW5kZXIgJDI1DQo1LFVuZGVyICQ1MDAsTEcsQXNpY3MsQ29sdW1iaWEsRHJlYW1DbG91ZCxLZXVyaWcsQXBwbGUsU29ueSxHb3ZlZSxUcmliaXQsTGVub3ZvLFNhbXN1bmcsRWVybyxHb29nbGUsR2FtZXMsVW5kZXIgJDUwDQo2LDUwJSBvZmYsU2Ftc3VuZyxOaWtlLFBhdGFnb25pYSxOZWN0YXIsRGUnTG9uZ2hpLEFtYXpmaXQsQXBwbGUsS2FzYSBzbWFydCxTb255LEFsaWVud2FyZSxUQ0wsTmV0Z2VhcixNb3Rvcm9sYSxOaW50ZW5kbyxCb3RhbmljYWxzDQo3LEFtYXpvbixIaXNlbnNlLE5ldyBCYWxhbmNlLEFyYyd0ZXJ5eCxUZW1wdXItcGVkaWMsRHlzb24sRml0Yml0LEJlYXRzLFBoaWxpcHMgSHVlLEFua2VyLEFjZXIsT25lUGx1cyxEZWxsLE9uZVBsdXMsU29ueSxEaXNuZXkNCjgsQXBwbGUsVENMLEFkaWRhcyxDYXJoYXJ0dCxCZWFyLEJpc3NlbGwsU2Ftc3VuZyxFYXJmdW4sQmxpbmssQmVhdHMsTVNJLE1pY3Jvc29mdCxBY2VyLE5vdGhpbmcsWGJveCxNYXJ2ZWwNCjksLFNvbnksU2F1Y29ueSxUaGUgTm9ydGggRmFjZSxTaWVuYSxOdXRyaWJ1bGxldCxPdXJhLFNhbXN1bmcsR29vZ2xlIE5lc3QgLE1hcnNoYWxsLFNhbXN1bmcsTGVub3ZvLExlbm92bywsLFBva2Vtb24NCjEwLCxSb2t1LEJpcmtlbnN0b2NrLENSWiBZb2dhLFdpbmtCZWRzLEJsYWNrIGFuZCBEZWNrZXIsUmluZ2Nvbm4sQ01GLEV1ZnksU2Ftc3VuZyxNaWNyb3NvZnQsUmVNYXJrYWJsZSxBbGllbndhcmUsLCwNCjExLCwsQnJvb2tzLFRoZSBHeW0gUGVvcGxlLEJyb29rbHluIGJlZGRpbmcsTmVzcHJlc3NvLCwxTW9yZSxBcmxvLCxSYXplciwsQ29yc2FpciwsLA0KMTIsLCxDcm9jcywsRWlnaHQgU2xlZXAsQ3Vpc2luYXJ0LCxKQkwsLCwsLEhQLCwsDQpOb3RlcywsLCwsLCwsLCwsLCwsLCwNCiwsIlByaW9yaXRpc2UgYmlnZ2VzdCAlLyQgZGlzY291bnQsIFR2cyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiB0aGUgbW9zdCBwb3B1bGFyIGV2ZW4gaWYgdGhleSBhcmUgc3RpbGwgZXhwZW5zaXZlIiwiTm8gcGF0dGVybiB0byBwcmljaW5nL2Rpc2NvdW50LCByZWFkZXJzIG1haW5seSBzaG9wIGJ5IGJyYW5kL3JlY29nbmlzYWJsZSBzaG9lcyIsIk5vIHBhdHRlcm4gdG8gcHJpY2luZy9kaXNjb3VudCwgcmVhZGVycyBtYWlubHkgc2hvcCBieSBicmFuZCIsIkEgbGFiZWwgd2lsbCBkZWZpbml0ZWx5IGhlbHAgaGVyZSBlLmcuIGJlc3QgZm9yIHNpZGUgc2xlZXBlciwgYmVzdCBtZW1vcnkgZm9hbSIsIkFwcGxpYW5jZXMgaXMgYSBiaWcgY2F0ZWdvcnksIGlzIGl0IHBvc3NpYmxlIHRvIHNwbGl0IGludG8ga2l0Y2hlbiBhcHBsaWFuY2VzLCBmbG9vcmNhcmUsIGFpciBoZWFsdGgvY29vbGluZz8gT3Igc2ltaWxhciIsIkZvY3VzIG9uIHZhbHVlIGZvciBtb25leSwgR2FybWlucyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiBwb3B1bGFyIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIHN0aWxsICQ1MDAiLCwsLCxJbmNsdWRlIEtpbmRsZXMsSSB3b3VsZCBpbmNsdWRlIHdpZmkgcm91dGVycyBoZXJlIGluc3RlYWQgb2Ygc21hcnQgaG9tZSxDYW4gd2Ugc3VyZmFjZSBwaG9uZSBwcm92aWRlciBkZWFscz8gVC1tb2JpbGUgYW5kIHZlcml6b24gd291bGQgbWFrZSBhIGxvdCBtb3JlIG1vbmV5IHRoYW4gQW1hem9uLCwNCiwsaGF2aW5nIGEgJ2Jlc3QgZm9yJyBsYWJlbCB3b3VsZCBiZSBoZWxwZnVsIGUuZy4gYmVzdCBmb3IgYnJpZ2h0IHJvb20sQ2FuIHdlIHN0b3Aga2lkcyBzaG9lcyBmcm9tIHB1bGxpbmcgdGhyb3VnaD8sIldpbGwgdGhpcyBpbmNsdWRlIGFjY2Vzc29yaWVzIGUuZy4gY2FwcywgYmFncywgaWYgc28gbWFrZSBzdXJlIHRoZXNlIGFyZSBtaXhlZCB0aHJvdWdob3V0IGNsb3RoaW5nIGRlYWxzIixXaWxsIHRoaXMgaW5jbHVkZSB0b3BwZXJzIGFuZCBwaWxsb3dzPyBTZWVpbmcgbW9yZSBtb21lbnR1bSB3aXRoIHRoaXMgY2F0ZWdvcnkgcmVjZW50bHkgc28gYSBiZWRkaW5nIHRhYiBtaWdodCB3b3JrLCwiTmVlZCB0byBtYWtlIHN1cmUgYmFuZHMsIHNjcmVlbiBwcm90ZWN0b3JzIGV0Yy4gZG9uJ3QgcHVsbCBpbnRvIGhlcmUiLCwsLCwsLCwsDQosLCJQcmlvcml0aXNlIDY1JycgYW5kIDU1JyBpbmNoIFRWcywgdGhlbiBiaWdnZXIgc2NyZWVucyBiZWZvcmUgdGhlIHNtYWxsZXIgc2l6ZXMiLCwsUXVlZW4gaXMgdGhlIG1vc3QgcG9wdWxhciBzaXplIGluIHRoZSBVUyAtIHByaW9yaXRpc2UgZGVhbHMgZm9yIHRoaXMgc2l6ZSwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpDYXRlZ29yaWVzIHRvIGNvbnNpZGVyLCxQcm9kdWN0cyBpbmNsdWRlZCwsLCwsLCwsLCwsLCwsDQpVbmRlciAkNTA/LCxBaXIgdGFncywsLCwsLCwsLCwsLCwsDQosLFBvcnRhYmxlIGNoYXJnZXJzL3dpcmVsZXNzIGNoYXJnZXJzLCwsLCwsLCwsLCwsLCwNCiwsIldhdGVyIGJvdHRsZXMgKHN0YW5sZXlzLCBPd2FsYSwgSHlkcm8gZmxhc2ssIFlldGkpIiwsLCwsLCwsLCwsLCwsDQosLEhhbmQgaGVsZCBmYW5zLCwsLCwsLCwsLCwsLCwNCiwsLCwsLCwsLCwsLCwsLCwNCmhvbWUgb2ZmaWNlLCxvZmZpY2UgY2hhaXJzLCwsLCwsLCwsLCwsLCwNCiwsc3RhbmRpbmcgZGVza3MsLCwsLCwsLCwsLCwsLA0KLCxtb25pdG9ycywsLCwsLCwsLCwsLCwsDQosLEtleWJvYXJkcywsLCwsLCwsLCwsLCwsDQosLGRvY2tpbmcgc3RhdGlvbiwsLCwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpHYW1pbmcsLENvbnNvbGVzLCwsLCwsLCwsLCwsLCwNCiwsQWNjZXNzb3JpZXMsLCwsLCwsLCwsLCwsLA0KLCxHYW1lcywsLCwsLCwsLCwsLCwsDQosLENvdWxkIGluY2x1ZGUgTGVnbz8sLCwsLCwsLCwsLCwsLA==")));              const text = preloadedCSV;              const parsed = parseCSV(text);                            const rowsByName = {};              let filterStart = -1;              parsed.forEach((rc, i) => {                 if (rc && rc.length > 0 && rc[0]) rowsByName[rc[0]] = rc;                 if (rc && rc.length > 0 && rc[0] === 'Filter buttons') filterStart = i;              });                            const cols = [];              if(rowsByName['Roundel text']) {                const headerRow = rowsByName['Roundel text'];                for(let col = 1; col < headerRow.length; col++) {                   let label = headerRow[col];                   if (!label) continue;                                      let q = rowsByName['Search Query'] && rowsByName['Search Query'][col] ? rowsByName['Search Query'][col] : '';                   let img = rowsByName['Roundel image'] && rowsByName['Roundel image'][col] ? rowsByName['Roundel image'][col] : '';                   let ds = rowsByName['Discount Amount'] && rowsByName['Discount Amount'][col] ? rowsByName['Discount Amount'][col] : '';                   let pr = rowsByName['Price Range'] && rowsByName['Price Range'][col] ? rowsByName['Price Range'][col] : '';                   let rt = rowsByName['Retailer'] && rowsByName['Retailer'][col] ? rowsByName['Retailer'][col] : '';                   let ot = rowsByName['Offer Type'] && rowsByName['Offer Type'][col] ? rowsByName['Offer Type'][col] : '';                                      let filters = [];                   if(filterStart > 0) {                     for(let r = filterStart + 1; r < parsed.length; r++) {                         if(!parsed[r] || parsed[r][0] === 'Notes' || parsed[r][0] === 'Categories to consider') break;                         let f = parsed[r][col];                         if(f) filters.push(f);                     }                   }                   cols.push({ label, img, q, ds, pr, rt, ot, filters });                }              }              this.carouselData = cols;              if (this.carouselData && this.carouselData.length > 0) {                 const isMatched = this.carouselData.some(c => c.q === this.currentQuery || c.label === this.currentQuery);                 if (!isMatched) {                    const first = this.carouselData[0];                    this.currentQuery = first.q || first.label;                    if (this.priceFilter) this.priceFilter.value = 'all';                    if (this.customPriceMin) this.customPriceMin.value = '';                    if (this.customPriceMax) this.customPriceMax.value = '';                    let dPr = first.pr || 'all';                    if (typeof dPr === 'string' && dPr !== 'all') {                       let prLower = dPr.toLowerCase();                       if (prLower.includes('min') || prLower.includes('over')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else if (prLower.includes('max') || prLower.includes('under')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       }                    }                    let dAm = '0';                    if(first.ds && typeof first.ds === 'string') {                       let m = first.ds.match(/(\d+)/);                       if(m) dAm = m[1];                    }                    if (this.discountFilter) this.discountFilter.value = dAm;                    if (this.offerTypeSelect) this.offerTypeSelect.value = first.ot || '';                    if (this.retailerSelect) this.retailerSelect.value = first.rt || '';                    this.selectedBrands = [];                    if (this.brandDropdown) {                        const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                        chks.forEach(chk => chk.checked = false);                    }                    if (this.searchInput) this.searchInput.value = this.currentQuery;                 }              }              this.renderCarouselUI();          } catch(e){ console.warn(e); }        }                renderCarouselUI() {           const roundelWrapper = this.root.querySelector('.tg-df-carousel-roundels');           if(!roundelWrapper || !this.carouselData) return;                      let html = '';           this.carouselData.forEach(r => {              const q = r.q || r.label;              const isActive = (this.currentQuery === q || this.currentQuery === r.label) ? 'active' : '';              const imgHtml = r.img ? `\x3Cimg src="${r.img}" alt="${r.label}" />` : `\x3Csvg width="32" height="32" fill="#1F69FF" viewBox="0 0 24 24">\x3Cpath d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\x3C/svg>`;              html += `                \x3Cdiv class="tg-df-roundel tg-df-carousel-cat ${isActive}" data-label="${this.escapeHTML(r.label)}">                  \x3Cdiv class="tg-df-roundel-img-box">${imgHtml}\x3C/div>                  \x3Cspan class="tg-df-roundel-label">${this.escapeHTML(r.label)}\x3C/span>                \x3C/div>              `;           });           roundelWrapper.innerHTML = html;                      // Rebind clicks           const roundels = this.root.querySelectorAll('.tg-df-carousel-cat');           roundels.forEach(rNode => {             rNode.addEventListener('click', () => {                const r = this.carouselData.find(c => c.label === rNode.getAttribute('data-label'));                 if(!r) return;                                  if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: r.label,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = r.q || r.label;                const labelTitle = this.root.querySelector('#tg-df-carousel-title-label');                if (labelTitle) labelTitle.textContent = 'Best ' + this.currentQuery;                if (this.priceFilter) this.priceFilter.value = 'all';                if (this.customPriceMin) this.customPriceMin.value = '';                if (this.customPriceMax) this.customPriceMax.value = '';                let dPr = r.pr || 'all';                if (typeof dPr === 'string' && dPr !== 'all') {                   let prLower = dPr.toLowerCase();                   if (prLower.includes('min') || prLower.includes('over')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMin) this.customPriceMin.value = m[1];                   } else if (prLower.includes('max') || prLower.includes('under')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMax) this.customPriceMax.value = m[1];                   }                }                                let discountAmount = '0';                if(r.ds && typeof r.ds === 'string') {                   let m = r.ds.match(/(\d+)/);                   if(m) discountAmount = m[1];                }                if (this.discountFilter) this.discountFilter.value = discountAmount;                if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                                // Clear brands                    this.selectedBrands = [];                    if (this.brandDropdown) {                    const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                    chks.forEach(chk => chk.checked = false);                }                                if (this.searchInput) this.searchInput.value = this.currentQuery;                                roundels.forEach(ro => ro.classList.remove('active'));                if (rNode) rNode.classList.add('active');                                this.renderCarouselFilters(r);                this.fetchDeals(this.currentQuery);             });           });                      // Auto-highlight active           const activeR = this.carouselData.find(c => c.q === this.currentQuery || c.label === this.currentQuery);           if(activeR) this.renderCarouselFilters(activeR);        }                renderCarouselFilters(r) {           const filtersWrap = this.root.querySelector('.tg-df-carousel-filters-wrap');           if(!filtersWrap) return;                      let html = `\x3Cbutton class="tg-df-carousel-filter-btn" data-type="all">All\x3C/button>`;                      r.filters.forEach(f => {              let fL = f.toLowerCase();              let icon = '';              let logic = `data-type="custom" data-v="${this.escapeHTML(f)}"`;              if (fL === 'amazon deals' || fL === 'prime deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>`;              } else if (fL === 'lightning deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>`;              } else {                 if (fL.includes('lightning')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap">\x3Cpolygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2">\x3C/polygon>\x3C/svg>`;                 } else if (fL.includes('% off')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>`;                 } else if (fL.includes('under') || fL.includes('min ')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>`;                 }                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>${icon} ${this.escapeHTML(f)}\x3C/button>`;              }           });                      filtersWrap.innerHTML = html;                      const btns = filtersWrap.querySelectorAll('button');           btns.forEach(b => {             b.addEventListener('click', () => {                const type = b.getAttribute('data-type');                if (type === 'custom') {                   const v = b.getAttribute('data-v');                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-custom-${(v||'').toLowerCase().replace(/[^a-z0-9]+/g, '-')}`, name: 'Custom Filter', label: v });                }                if (type === 'all') {                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: 'filter-clear-all', name: 'Clear all', label: 'Clear all filters' });                   // reset everything                   btns.forEach(btn => btn.classList.remove('active'));                   b.classList.add('active');                                      // Reset prices                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   if (this.brandDropdown) {                     const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                     chks.forEach(chk => chk.checked = false);                   }                } else {                   const v = b.getAttribute('data-v');                   const fL = v.toLowerCase();                                      let mapRet = ['amazon', 'walmart', 'best buy', 'target', 'john lewis', 'currys', 'argos'];                   const getCategory = (s) => {                      if (s === 'lightning deals' || s === 'amazon deals' || s === 'prime deals') return 'offer';                      if (s.includes('% off')) return 'discount';                      if (s.includes('under') || s.includes('over') || s.includes('min') || s.includes('max')) return 'price';                      if (mapRet.includes(s)) return 'retailer';                      return 'brand';                   };                   const cat = getCategory(fL);                   const wasActive = b.classList.contains('active');                   if (cat !== 'brand') {                      btns.forEach(btn => {                          if (btn === b) return;                          if (btn.getAttribute('data-type') === 'all') return;                          const bV = btn.getAttribute('data-v');                          if (!bV) return;                          if (getCategory(bV.toLowerCase()) === cat) btn.classList.remove('active');                      });                   }                   if (wasActive) b.classList.remove('active');                   else b.classList.add('active');                   let anyActive = Array.from(btns).some(btn => btn !== btns[0] && btn.classList.contains('active'));                   if (!anyActive) {                       btns[0].click();                       return;                   } else {                       btns[0].classList.remove('active');                   }                                      if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   btns.forEach(btn => {                       if (!btn.classList.contains('active') || btn.getAttribute('data-type') === 'all') return;                       const vv = btn.getAttribute('data-v');                       const vl = vv.toLowerCase();                                              if (vl === 'lightning deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_lightning';                       } else if (vl === 'amazon deals' || vl === 'prime deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_prime';                       } else if (vl.includes('% off')) {                          let m = vl.match(/(\d+)%/);                          if (m && this.discountFilter) this.discountFilter.value = m[1];                       } else if (vl.includes('under') || vl.includes('max')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       } else if (vl.includes('min') || vl.includes('over')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else {                          let foundR = mapRet.find(x => x === vl);                          if (foundR) {                             let realR = ['Amazon', 'Walmart', 'Best Buy', 'Target', 'John Lewis', 'Currys', 'Argos'].find(x => x.toLowerCase() === vl);                             if (this.retailerSelect) this.retailerSelect.value = realR;                          } else {                             this.selectedBrands.push(vv);                          }                       }                   });                                      if (this.brandDropdown) {                       const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                       chks.forEach(c => c.checked = this.selectedBrands.includes(c.value));                   }                                      if (r.pr && typeof r.pr === 'string') {                       let prL = r.pr.toLowerCase();                       if (prL.includes('under $')) {                           let m = prL.match(/under \$(\d+)/i);                           if (m && this.customPriceMax && !this.customPriceMax.value) this.customPriceMax.value = m[1];                       }                   }                }                                this.fetchDeals(this.currentQuery);             });           });                      // default to highlighting first           btns[0].classList.add('active');        }async fetchDeals(query, append = false) {          if (!append) {             this.showLoading();             this.deals = [];             this.displayLimit = (this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12;          } else {             this.displayLimit += (this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12;          }                    try {            if (this.getViewMode() === 'savings_squad') {               await this.fetchSavingsSquad(append);            } else {               if (this.isBroadQuery(query)) {                 await this.fetchAdviserDeals(query, append);               } else {                 await this.fetchHawkDeals(query, append);                 if (this.deals.length === 0) {                   await this.fetchAdviserDeals(query, append);                 }               }            }          } catch (error) {            console.warn("[Tom's Guide Widget] Fetch error:", error);            this.showError();          }        }        async fetchSavingsSquad() {          let topArticles = this.airedaleArticles;          if (!topArticles) {            const airedaleUrl = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`;            let res;            try {               res = await fetch(airedaleUrl);            } catch(e) {               try { res = await fetch(`https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`); } catch (err) { console.warn("Fallback fetch failed", err); return; }            }            if (!res.ok) throw new Error('Airedale API Error');            const articles = await res.json();            topArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);            this.airedaleArticles = topArticles;                        let tagCounts = {};            topArticles.forEach((a) => {              let articleTags = new Set();              if (a.articlecategory && Array.isArray(a.articlecategory)) {                 a.articlecategory.forEach((t) => articleTags.add(t));              }              articleTags.forEach(t => {                 tagCounts[t] = (tagCounts[t] || 0) + 1;              });            });                        this.airedaleTags = Object.keys(tagCounts).sort((a, b) => tagCounts[b] - tagCounts[a]);            this.airedaleTagCounts = tagCounts;          }                    let targetArticles = topArticles;          if (this.activeDealTag) {             const cleanTag = this.activeDealTag.toLowerCase().replace(/&/g, '').replace(/[^a-z0-9]+/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');             const encodedTag = encodeURIComponent(cleanTag);             const url = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50&articleCategoryHandle=${encodedTag}`;             try {                const res = await fetch(url);                if (res.ok) {                   const articles = await res.json();                   targetArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);                }             } catch(e) {                console.warn("Failed to fetch by activeDealTag", e);             }          }          let extractedDeals = [];          let dynamicBrandsCounts = {};                    targetArticles.forEach((article) => {             if (!article.articlepage) return;                          let pageData = [];             try {                pageData = JSON.parse(article.articlepage[0]);             } catch(e){ console.warn(e); }                          const savingsSquad = pageData.filter((p) => p.type === 'deal' || p.type === 'featured-product');                          savingsSquad.forEach((block, idx) => {                const data = block.data || {};                const isFeatured = block.type === 'featured-product';                                const link = data.link || {};                const priceObj = data.price || {};                const image = data.image || {};                                if (data.brand) {                   data.brand = data.brand.replace(/^\d+\.\s*/, '').trim();                   dynamicBrandsCounts[data.brand] = (dynamicBrandsCounts[data.brand] || 0) + 1;                }                const externalUrl = isFeatured ? data.url : (link.href || null);                let summaryTitle = isFeatured ? (data.name || data.brand) : (data.productName || link.label || article.articlename);                let description = isFeatured ? (data.strapline || '') : (data.text || '');                                if (!isFeatured && !data.productName && data.text) {                   const brSplit = data.text.split(new RegExp('\x3Cbr\\s*\\/?\\x3E', 'i'));                   if (brSplit.length > 1) {                     summaryTitle = brSplit[0].replace(/<[^>]+>/g, '').trim();                     description = brSplit.slice(1).join(' ').replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').trim();                   } else {                     const match = data.text.match(/\x3Cstrong>(.*?)<\/strong>/);                     if (match) {                       summaryTitle = match[1].replace(/<[^>]+>/g, '').trim();                       if (summaryTitle.endsWith(':')) summaryTitle = summaryTitle.slice(0, -1);                     }                   }                }                                let imageUrl = isFeatured ? image.mos : (image.src || null);                if (imageUrl && imageUrl.startsWith('//')) imageUrl = 'https:' + imageUrl;                                description = description.replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').replace(/View Deal$/i, '').trim();                                let merchantName = data.retailer || '';                if (!merchantName && externalUrl) {                   try {                     merchantName = new URL(externalUrl).hostname.replace('www.', '').split('.')[0];                     merchantName = merchantName.charAt(0).toUpperCase() + merchantName.slice(1);                   }catch(e){ console.warn(e); }                }                if (!merchantName) merchantName = 'Retailer';                const q = (this.currentQuery || '').toLowerCase();                const activeTagLogic = (this.activeDealTag || '').toLowerCase();                if (q.length > 2 && q !== activeTagLogic) {                   const searchTarget = `${summaryTitle || ''} ${description || ''}`.toLowerCase();                   if (!searchTarget.includes(q)) return;                }                let rawPrice = 0;                let rawMsrp = 0;                let currencyStr = '$';                if (isFeatured) {                   rawPrice = typeof data.salePrice === 'number' && data.salePrice > 0 ? data.salePrice : (typeof data.price === 'number' ? data.price : 0);                   rawMsrp = typeof data.salePrice === 'number' && typeof data.price === 'number' && data.price > data.salePrice ? data.price : 0;                   currencyStr = data.currency === 'GBP' ? '£' : '$';                } else {                   rawPrice = priceObj.amount ? parseFloat(priceObj.amount) : 0;                   rawMsrp = priceObj.amountWas ? parseFloat(priceObj.amountWas) : 0;                   currencyStr = priceObj.currency === 'GBP' ? '£' : '$';                }                                let savingAmt = 0;                let savingLabel = '';                if (rawPrice > 0 && rawMsrp > rawPrice) {                   savingAmt = parseFloat((rawMsrp - rawPrice).toFixed(2));                   savingLabel = `Save ${currencyStr}${savingAmt}`;                }                                // Apply Brand filter                if (this.selectedBrands && this.selectedBrands.length > 0) {                   const itemBrand = (data.brand || '').toLowerCase();                   const hasMatch = this.selectedBrands.some(sb => sb.toLowerCase() === itemBrand);                   if (!hasMatch) return;                }                // Apply Price filter                let priceFilterVal = null;                const min = this.customPriceMin ? this.customPriceMin.value : '';                const max = this.customPriceMax ? this.customPriceMax.value : '';                if (min || max) {                   priceFilterVal = `${min}_${max}`;                } else if (this.priceFilter && this.priceFilter.value !== 'all') {                   priceFilterVal = this.priceFilter.value;                }                if (priceFilterVal && rawPrice > 0) {                   if (priceFilterVal === 'under50' && rawPrice >= 50) return;                   if (priceFilterVal === 'over50' && rawPrice <= 50) return;                   if (priceFilterVal === 'over30' && rawPrice <= 30) return;                   if (priceFilterVal === 'over500' && rawPrice <= 500) return;                   if (priceFilterVal.includes('_')) {                      const parts = priceFilterVal.split('_');                      const min = parseFloat(parts[0]);                      const max = parseFloat(parts[1]);                      if (!isNaN(min) && rawPrice < min) return;                      if (!isNaN(max) && rawPrice > max) return;                   }                }                // Apply Discount filter                if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {                   const requiredDiscount = parseInt(this.discountFilter.value);                   if (!isNaN(requiredDiscount) && requiredDiscount > 0) {                      if (!rawMsrp || rawMsrp <= rawPrice) return;                      const ratio = Math.round((1 - (rawPrice / rawMsrp)) * 100);                      if (ratio < requiredDiscount) return;                   }                }                                extractedDeals.push({                   id: `airedale-${article.id || Math.random()}-${idx}`,                   url: externalUrl,                   image: imageUrl,                   fallbackImage: imageUrl,                   title: summaryTitle,                   brand: data.brand || '',                   productName: data.productName || '',                   merchant: merchantName,                   rawPrice: rawPrice,                   rawMsrp: rawMsrp,                   price: rawPrice > 0 ? rawPrice.toString() : '',                   msrp: rawMsrp > 0 ? rawMsrp.toString() : '',                   currency: currencyStr,                   isCheckPrice: !rawPrice,                   savingLabel: savingLabel,                   savingType: rawMsrp > rawPrice ? 'amount' : 'none',                   isPrime: false,                   starRating: null,                   description: description,                   text: data.text || ''                });             });          });                    const airedaleBrandsList = Object.keys(dynamicBrandsCounts).map(b => ({              formatted_value: b,              count: dynamicBrandsCounts[b]          })).sort((a,b) => b.count - a.count);                    if (this.getViewMode() === 'savings_squad') {             this.populateBrandDropdown(airedaleBrandsList.slice(0, 15));             if (this.brandFilterWrapper) {                if (airedaleBrandsList.length === 0) {                    this.brandFilterWrapper.style.display = 'none';                } else {                    this.brandFilterWrapper.style.display = 'flex';                }             }          }                    this.deals = extractedDeals;          this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        isBroadQuery(query) {          const q = query.toLowerCase();          const intentModifiers = ['deals', 'best', 'sale', 'under', 'cheap', 'offers', 'discount'];          return intentModifiers.some(term => q.includes(term));        }        async fetchHawkDeals(query, append = false) {          const url = new URL(this.apiUrl);          url.searchParams.append('model_name', query);          const areaCode = this.getAreaCode();          if (areaCode) {            url.searchParams.append('area', areaCode);          }                    if (append && this.deals.length > 0) {            url.searchParams.append('offset', this.deals.length.toString());          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.append('filter_merchant_name', this.retailerSelect.value);          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.append('filter_label[text_brand]', this.selectedBrands.join(','));          }                    let priceVal = null;          const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             priceVal = `${min}_${max}`;          } else if (this.priceFilter && this.priceFilter.value !== 'all') {             priceVal = this.priceFilter.value;          }          if (priceVal) {            if (priceVal === 'under50') {              url.searchParams.append('filter_max_price', '50');            } else if (priceVal === 'over50') {              url.searchParams.append('filter_min_price', '50');            } else if (priceVal === 'over30') {              url.searchParams.append('filter_min_price', '30');            } else if (priceVal === 'over500') {              url.searchParams.append('filter_min_price', '500');            } else if (priceVal.includes('_')) {              const parts = priceVal.split('_');              if (parts[0]) url.searchParams.append('filter_min_price', parts[0]);              if (parts[1]) url.searchParams.append('filter_max_price', parts[1]);            }          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {              const ratio = (100 - v) / 100;              url.searchParams.append('min_discount_ratio', ratio.toString());            }          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.append('offer', this.offerTypeSelect.value);          }                    url.searchParams.append('filter_product_types', 'deals');                    if (this.rowsSelect && this.rowsSelect.value) {            url.searchParams.append('rows', this.rowsSelect.value);          } else {             url.searchParams.append('rows', '12'); // default          }          let response;          try {             response = await fetch(url.toString());          } catch(e) {             if (window.location.protocol === 'file:') {                console.warn("[Tom's Guide Widget] fetch from file:// blocked by local CORS policy, falling back to Adviser mock.");                await this.fetchAdviserDeals(query);                return;             }             console.warn("Hawk fetch failed", e);             this.deals = [];             this.render();             return;          }          if (!response.ok) {            throw new Error('Hawk API Response Error');          }          const rawData = await response.json();          // Safely locate data array from potentially wrapped response          let offers = [];          let modelInfoArray = [];                    let brandFilterData = null;          if (rawData && rawData.widget && rawData.widget.data && Array.isArray(rawData.widget.data.filters)) {             brandFilterData = rawData.widget.data.filters.find(f => f.type === 'label_text_brand');          } else if (rawData && rawData.data && Array.isArray(rawData.data.filters)) {             brandFilterData = rawData.data.filters.find(f => f.type === 'label_text_brand');          }          if (brandFilterData && Array.isArray(brandFilterData.values) && brandFilterData.values.length > 0) {             this.populateBrandDropdown(brandFilterData.values);          } else {             if (this.brandFilterWrapper && this.selectedBrands.length === 0) {                this.brandFilterWrapper.style.display = 'none';             }          }                    if (rawData && rawData.widget && rawData.widget.data) {            if (Array.isArray(rawData.widget.data.offers)) offers = rawData.widget.data.offers;            if (rawData.widget.data.model_info && typeof rawData.widget.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.widget.data.model_info) ? rawData.widget.data.model_info : Object.values(rawData.widget.data.model_info);            }          } else if (rawData && rawData.data) {            if (Array.isArray(rawData.data.offers)) offers = rawData.data.offers;            if (rawData.data.model_info && typeof rawData.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.data.model_info) ? rawData.data.model_info : Object.values(rawData.data.model_info);            }          } else {            if (Array.isArray(rawData)) offers = rawData;            else if (rawData && Array.isArray(rawData.offers)) offers = rawData.offers;            else if (rawData && rawData.offers && Array.isArray(rawData.offers.offer)) offers = rawData.offers.offer;            else if (rawData && rawData.offers) offers = [].concat(rawData.offers);                        if (rawData && rawData.model_info && typeof rawData.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.model_info) ? rawData.model_info : Object.values(rawData.model_info);            }          }          let modelDetails = {};          modelInfoArray.forEach(m => {            const mId = m.model_id || m.id;            if (mId) {              modelDetails[mId] = {                score: m.score != null ? parseFloat(m.score) : null,                brand: m.brand || null,                parent: (m.parents && Array.isArray(m.parents) && m.parents.length > 0) ? m.parents[0].name : null              };            }          });          offers.forEach(item => {            let data = { ...item };            const mId = data.model_id;            if (mId && modelDetails[mId]) {              data.review_score = modelDetails[mId].score;              data.model_brand = modelDetails[mId].brand;              data.model_parent = modelDetails[mId].parent;            } else {              data.review_score = null;            }                        let itemOffers = [];            if (Array.isArray(item.offers)) itemOffers = item.offers;            else if (Array.isArray(item.offer)) itemOffers = item.offer;            else if (item.offers && typeof item.offers === 'object') itemOffers = [item.offers];            else if (item.offer && typeof item.offer === 'object') itemOffers = [item.offer];            if (itemOffers.length > 0) {              itemOffers.forEach(subItem => {                let subData = { ...item, ...subItem };                const subId = subData.model_id;                if (subId && modelDetails[subId]) {                  subData.review_score = modelDetails[subId].score;                  subData.model_brand = modelDetails[subId].brand;                  subData.model_parent = modelDetails[subId].parent;                } else if (data.review_score != null) {                  subData.review_score = data.review_score;                }                if (subData.merchant && typeof subData.merchant === 'object') {                  subData.merchant_name = subData.merchant.name;                }                this.deals.push(this.extractDealData(subData));              });              return;            }                        if (item.merchant && typeof item.merchant === 'object') {              data.merchant_name = item.merchant.name;            }                        this.deals.push(this.extractDealData(data));          });                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        async fetchAdviserDeals(query) {          // ======================================================================          // TODO: ADVISER API REPLACEMENT          // The code below simulates the Adviser API response using mock data.          // Once the real endpoint is ready, remove getAdviserMockData() and           // perform an actual fetch() request similar to fetchHawkDeals().          // Example:          // const area = this.getAreaCode();          // let apiUrl = `https://your-adviser-api.com/search?q=${query}&area=${area}`;          // if (this.priceFilter && this.priceFilter.value !== 'all') {          //   const val = this.priceFilter.value;          //   if (val === 'under50') apiUrl += '&filter_max_price=50';          //   else if (val === '50_100') apiUrl += '&filter_max_price=100';          //   else if (val === '100_200') apiUrl += '&filter_max_price=200';          //   else if (val === '200_500') apiUrl += '&filter_max_price=500';          // }          // const res = await fetch(apiUrl);          // const rawData = await res.json();          // ======================================================================          // Simulating network latency          await new Promise(resolve => setTimeout(resolve, 400));                    const rawData = this.getAdviserMockData();          let offers = [];                    if (rawData && rawData.data && rawData.data.Get && Array.isArray(rawData.data.Get.Deal)) {            offers = rawData.data.Get.Deal;          }                    // Basic client-side filtering for the mock if we want it to react to the query          const q = query.toLowerCase();          const selectedRetailer = (this.retailerSelect && this.retailerSelect.value) ? this.retailerSelect.value.toLowerCase() : null;                    offers.forEach(item => {            const dataObj = item;                        // Apply retailer filter            const itemRetailer = (dataObj.dataRetailer || '').toLowerCase();            if (selectedRetailer && itemRetailer !== selectedRetailer && !itemRetailer.includes(selectedRetailer)) {              return;            }                        // Apply mock price filter            let price = dataObj.dataDiscountedPrice || 0;            if (typeof price === 'string') {              price = parseFloat(price.replace(/[^0-9.]/g, ''));            }            let priceVal = null;            const min = this.customPriceMin ? this.customPriceMin.value : '';            const max = this.customPriceMax ? this.customPriceMax.value : '';            if (min || max) {               priceVal = `${min}_${max}`;            } else if (this.priceFilter && this.priceFilter.value !== 'all') {               priceVal = this.priceFilter.value;            }            if (priceVal) {              if (priceVal === 'under50' && price >= 50) return;              if (priceVal === 'over50' && price <= 50) return;              if (priceVal === 'over30' && price <= 30) return;              if (priceVal === 'over500' && price <= 500) return;              if (priceVal.includes('_')) {                 const parts = priceVal.split('_');                 if (parts[0] && price < parseFloat(parts[0])) return;                 if (parts[1] && price > parseFloat(parts[1])) return;              }            }                        // Map Adviser schema to our widget's expected schema            const mappedData = {              url: dataObj.linkHREF || dataObj.dataLink || '#',              image: dataObj.imageURL || (dataObj.image && dataObj.image.src) || '',              title: dataObj.dataProduct || (dataObj.product && dataObj.product.name) || 'Product Deal',              merchant: dataObj.dataRetailer || 'Retailer',              price: dataObj.dataDiscountedPrice || 0,              currency: dataObj.dataCurrency === 'USD' ? '$' : (dataObj.dataCurrency || '$'),              msrp: dataObj.dataOriginalPrice || null            };                        const titleLow = mappedData.title.toLowerCase();            const merchLow = mappedData.merchant.toLowerCase();                        // Smarter mock filtering            let isMatch = false;            if (q === '' || this.isBroadQuery(q)) {              isMatch = true;            } else if (titleLow.includes(q) || merchLow.includes(q)) {              isMatch = true;            } else if ((q.includes('laptop') || q.includes('mac') || q.includes('pc')) && (titleLow.includes('macbook') || titleLow.includes('laptop'))) {              isMatch = true;            } else if ((q.includes('tv') || q.includes('television')) && (titleLow.includes('tv') || titleLow.includes('oled') || titleLow.includes('qled'))) {              isMatch = true;            } else if ((q.includes('phone') || q.includes('smartphone')) && (titleLow.includes('galaxy') || titleLow.includes('phone'))) {              isMatch = true;            } else if ((q.match(/watch|fitness|run|shoe/)) && (titleLow.includes('forerunner') || titleLow.includes('saucony') || titleLow.includes('watch'))) {              isMatch = true;            }                        if (isMatch) {               this.deals.push(this.extractDealData(mappedData));            }          });                    let rowLimit = 12;          if (this.rowsSelect && this.rowsSelect.value) {            rowLimit = parseInt(this.rowsSelect.value, 10) || 12;          }          // Intentionally omitting the slice here to allow "Load More" to work if the API returns more                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        getAdviserMockData() {          return {            "data": {              "Get": {                "Deal": [                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 300,                    "dataOriginalPrice": 399,                    "dataProduct": "Samsung Galaxy A36",                    "dataRetailer": "Samsung",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/MqDYsukV3JBG54te6dEs7j.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 14,                    "dataOriginalPrice": 24,                    "dataProduct": "Blink Mini",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/3JurmAjHsDa5tPdaHAwEV8.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 59,                    "dataOriginalPrice": 99,                    "dataProduct": "Ring Video Doorbell",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/rAh4uR7AsAsALCCLTXnLNJ.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 10,                    "dataOriginalPrice": 599,                    "dataProduct": "MacBook Neo",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/Lg4Dvg68j9SbB5CPNrTEpH.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 749,                    "dataOriginalPrice": 849,                    "dataProduct": "65\\\" Fire TV Omni 4K QLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/SG34ZWodUkLTxJvMTbjPYR.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 71,                    "dataOriginalPrice": 160,                    "dataProduct": "Saucony Hurricane 24",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/vxf7UD5T2Am7guVzFoFcZ4.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 649,                    "dataOriginalPrice": 749,                    "dataProduct": "Garmin Forerunner 970",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/3GKnEu7CdhtxPMfnPCMCiA.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1049,                    "dataOriginalPrice": 1499,                    "dataProduct": "LG 48\\\" C4 4K OLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/imvwZV9zoMD6fn9Afuge35.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1499,                    "dataOriginalPrice": 2199,                    "dataProduct": "Samsung 49\\\" Odyssey Neo G9 4K Gaming Monitor",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/XWDEJ5dUAE2nhK8k3Jk7k7.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 299,                    "dataOriginalPrice": 699,                    "dataProduct": "EGOHOME Black Memory Foam Mattress (queen)",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/hMUemtAejNETLVYxNrktzm.jpg"                  }                ]              }            }          };        }        decodeHTML(html) {          if (!html) return '';          const txt = document.createElement("textarea");          txt.innerHTML = String(html);          return txt.value;        }        extractDealData(item) {          const priceRawStr = String(item.price || item.current_price || '0');          const msrpRawStr = String(item.was_price || item.msrp || item.original_price || '0');          const rawPrice = parseFloat(priceRawStr.replace(/[^\d.]/g, '')) || 0;          const rawMsrp = parseFloat(msrpRawStr.replace(/[^\d.]/g, '')) || 0;          const isCheckPrice = rawPrice === 0 || priceRawStr === '0.00' || priceRawStr === '0';                    let originalImageUrl = item.image || item.image_url || item.product_image || '';          let imageUrl = originalImageUrl;          if ((!imageUrl || isCheckPrice) && item.model_image_url) {             imageUrl = item.model_image_url;             originalImageUrl = imageUrl;          } else if ((!imageUrl || isCheckPrice) && item.model_image) {             imageUrl = item.model_image;             originalImageUrl = imageUrl;          }                    if (imageUrl) {            imageUrl = imageUrl.replace(/-(\d+)-(\d+)(\.[a-z.]+)$/i, '$3');          }                    let fallbackImage = '';          if (originalImageUrl && originalImageUrl !== imageUrl) {             fallbackImage = originalImageUrl;          } else if (item.model_image && item.model_image !== imageUrl) {             fallbackImage = item.model_image;          } else if (item.model_image_url && item.model_image_url !== imageUrl) {             fallbackImage = item.model_image_url;          }                    const rawCurrency = item.currency || item.currency_symbol || '$';                    let savingLabel = item.percentage_saving_label || '';          if (!savingLabel && rawMsrp > rawPrice && rawPrice > 0) {            const pct = Math.round(((rawMsrp - rawPrice) / rawMsrp) * 100);            if (pct > 0) {              savingLabel = `${pct}% OFF`;            }          }                    const isPrime = item.shipping && item.shipping.prime === true;                    let scoreRaw = (item.review_score !== undefined && item.review_score !== null && item.review_score > 0) ? parseFloat(item.review_score) : null;          let starRating = 0;          if (scoreRaw !== null) {            starRating = Math.round((scoreRaw > 10 ? scoreRaw / 20 : scoreRaw / 2) * 2) / 2;          }                    return {            id: item.offer_id || item.link || item.url || item.offer_link || Math.random().toString(),            url: item.link || item.url || item.offer_link || '#',            image: imageUrl,            fallbackImage: fallbackImage,            title: item.name || item.title || item.model_name || item.product_name || 'Unknown Product',            brand: item.brand || '',            productName: item.model_name || item.product_name || item.name || '',            merchant: item.merchant_name || item.merchant || item.retailer || 'Retailer',            price: item.price !== undefined ? String(item.price) : '0.00',            currency: this.decodeHTML(rawCurrency),            msrp: item.was_price || item.msrp || item.original_price || null,            rawPrice: rawPrice,            rawMsrp: rawMsrp,            hasWasPrice: (item.was_price !== undefined && item.was_price !== null),            isCheckPrice: isCheckPrice,            savingLabel: savingLabel,            isPrime: isPrime,            starRating: starRating > 0 ? starRating : null,            modelId: item.model_id || '',            productKey: item.product_key || '',            merchantId: (item.merchant && typeof item.merchant === 'object') ? item.merchant.id || '' : '',            matchId: item.match_id || '',            merchantNetwork: (item.merchant && typeof item.merchant === 'object') ? item.merchant.an || '' : '',            merchantUrl: (item.merchant && typeof item.merchant === 'object') ? item.merchant.url || '' : '',            modelBrand: item.model_brand || item.brand || '',            modelParent: item.model_parent || ''          };        }        sortData() {          const sortVal = this.sortSelect ? this.sortSelect.value : (this.getViewMode() === 'savings_squad' ? 'date_desc' : 'discount_desc');          if (sortVal === 'price_asc') {            this.deals.sort((a, b) => a.rawPrice - b.rawPrice);          } else if (sortVal === 'price_desc') {            this.deals.sort((a, b) => b.rawPrice - a.rawPrice);          } else if (sortVal === 'discount_desc') {            this.deals.sort((a, b) => {              const aDiscount = a.rawMsrp > a.rawPrice ? (a.rawMsrp - a.rawPrice) : 0;              const bDiscount = b.rawMsrp > b.rawPrice ? (b.rawMsrp - b.rawPrice) : 0;              return bDiscount - aDiscount;            });          } else if (sortVal === 'date_desc') {             this.deals.sort((a, b) => {                let dateA = 0;                let dateB = 0;                if (a && a.modifiedDate) {                   const valA = Array.isArray(a.modifiedDate) ? a.modifiedDate[0] : a.modifiedDate;                   dateA = new Date(valA).getTime();                   if (isNaN(dateA)) dateA = 0;                }                if (b && b.modifiedDate) {                   const valB = Array.isArray(b.modifiedDate) ? b.modifiedDate[0] : b.modifiedDate;                   dateB = new Date(valB).getTime();                   if (isNaN(dateB)) dateB = 0;                }                return dateB - dateA;             });          }        }        getFilteredDeals() {          let filteredDeals = [...this.deals];                    if (this.dealModeToggle && this.dealModeToggle.checked) {            filteredDeals = filteredDeals.filter(d => d.hasWasPrice || (d.msrp && d.rawMsrp > d.rawPrice));          }                    return filteredDeals;        }        showLoading() {          const _div = '<' + '/div>';          const skeletonCardHtml = `            \x3Cdiv class="tg-df-card">              \x3Cdiv class="tg-df-card-image-box">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-img">${_div}              ${_div}              \x3Cdiv class="tg-df-card-body">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-card-footer mt-auto">                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="height:24px;">${_div}                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text" style="height:44px; margin-top:8px;">${_div}                ${_div}              ${_div}            ${_div}`;          this.grid.innerHTML = Array(4).fill(skeletonCardHtml).join('');        }        showError() {          const _div = '<' + '/div>';          this.grid.innerHTML = `\x3Cdiv class="tg-df-message">            An error occurred while finding deals. Please check your connection and try again.          ${_div}`;        }        escapeHTML(str) {          if (!str) return '';          return String(str).replace(/[&<>'"]/g, tag => ({              '&': '&', '<': '<', '>': '>', "'": ''', '"': '"'          }[tag] || tag));        }                bindCouponButtons() {          const btns = this.root.querySelectorAll('.tg-df-tag-coupons');          btns.forEach(btn => {            btn.addEventListener('click', (e) => {              e.preventDefault();              e.stopPropagation();              const merchant = btn.getAttribute('data-merchant');              this.openVouchersModal(merchant);            });          });                    const closeBtn = this.root.querySelector('#tg-df-vouchers-close');          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (closeBtn) {            closeBtn.onclick = () => this.closeVouchersModal();          }          if (backdrop) {            backdrop.onclick = (e) => {              if (e.target === backdrop) this.closeVouchersModal();            };          }        }                closeVouchersModal() {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (backdrop) backdrop.classList.remove('active');        }                async checkMerchantsCouponsBulk(merchants) {          if (!merchants || merchants.length === 0) return {};          const controller = new AbortController();          const timeoutId = setTimeout(() => controller.abort(), 4000);          try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchants.join(','));            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '120');            url.searchParams.append('origin', 'widgets-clientside');                        let res; try { res = await fetch(url.toString(), { signal: controller.signal }); } catch (e) { return {}; }            clearTimeout(timeoutId);            if (!res.ok) return {};            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        const foundMerchants = new Set();            offers.forEach(o => {              let mName = o.merchant_name || o.merchant || o.retailer;              if (mName && typeof mName === 'object') mName = mName.name;              if (mName) foundMerchants.add(String(mName).toLowerCase());            });            const resultMap = {};            merchants.forEach(m => {              if (m) resultMap[m] = foundMerchants.has(String(m).toLowerCase());            });            return resultMap;          } catch (e) {            return {};          }        }                async openVouchersModal(merchantName) {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          const title = this.root.querySelector('#tg-df-vouchers-title');          const content = this.root.querySelector('#tg-df-vouchers-content');                    if (!backdrop || !content) return;                    // HACK: Hide closing tags          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h4 = '<' + '/h4>';          const _svg = '<' + '/svg>';          const _circle = '<' + '/circle>';          const _polyline = '<' + '/polyline>';          const _rect = '<' + '/rect>';          const _path = '<' + '/path>';                    title.innerText = `${merchantName} Coupons & Deals`;          content.innerHTML = `\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}                               \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}`;          backdrop.classList.add('active');                    try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchantName);            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '50');            url.searchParams.append('origin', 'widgets-clientside');                        const res = await fetch(url.toString());            if (!res.ok) throw new Error('API Error');            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        if (offers.length === 0) {              content.innerHTML = `\x3Cdiv class="tg-df-message">No vouchers currently available for ${this.escapeHTML(merchantName)}.${_div}`;              return;            }                        content.innerHTML = offers.map((v, idx) => {              let offerObj = v;              if (v.offers && v.offers.offer) {                offerObj = Array.isArray(v.offers.offer) ? v.offers.offer[0] : v.offers.offer;              } else if (v.offer) {                offerObj = Array.isArray(v.offer) ? v.offer[0] : v.offer;              }              let logoUrl = v.logo_url || offerObj.logo_url || '';              if (!logoUrl && v.merchant) {                if (Array.isArray(v.merchant) && v.merchant.length > 0) logoUrl = v.merchant[0].logo_url || '';                else logoUrl = v.merchant.logo_url || '';              }                            const offerName = offerObj.name || offerObj.title || v.name || v.title || 'Special Offer';              const endTime = offerObj.end_time || v.end_time || '';              const linkUrl = offerObj.link || offerObj.url || v.link || v.url || '#';                            let foundVoucherCode = '';              const findVoucherCode = (obj) => {                if (!obj || typeof obj !== 'object') return;                if (obj.type === 'voucher_code' && obj.display_value) {                  foundVoucherCode = obj.display_value;                  return;                }                if (Array.isArray(obj)) {                  for (const item of obj) {                    findVoucherCode(item);                    if (foundVoucherCode) return;                  }                } else {                  for (const k in obj) {                    if (Object.prototype.hasOwnProperty.call(obj, k)) {                      findVoucherCode(obj[k]);                      if (foundVoucherCode) return;                    }                  }                }              };              findVoucherCode(offerObj);              if (!foundVoucherCode) findVoucherCode(v);                            const voucherCode = foundVoucherCode || offerObj.voucher_code || v.voucher_code || '';              const codeHtml = voucherCode ? `\x3Cspan class="tg-df-voucher-code" data-action="copy-code" data-code="${this.escapeHTML(voucherCode)}" title="Copy to clipboard">                \x3Cspan class="tg-df-voucher-code-text">${this.escapeHTML(voucherCode)}${_span}                \x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-left:6px;flex-shrink:0;" class="tg-df-voucher-copy-icon">                  \x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">${_rect}                  \x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">${_path}                ${_svg}              ${_span}` : '';                            const logoHtml = logoUrl                 ? `\x3Cimg src="${this.escapeHTML(logoUrl)}" alt="${this.escapeHTML(offerName)}" class="tg-df-voucher-logo" />`                 : `\x3Cdiv class="tg-df-voucher-logo" style="background:#e2e8f0;">${_div}`;                            let expiryHtml = '';              if (endTime) {                let dStr = endTime;                if (!isNaN(dStr) && String(dStr).length === 10) dStr = Number(dStr) * 1000;                const d = new Date(dStr);                if (!isNaN(d.getTime())) {                  const options = { year: 'numeric', month: 'short', day: 'numeric' };                  expiryHtml = `                    \x3Cdiv class="tg-df-voucher-expiry">                      \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                        \x3Ccircle cx="12" cy="12" r="10">${_circle}                        \x3Cpolyline points="12 6 12 12 16 14">${_polyline}                      ${_svg}                      Expires ${d.toLocaleDateString(undefined, options)}                    ${_div}`;                }              }              const revenueIdVal = generateRevenueId(linkUrl, offerName, merchantName, null);              const rewrittenLinkUrl = rewriteAffiliateLink(linkUrl, area, revenueIdVal);              return `                \x3Ca href="${this.escapeHTML(rewrittenLinkUrl)}" target="_blank" rel="noopener nofollow" class="tg-df-voucher-item"                  data-action="voucher-click"                  data-product-name="${this.escapeHTML(offerName)}"                  data-merchant-name="${this.escapeHTML(merchantName)}"                  data-analytics-id="${this.escapeHTML(offerObj.offer_id || offerObj.id || v.id || '')}"                  data-price=""                  data-previous-price=""                  data-original-link="${this.escapeHTML(linkUrl)}"                  data-revenue-id="${revenueIdVal}"                  data-index="${idx}"                  data-total="${offers.length}"                  data-in-stock="true"                  data-currency="USD"                  data-model-id="${this.escapeHTML(offerObj.model_id || v.model_id || offerObj.id || v.id || '')}"                  data-merchant-id="${this.escapeHTML(offerObj.merchant_id || offerObj.merchant?.id || '')}"                >                  ${logoHtml}                  \x3Cdiv class="tg-df-voucher-content">                    \x3Ch4 class="tg-df-voucher-title">${this.escapeHTML(offerName)}${_h4}                    ${codeHtml}                    ${expiryHtml}                  ${_div}                ${_a}              `;            }).join('');                        // Attach copy functionality            const copyBtns = content.querySelectorAll('[data-action="copy-code"]');            copyBtns.forEach(btn => {              btn.addEventListener('click', async (e) => {                e.preventDefault();                e.stopPropagation();                                const code = btn.getAttribute('data-code');                if (!code) return;                                try {                  const copyToClipboard = async (text) => {                     if (window.navigator.clipboard && window.isSecureContext) {                        try { await window.navigator.clipboard.writeText(text); return; } catch (e) {}                     }                     const textArea = document.createElement("textarea");                     textArea.value = text;                     textArea.style.position = "fixed";                     document.body.appendChild(textArea);                     textArea.focus();                     textArea.select();                     document.execCommand('copy');                     textArea.remove();                  };                  await copyToClipboard(code);                                    // Visual feedback                  btn.classList.add('copied');                  const textSpan = btn.querySelector('.tg-df-voucher-code-text');                  const iconSvg = btn.querySelector('.tg-df-voucher-copy-icon');                                    const origText = textSpan.innerText;                  const origIcon = iconSvg.innerHTML;                                    textSpan.innerText = 'Copied!';                  iconSvg.innerHTML = `\x3Cpolyline points="20 6 9 17 4 12">${_polyline}`;                                    setTimeout(() => {                    if (btn) {                      btn.classList.remove('copied');                      if (textSpan) textSpan.innerText = origText;                      if (iconSvg) iconSvg.innerHTML = origIcon;                    }                  }, 2000);                                    trackElementInteraction({                    id: 'voucher-code-copy',                    name: 'Copy Voucher Code',                    label: `Copied ${code} for ${merchantName}`                  });                } catch (err) {                  console.warn('Failed to copy text: ', err);                }              });            });            // Attach voucher click tracking            const voucherBtns = content.querySelectorAll('[data-action="voucher-click"]');            voucherBtns.forEach(btn => {              btn.addEventListener('click', (e) => {                if (e.target.closest('[data-action="copy-code"]')) return;                                const productName = btn.getAttribute('data-product-name');                const merchantNameAttr = btn.getAttribute('data-merchant-name');                const productId = btn.getAttribute('data-analytics-id');                const price = parseFloat(btn.getAttribute('data-price')) || null;                const prevPriceStr = btn.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = btn.getAttribute('data-original-link');                const rewrittenLink = btn.getAttribute('href');                const revenueId = btn.getAttribute('data-revenue-id');                const index = parseInt(btn.getAttribute('data-index'), 10) || 0;                const inStock = btn.getAttribute('data-in-stock') === 'true';                const totalText = btn.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: btn.getAttribute('data-model-id') || null,                    matchId: btn.getAttribute('data-match-id') || null,                    brand: btn.getAttribute('data-model-brand') || null,                    parent: btn.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: btn.getAttribute('data-merchant-id') || null,                    network: btn.getAttribute('data-merchant-network') || null,                    url: btn.getAttribute('data-merchant-url') || null,                    name: merchantNameAttr                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: btn.getAttribute('data-currency') || 'USD'                };                if (typeof trackDealClick === 'function') {                  trackDealClick(trackingParams);                }              });            });                                  } catch (e) {            console.warn(e);            content.innerHTML = `\x3Cdiv class="tg-df-message">Failed to load vouchers.${_div}`;          }        }        render() {          try {            if (this.getViewMode() === 'savings_squad' && this.airedaleTags.length > 0) {              if (this.categoryFilterWrapper) {                 this.categoryFilterWrapper.style.display = 'flex';              }              if (this.categoryFilter) {                 const _option = '<' + '/option>';                 let optionsHtml = `\x3Coption value="all">All Categories${_option}`;                 this.airedaleTags.forEach(tag => {                    const isSelected = this.activeDealTag === tag ? 'selected' : '';                    optionsHtml += `\x3Coption value="${this.escapeHTML(tag)}" ${isSelected}>${this.escapeHTML(tag)} (${this.airedaleTagCounts[tag] || 0})${_option}`;                 });                 this.categoryFilter.innerHTML = optionsHtml;                 this.categoryFilter.value = this.activeDealTag || 'all';              }            } else {               if (this.categoryFilterWrapper) {                  this.categoryFilterWrapper.style.display = 'none';               }            }            const displayDeals = this.getFilteredDeals();          // HACK: Hide closing tags from the CMS HTML sanitizer so it doesn't strip them during in-page injection          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h3 = '<' + '/h3>';          const _p = '<' + '/p>';          const _strong = '<' + '/strong>';          const _sup = '<' + '/sup>';          const _button = '<' + '/button>';          if (displayDeals.length === 0) {            if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {              if (this.deals.length > 0) {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No deals match your selected filters.                ${_div}`;              } else if (this.getViewMode() === 'savings_squad' && this.currentQuery.length <= 2) {                 // Do not show "no exact matches" if query is empty for savings_squad                 this.grid.innerHTML = '';              } else {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No exact matches found for "\x3Cstrong>${this.escapeHTML(this.currentQuery)}${_strong}". Try adjusting your search term.                ${_div}`;              }            } else {              this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                Search product or category names to discover the best deals from across the web.              ${_div}`;            }            return;          }          let dealsHtml = displayDeals.slice(0, this.displayLimit).map((deal, index) => {            try {               const currencySym = this.escapeHTML(deal.currency);               const isoCurrencyCode = normalizeCurrency(currencySym);               const escapedPrice = this.escapeHTML(deal.price);               const escapedMsrp = this.escapeHTML(deal.msrp);               const areaCode = this.getAreaCode();                              const revenueId = generateRevenueId(deal.url, deal.title, deal.merchant, null);               const originalLink = deal.url;               const rewrittenLink = rewriteAffiliateLink(deal.url, areaCode, revenueId);                        const productCategoryName = 'deals';            const dataAttr = `              data-action="${deal.isCheckPrice ? 'view-similar-click' : 'deal-click'}"              data-analytics-id="${this.escapeHTML(deal.externalProductId || deal.id || '')}"              data-product-name="${this.escapeHTML(deal.title)}"              data-merchant-name="${this.escapeHTML(deal.merchant)}"              data-price="${deal.rawPrice || ''}"              data-previous-price="${deal.rawMsrp || ''}"              data-original-link="${this.escapeHTML(originalLink)}"              data-revenue-id="${revenueId}"              data-index="${index}"              data-total="${displayDeals.length}"              data-in-stock="${deal.inStock !== false}"              data-currency="${this.escapeHTML(isoCurrencyCode)}"              data-model-id="${this.escapeHTML(deal.modelId || '')}"              data-product-key="${this.escapeHTML(deal.productKey || '')}"              data-merchant-id="${this.escapeHTML(deal.merchantId || '')}"            `;                        let priceGroupHtml = '';            let isSavingsSquadMode = this.getViewMode() === 'savings_squad';            let ctaText = 'View Deal';            let formattedPrice = '';            let msrpHtml = '';                        if (deal.isCheckPrice) {              ctaText = isSavingsSquadMode ? 'View Deal' : 'Check Price';              if (isSavingsSquadMode) {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                  ${_div}                `;              } else {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                    \x3Cspan class="tg-df-card-price" style="font-size: 15px; font-weight: 500; font-style: italic;">See price at retailer${_span}                  ${_div}                `;              }            } else {              // Format Price              formattedPrice = escapedPrice.includes(currencySym)                 ? escapedPrice                 : `${currencySym}${escapedPrice}`;                              // Format MSRP              msrpHtml = deal.msrp && deal.rawMsrp > deal.rawPrice                ? `\x3Cspan class="tg-df-card-msrp">${escapedMsrp.includes(currencySym) ? escapedMsrp : currencySym + escapedMsrp}${_span}`                : '';                              priceGroupHtml = `                \x3Cdiv class="tg-df-card-merchant-wrapper">                  \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                ${_div}                \x3Cdiv class="tg-df-card-price-group">                  ${isSavingsSquadMode ? '' : `                  \x3Cspan class="tg-df-card-price">${formattedPrice}${_span}                  ${msrpHtml}                  `}                ${_div}              `;            }                        const discountBadgeHtml = deal.savingLabel && !deal.isCheckPrice              ? `\x3Cspan class="tg-df-card-discount-badge">${this.escapeHTML(deal.savingLabel)}${_span}`              : '';                          // HACK for CMS            const _button = '<' + '/button>';            const _svg = '<' + '/svg>';            const _path = '<' + '/path>';            const _rect = '<' + '/rect>';            const _circle = '<' + '/circle>';            const _polyline = '<' + '/polyline>';            const _line = '<' + '/line>';                        let badgesHtml = '';            const primeBadge = deal.isPrime ? `              \x3Cspan class="tg-df-tag tg-df-tag-prime">                \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="currentColor">                  \x3Cpath d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z">${_path}                ${_svg} Prime              ${_span}            ` : '';                        const couponsBadge = deal.merchant && deal.merchant.toLowerCase().includes('amazon') ? '' : `              \x3Cdiv class="tg-df-coupon-wrapper" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:inline-flex; align-items:center;">                \x3Cdiv class="tg-df-coupon-spinner">${_div}                \x3Cbutton type="button" class="tg-df-tag tg-df-tag-coupons" data-action="coupons-click" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:none;">                  \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                    \x3Cpath d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z">${_path}                    \x3Cline x1="7" y1="7" x2="7.01" y2="7">${_line}                  ${_svg} Coupons                ${_button}              ${_div}            `;                        // Note: We always add coupons badge if there's a chance, but to allow 3-line titles we check wrapper display state            badgesHtml = `              \x3Cdiv class="tg-df-card-badges">                ${primeBadge}                ${couponsBadge}              ${_div}            `;            const _linearGradient = '<' + '/linearGradient>';            const _polygon = '<' + '/polygon>';            const _stop = '<' + '/stop>';            const _defs = '<' + '/defs>';                        let starHtml = '';            if (deal.starRating) {              let rating = deal.starRating;                            if (rating > 0) {                const fullStars = Math.floor(rating);                const halfStar = (rating - fullStars) >= 0.5 ? 1 : 0;                const emptyStars = Math.max(0, 5 - fullStars - halfStar);                const blue = '#1f69ff'; // Tom's guide brand color from VIEW DEAL button                const gray = '#cbd5e1';                                const starSvgFull = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="${blue}" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                const gradId = 'half_grad_' + Math.floor(Math.random()*1000000);                const starSvgHalf = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cdefs>\x3ClinearGradient id="${gradId}" x1="0" x2="1" y1="0" y2="0">\x3Cstop offset="50%" stop-color="${blue}">${_stop}\x3Cstop offset="50%" stop-color="transparent">${_stop}${_linearGradient}${_defs}                  \x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26" fill="url(#${gradId})">${_polygon}${_svg}`;                                  const starSvgEmpty = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="${gray}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                let stars = [];                for (let i=0; i<fullStars; i++) stars.push(starSvgFull);                if (halfStar) stars.push(starSvgHalf);                for (let i=0; i<emptyStars; i++) stars.push(starSvgEmpty);                                starHtml = `\x3Cdiv class="tg-df-card-stars" style="display:flex;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--tg-df-text-muted);">                  \x3Cspan style="margin-right:6px;">Tom's Guide:${_span}                  \x3Cdiv style="display:flex;gap:2px;">                    ${stars.join('')}                  ${_div}                ${_div}`;              }            }            let htmlOutput = '';            if (isSavingsSquadMode) {              htmlOutput += `              \x3Cdiv class="hawk-deal-widget-container tg-df-mobile-only" data-collapsible="true">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''} style="margin-bottom: 10px;">` : ''}                \x3Cdiv class="hawk-deal-widget-wrap">                  \x3Cdiv class="hawk-deal-widget-image-container">                    \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" rel="sponsored noopener" target="_blank" class="hawk-affiliate-link-deal-widget" ${dataAttr}>                      \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="hawk-lazy-image-deal-widget" loading="lazy" width="140" height="160" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                    ${_a}                  ${_div}                  \x3Cdiv class="hawk-deal-widget-text-cta-container">                    \x3Cdiv class="hawk-deal-widget-text-body-container">                      \x3Cdiv class="hawk-deal-widget-text-body-main">                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          ${deal.isCheckPrice ? `                            \x3Cspan class="hawk-deal-widget-title-product-title">${this.escapeHTML(deal.title)}${_span}                          ` : `                            \x3Cspan class="hawk-deal-widget-title-product-title">${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_span}                          `}                        ${_a}                        ${!deal.isCheckPrice && deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan class="hawk-deal-widget-title-was-price">was ${currencySym}${escapedMsrp}${_span}                          ${_a}                        ` : ''}                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          \x3Cspan class="hawk-deal-widget-title-retailer-price">                            ${!deal.isCheckPrice ? `                              \x3Cspan class="hawk-deal-widget-title-price">now ${formattedPrice}${_span}                              \x3Cspan class="hawk-deal-widget-title-retailer"> at ${this.escapeHTML(deal.merchant)}${_span}                            ` : `                              \x3Cspan class="hawk-deal-widget-title-price">See price at ${this.escapeHTML(deal.merchant)}${_span}                            `}                          ${_span}                        ${_a}                        ${deal.description ? `\x3Cdiv class="hawk-deal-widget-text-body-description">\x3Cp>${this.escapeHTML(deal.description)}${_p}${_div}` : ''}                      ${_div}                    ${_div}                    \x3Cdiv class="hawk-deal-widget-footer">                      \x3Cdiv class="hawk-deal-widget-button-wrapper">                        \x3Cdiv class="hawk-deal-widget-preferred-partner-wrapper">                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-deal-button" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan>${deal.isCheckPrice ? 'Check Price' : 'View Deal'}${_span}                          ${_a}                        ${_div}                      ${_div}                    ${_div}                  ${_div}                ${_div}              ${_div}              `;            }            htmlOutput += `              \x3Cdiv class="tg-df-card ${isSavingsSquadMode ? 'tg-df-desktop-only' : ''}">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''}>` : ''}                \x3Cdiv class="tg-df-card-image-box">                  ${discountBadgeHtml}                  \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">                    \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="tg-df-card-image" loading="lazy" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                  ${_a}                ${_div}                \x3Cdiv class="tg-df-card-body">                  ${starHtml}                  ${badgesHtml}                  \x3Ch3 class="tg-df-card-title tg-df-custom-savings-squad-title" title="${this.escapeHTML(deal.title)}">                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" disable-tracking="true" target="_blank" rel="noopener nofollow" style="text-decoration: none; color: inherit;">                      ${isSavingsSquadMode                         ? (deal.isCheckPrice                             ? (deal.title && deal.title.includes(':')                                 ? `\x3Cstrong>${this.escapeHTML(deal.title.substring(0, deal.title.indexOf(':') + 1))}${_strong}\x3Cspan style="color: #1f69ff; font-weight: normal;">${this.escapeHTML(deal.title.substring(deal.title.indexOf(':') + 1))}${_span}`                                : this.escapeHTML(deal.title)                              )                             : `\x3Cstrong>${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_strong} ${deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `\x3Cspan style="color: #d0021b; text-decoration: line-through; font-weight: normal; margin-right: 4px;">was ${currencySym}${escapedMsrp}${_span} ` : ''}\x3Cspan style="color: #1f69ff; font-weight: normal;">now ${formattedPrice} at ${this.escapeHTML(deal.merchant)}${_span}`                          )                        : this.escapeHTML(deal.title)                      }                    ${_a}                  ${_h3}                  ${deal.description ? `\x3Cp style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 12px; line-height: 1.4;">${this.escapeHTML(deal.description)}${_p}` : ''}                  \x3Cdiv class="tg-df-card-footer">                    ${priceGroupHtml}                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" class="tg-df-card-cta ${isSavingsSquadMode ? 'tg-df-cta-savings-squad' : ''}" style="text-decoration: none;">${ctaText}${_a}                  ${_div}                ${_div}              ${_div}            `;                        return htmlOutput;            } catch (e) {               console.log("Error rendering deal in map for index", index, typeof deal === 'object' ? JSON.stringify(deal) : deal, "MSG:", e.message);               return '';            }          }).join('');                    if (displayDeals.length > this.displayLimit || ((this.getViewMode() === 'carousel' || this.getViewMode() === 'auto') && displayDeals.length > 0 && displayDeals.length % ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12) === 0)) {            if (this.getViewMode() === 'carousel') {               dealsHtml += `                 \x3Cbutton type="button" class="tg-df-load-more-card tg-df-load-more">                   \x3Csvg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 8px;">\x3Cpath d="M5 12h14">\x3C/path>\x3Cpath d="m12 5 7 7-7 7">\x3C/path>\x3C/svg>                   Load More                 ${_button}               `;            } else {               dealsHtml += `                 \x3Cdiv style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1;">                   \x3Cbutton type="button" class="tg-df-tag-outline tg-df-load-more" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer; display: flex; align-items: center;">Load More${_button}                 ${_div}               `;            }          }                    this.grid.innerHTML = dealsHtml;          // Inject JSON-LD          try {            let targetNode = this.hostContainer || document.head;            let jsonLdScript = targetNode.querySelector('#tg-df-json-ld-' + this.widgetId);            if (!jsonLdScript) {                jsonLdScript = document.createElement('script');                jsonLdScript.type = 'application/ld+json';                jsonLdScript.id = 'tg-df-json-ld-' + this.widgetId;                targetNode.appendChild(jsonLdScript);            }            const jsonLdData = {              "@context": "https://schema.org",              "@type": "ItemList",              "itemListElement": displayDeals.slice(0, this.displayLimit).map((deal, index) => {                 let isoCurrency = "USD";                 if (deal.currency === '£') isoCurrency = "GBP";                 else if (deal.currency === '€') isoCurrency = "EUR";                 else if (deal.currency === 'A$') isoCurrency = "AUD";                 else if (deal.currency === 'CA$') isoCurrency = "CAD";                 const areaCode = typeof this.getAreaCode === 'function' ? this.getAreaCode() : 'US';                 const revenueId = typeof generateRevenueId === 'function' ? generateRevenueId(deal.url, deal.title, deal.merchant, null) : '';                 const rewrittenLink = typeof rewriteAffiliateLink === 'function' ? rewriteAffiliateLink(deal.url, areaCode, revenueId) : deal.url;                 return {                   "@type": "ListItem",                   "position": index + 1,                   "item": {                     "@type": "Product",                     "name": deal.title,                     "image": deal.image || "",                     "description": deal.description || "",                     "brand": {                       "@type": "Brand",                       "name": deal.brand || ""                     },                     "offers": {                       "@type": "Offer",                       "priceCurrency": isoCurrency,                       "price": deal.rawPrice || 0,                       "url": rewrittenLink,                       "seller": {                         "@type": "Organization",                         "name": deal.merchant || ""                       }                     }                   }                 };              }).filter(item => item.item.name)            };            jsonLdScript.textContent = JSON.stringify(jsonLdData);          } catch(e) { console.warn("JSON-LD generation failed", e); }                    let gridWrapper = this.grid.parentElement;          if (gridWrapper && gridWrapper.classList.contains('tg-df-grid-wrapper')) {             let rightChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-right');             let leftChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-left');             if (this.getViewMode() === 'carousel') {                 // The observer set up in setupScrollListeners handles visibility.                 if (rightChevron) rightChevron.style.display = 'flex';                 if (leftChevron) leftChevron.style.display = 'none'; // reset correctly             } else {                 if (rightChevron) rightChevron.style.display = 'none';                 if (leftChevron) leftChevron.style.display = 'none';             }          }                    const loadMoreBtn = this.grid.querySelector('.tg-df-load-more');          if (loadMoreBtn) {            loadMoreBtn.addEventListener('click', async () => {              if (typeof trackElementInteraction === 'function') {                trackElementInteraction({ id: 'load-more', name: 'Load more', label: 'Load More Results' });              }              if (displayDeals.length <= this.displayLimit) {                 loadMoreBtn.innerHTML = `                  <svg class="tg-df-spinner" style="width: 16px; height: 16px; display: inline-block; vertical-align: middle; margin-right: 8px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83"/></svg>                  Loading...                 `;                 loadMoreBtn.disabled = true;                 await this.fetchDeals(this.currentQuery, true);              } else {                 this.displayLimit += ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12);                 this.render();              }            });          }                      this.bindCouponButtons();            this.checkAndUpdateCoupons();                        // Allow hawklinks.js to discover and rewrite our widget links             // by appending the .article-body class and manually triggering processArticle.            let container = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (container && !container.classList.contains('article-body')) {               container.classList.add('article-body');            }            setTimeout(() => {               if (this.grid && !this.grid.classList.contains('article-body')) this.grid.classList.add('article-body');            if (!this.processArticleFired) {                  this.processArticleFired = true;                  document.dispatchEvent(new CustomEvent('processArticle', { detail: { element: this.root } }));               }            }, 50);          } catch(e) {            console.warn("Widget render error", e);          }        }                async checkAndUpdateCoupons() {          const wrappers = Array.from(this.root.querySelectorAll('.tg-df-coupon-wrapper'));          if (wrappers.length === 0) return;                    const merchants = [...new Set(wrappers.map(w => w.getAttribute('data-merchant')).filter(Boolean))];          if (merchants.length === 0) return;          const couponResultsMap = await this.checkMerchantsCouponsBulk(merchants);                    for (const merchant of merchants) {            const hasCoupons = !!couponResultsMap[merchant];            const merchantWrappers = wrappers.filter(w => w.getAttribute('data-merchant') === merchant);            merchantWrappers.forEach(wrapper => {              const spinner = wrapper.querySelector('.tg-df-coupon-spinner');              const btn = wrapper.querySelector('.tg-df-tag-coupons');                            if (spinner) spinner.style.display = 'none';                            if (hasCoupons && btn) {                btn.style.display = 'inline-flex';              } else if (!hasCoupons) {                wrapper.style.display = 'none';              }            });          }        }        updateFloatingCopyBar() {          if (!this.editorBar || !this.editorSelectedCount) return;          if (this.editorMode && this.selectedDeals.size > 0) {            this.editorBar.style.display = 'flex';            this.editorSelectedCount.innerText = this.selectedDeals.size;          } else {            this.editorBar.style.display = 'none';          }        }        async copySelectedDealsToCMS() {           function htmlToSlate(htmlString) {              if (!htmlString) return [{ type: 'paragraph', children: [{ text: '' }] }];              let doc;              if (typeof window !== 'undefined' && window.DOMParser) {                 doc = new DOMParser().parseFromString(htmlString, 'text/html');              } else {                 doc = document.implementation.createHTMLDocument('');                 doc.body.innerHTML = htmlString;              }                            function parseNode(node, marks = {}) {                  if (node.nodeType === 3) {                      const text = node.textContent;                      if (!text) return null;                      return { text: text, ...marks };                  }                  if (node.nodeType === 1) {                      const tagName = node.tagName.toLowerCase();                      if (tagName === 'br') {                          return { type: 'line-break', children: [{ text: '' }] };                      }                      if (tagName === 'p') {                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return { type: 'paragraph', children };                      }                      if (tagName === 'strong' || tagName === 'b') {                          const newMarks = { ...marks, bold: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'em' || tagName === 'i') {                          const newMarks = { ...marks, italic: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'a') {                          const href = node.getAttribute('href') || '';                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return {                              type: 'link',                              url: href,                              isNoFollow: (node.getAttribute('rel') || '').includes('nofollow'),                              isSponsored: (node.getAttribute('rel') || '').includes('sponsored'),                              isOpenNewTab: node.getAttribute('target') === '_blank',                              isPreventDataRewrite: false,                              children: children                          };                      }                      return Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                  }                  return null;              }                            let blocksArray = [];              let currentParagraphChildren = [];              function flushParagraph() {                  if (currentParagraphChildren.length > 0) {                      blocksArray.push({ type: 'paragraph', children: currentParagraphChildren });                      currentParagraphChildren = [];                  }              }              Array.from(doc.body.childNodes).forEach(node => {                  const parsed = parseNode(node, {});                  const parsedItems = Array.isArray(parsed) ? parsed : (parsed ? [parsed] : []);                  parsedItems.forEach(item => {                      if (item.type === 'paragraph') {                          flushParagraph();                          blocksArray.push(item);                      } else {                          currentParagraphChildren.push(item);                      }                  });              });              flushParagraph();              if (blocksArray.length === 0) {                  blocksArray = [{ type: 'paragraph', children: [{ text: '' }] }];              }              return blocksArray;           }           const blocks = [];                      this.editorCopyBtn.innerHTML = '\x3Cspan class="tg-df-coupon-spinner" style="display:inline-block; margin-right:8px; border-top-color:#fff;">' + '<' + '/span> Copying...';           for (const deal of Array.from(this.selectedDeals.values())) {              const url = deal.url;              const merchant = deal.merchant;              const title = deal.title;              const image = deal.image;              const currentPrice = deal.currency + deal.rawPrice;              const wasPrice = deal.hasWasPrice && deal.rawMsrp > deal.rawPrice ? deal.currency + deal.rawMsrp : '';                            let couponsChildren = [];              try {                  const area = this.getAreaCode();                  const apiUrl = new URL('https://search-api.fie.future.net.uk/widget.php');                  apiUrl.searchParams.append('model_name', 'Everything');                  apiUrl.searchParams.append('language', 'en-GB');                  apiUrl.searchParams.append('area', area);                  apiUrl.searchParams.append('combine_product_types', '1');                  apiUrl.searchParams.append('filter_merchant_name', merchant);                  apiUrl.searchParams.append('all_filters', 'false');                  apiUrl.searchParams.append('exclude_unlabelled', 'false');                  apiUrl.searchParams.append('include_specs', 'false');                  apiUrl.searchParams.append('sort', 'voucher');                  apiUrl.searchParams.append('distinct_merchants', 'natural');                  apiUrl.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');                  apiUrl.searchParams.append('rows', '3');                  apiUrl.searchParams.append('origin', 'widgets-clientside');                                    let res; try { res = await fetch(apiUrl.toString()); } catch (e) { return; }                  if (res.ok) {                      const data = await res.json();                      let offers = [];                      if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {                        offers = data.widget.data.offers;                      } else if (data && data.data && Array.isArray(data.data.offers)) {                        offers = data.data.offers;                      }                                            if (offers.length > 0) {                          couponsChildren.push({ text: "Also check out these coupons: ", bold: true });                          offers.slice(0, 3).forEach((offer, idx) => {                              const actualOffer = offer.offer || offer;                              const offerName = actualOffer.name || actualOffer.title || offer.model_name || offer.title || offer.name || 'Coupon';                              const linkUrl = actualOffer.link || actualOffer.url || actualOffer.offer_link || '#';                              couponsChildren.push({ type: "line-break", children: [{ text: "" }] });                              couponsChildren.push({ text: "🎟️ " });                              couponsChildren.push({                                  type: "link",                                  url: linkUrl,                                  isNoFollow: true,                                  isSponsored: false,                                  isOpenNewTab: true,                                  isPreventDataRewrite: false,                                  children: [{ text: offerName, bold: true }]                              });                          });                      }                  }              } catch (err) {                  console.warn('Failed to fetch coupons for', merchant, err);              }              let descriptionValue = [];              if (deal.text) {                 descriptionValue = htmlToSlate(deal.text);              } else {                 const dealDescriptions = [                   `Don't miss out on this fantastic deal for the ${title}. It is currently available at ${merchant} for a highly competitive price.`,                   `We've spotted an excellent price drop on the ${title}. Grab it now at ${merchant} before it's gone.`,                   `The ${title} is currently seeing a generous discount over at ${merchant}. This is a perfect time to buy if you've been holding out.`,                   `If you're in the market for the ${title}, ${merchant} has just the deal for you.`,                   `Score the ${title} for less at ${merchant} right now. This is a rare chance to save big.`,                   `Upgrade your setup with the ${title}, now available at a stellar price via ${merchant}.`                 ];                 const randomDescription = dealDescriptions[Math.floor(Math.random() * dealDescriptions.length)];                 descriptionValue = [                    { type: "paragraph", children: [{ text: randomDescription }] }                 ];              }                            if (couponsChildren.length > 0) {                 let lastBlock = descriptionValue[descriptionValue.length - 1];                 if (lastBlock && lastBlock.type === 'paragraph') {                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ text: "Also check out these coupons: ", bold: true });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children = lastBlock.children.concat(couponsChildren);                 } else {                     descriptionValue.push({                         type: "paragraph",                         children: [                             { type: "line-break", children: [{ text: "" }] },                             { type: "line-break", children: [{ text: "" }] },                             { text: "Also check out these coupons: ", bold: true },                             { type: "line-break", children: [{ text: "" }] },                             ...couponsChildren                         ]                     });                 }              }              function normalizeCurrencyToISO(symbol) {                const map = { '£': 'GBP', '$': 'USD', 'A$': 'AUD', 'CA$': 'CAD', '€': 'EUR' };                return map[symbol] || symbol;              }              const isoCurrency = normalizeCurrencyToISO(deal.currency);              blocks.push({                 id: (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'cms-' + Date.now() + Math.random(),                 blockTypeName: "deal",                 excludeFrom: [],                 collapsible: false,                 props: {                    description: {                       value: descriptionValue,                       touched: false,                       validationMessage: ""                    },                    image: {                       value: {                          credit: [{ type: "paragraph", children: [{ text: merchant }] }],                          dateCreated: Date.now(),                          dateModified: Date.now(),                          distribution: [],                          fileSize: 0,                          height: 1000,                          id: deal.id,                          imageRights: "",                          src: image,                          name: title + ".jpg",                          tags: [],                          width: 1000                       },                       touched: false,                       validationMessage: ""                    },                    showDealButton: { value: true, touched: false, validationMessage: "" },                    isPreferredPartner: { value: false, touched: false, validationMessage: "" },                    linkHref: { value: url, touched: false, validationMessage: "" },                    linkLabel: { value: "", touched: false, validationMessage: "" },                    linkIsNoFollow: { value: true, touched: false, validationMessage: "" },                    linkIsSponsored: { value: false, touched: false, validationMessage: "" },                    linkIsOpenNewWindow: { value: true, touched: false, validationMessage: "" },                    customPromoFlags: { value: [], touched: false, validationMessage: "" },                    showStarDeal: { value: false, touched: false, validationMessage: "" },                    savingType: { value: "none", touched: false, validationMessage: "" },                    starDealPromoFlag: { value: "", touched: false, validationMessage: "" },                    showEditorsChoice: { value: false, touched: false, validationMessage: "" },                    editorsChoiceTitle: { value: "", touched: false, validationMessage: "" },                    hawkPriceCurrency: { value: { value: isoCurrency, label: isoCurrency }, touched: false, validationMessage: "" },                    hawkPrice: { value: deal.hasWasPrice ? String(deal.rawMsrp) : String(deal.rawPrice), touched: false, validationMessage: "" },                    hawkSalePrice: { value: String(deal.rawPrice), touched: false, validationMessage: "" },                    lastCheckedPriceDate: { value: "", touched: false, validationMessage: "" },                    hawkModel: { touched: false, validationMessage: "" },                    productId: { value: "", touched: false, validationMessage: "" },                    voucherId: { value: "", touched: false, validationMessage: "" },                    brand: { value: deal.brand || merchant, touched: false, validationMessage: "" },                    productName: { value: title, touched: false, validationMessage: "" },                    label: { value: "", touched: false, validationMessage: "" },                    retailer: { value: merchant, touched: false, validationMessage: "" },                    priceCheckError: false                 },                 failedFetchError: ""              });           }           const payload = {              type: "articleBuilderPages",              data: blocks           };           const jsonStr = JSON.stringify(payload);                      if (navigator.clipboard && navigator.clipboard.writeText) {              navigator.clipboard.writeText(jsonStr).then(() => {                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              }).catch(err => {                 console.warn('Failed to copy text: ', err);                 alert('Failed to copy deals to clipboard. See console.');              });           } else {              // Fallback              const textArea = document.createElement("textarea");              textArea.value = jsonStr;              document.body.appendChild(textArea);              textArea.focus();              textArea.select();              try {                 document.execCommand('copy');                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              } catch (err) {                 console.warn('Fallback: Oops, unable to copy', err);                 alert('Fallback: Failed to copy deals to clipboard.');              }              document.body.removeChild(textArea);           }        }      }      // Initialize the Widget      if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', () => new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer }));      } else {        new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer });      }    })();  </script></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/tablets/i-love-this-massive-14-inch-tablet-with-a-paper-like-display-and-its-usd100-off-right-now</link>
                                                                            <description>
                            <![CDATA[ The TCL NXTPAPER 14 straddles the line between a giant tablet and a portable monitor, and it even comes with a case and a stylus in the box. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">f9x2APe3ud7AeeMav4KjV7</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/pa6UCBh4AgicZgPqcCQvxD-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 03 Jul 2026 04:45:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Tablets]]></category>
                                                    <category><![CDATA[E-Readers]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                                                                <author><![CDATA[ anthony.spadafora@futurenet.com (Anthony Spadafora) ]]></author>                    <dc:creator><![CDATA[ Anthony Spadafora ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/z73LEoj7FkUjNG85GcWHtH.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Anthony Spadafora is the managing editor for security and home office furniture at Tom’s Guide where he covers everything from data breaches and malware to password managers and the best way to cover your whole home or business with a strong Wi-Fi signal.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Before joining the team, he spent three years covering cybersecurity and B2B tech for ITProPortal while living in South Korea. After moving back to the US. Anthony joined the TechRadar Pro team where he covered these topics along with VPNs, web hosting, online collaboration software and video conferencing for four years. Anthony also has his ears to the ground and is on the lookout for the next major cyberattack or data breach.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Based in Houston, Texas, Anthony also handles VPN testing for both Tom’s Guide and TechRadar. As someone who has worked from home exclusively since 2018, he has reviewed dozens of standing desks as well as office chairs and has taken a closer look at other essential remote working accessories. As part of these reviews, Anthony frequently builds intricate desk setups which is why he’s such a big advocate for cable management and keeping things organized. When he’s not writing, he can be found tinkering with PCs and game consoles, managing cables and making upgrades to his smart home.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/pa6UCBh4AgicZgPqcCQvxD-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The TCL NXTPAPER 14 in hand with a Tom&#039;s Guide Savings Squad badge]]></media:description>                                                            <media:text><![CDATA[The TCL NXTPAPER 14 in hand with a Tom&#039;s Guide Savings Squad badge]]></media:text>
                                <media:title type="plain"><![CDATA[The TCL NXTPAPER 14 in hand with a Tom&#039;s Guide Savings Squad badge]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/pa6UCBh4AgicZgPqcCQvxD-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>As smartphones have gotten bigger and bigger, you might find yourself wondering if you even need a tablet anymore. With a standard 10-inch tablet, you’re not really getting that much more screen real estate, but that couldn’t be further from the truth with the <a href="https://www.tomsguide.com/computing/android-tablets/i-thought-smaller-was-better-until-i-tried-a-massive-14-inch-tablet-that-feels-like-a-clipboard">TCL NXTPAPER 14</a>.</p><p>It sports a massive 14.3-inch display, and when turned sideways to watch a movie or a TV show, the device feels more like a portable monitor than a tablet. Then in portrait mode, I really felt like I was holding a clipboard in my hand in the best kind of way.</p><p>What really sets the TCL NXTPAPER 14 apart from the <a href="https://www.tomsguide.com/best-picks/best-ipad">best iPads</a> and other tablets though is its display. With the push of a button on the side, you can switch between three viewing modes: Regular Mode, Color Paper Mode and Ink Paper Mode.</p><div class="product"><a data-dimension112="f1d5710b-c91d-4f39-8cb8-a2e8af8170c7" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$369" href="https://www.amazon.com/dp/B0H1BHF57W?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1479px;"><p class="vanilla-image-block" style="padding-top:78.23%;"><img id="RieyhMD4q8Qys2uDrwLwWP" name="NXTPAPER 14" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/RieyhMD4q8Qys2uDrwLwWP.jpg" mos="" align="middle" fullscreen="" width="1479" height="1157" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0H1BHF57W?th=1" target="_blank" rel="nofollow" data-dimension112="f1d5710b-c91d-4f39-8cb8-a2e8af8170c7" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$369">NXTPAPER 14: was $469 now $369</a></strong><br>This tablet comes equipped with a massive 14.3-inch, 2.4k display that gives you plenty of screen space for both reading and drawing. It comes equipped with TCL’s NXTPAPER 3.0 tech but I found it works just as well as the newer version for the most part. You get 256GB of storage, 8GB of RAM and the best part, an equally massive 10,000 mAh battery which also features fast and reverse charging. It too comes with a stylus and a case included.<a class="view-deal button" href="https://www.amazon.com/dp/B0H1BHF57W?th=1" target="_blank" rel="nofollow" data-dimension112="f1d5710b-c91d-4f39-8cb8-a2e8af8170c7" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$369">View Deal</a></p></div><p>With Ink Paper Mode enabled, the NXTPAPER 14 transforms from a standard Android tablet into a black and white slate that offers a reading experience on par with one of the <a href="https://www.tomsguide.com/us/best-e-readers,review-2766.html">best Kindles</a> but supersized. Doing so also helps save battery life, but with a 10,000 mAh battery under the hood, finding a charger isn’t something you’re going to have to worry about all that often.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4caKnqvmwpxm2BsxmTsFtZ" name="TCL NXTPAPER 14--2" alt="The TCL NXTPAPER 14 in its case open on a desk" src="https://cdn.mos.cms.futurecdn.net/4caKnqvmwpxm2BsxmTsFtZ.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Having tried both the NXTPAPER 14 and the smaller yet more powerful <a href="https://www.tomsguide.com/computing/tablets/i-tried-the-tcl-nxtpaper-11-plus-and-this-budget-tablet-is-easily-my-ipad-killer-heres-why">NXTPAPER 11 Plus</a>, one thing I really like about TCL’s unique tablets is that they come with a case and a stylus right in the box. You don’t get a screen protector, but I wouldn’t use one with a NXTPAPER device anyways since their matte displays feel great under your fingertips. The stylus recharges via USB-C and attaches to the included case magnetically so you don’t have to worry about misplacing it. </p><h2 id="not-the-only-nxtpaper">Not the only NXTPAPER</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8ub6waqHVABVdMPSrbbDhZ" name="TCL NXTPAPER 11 Plus-4" alt="The TCL NXTPAPER 50 XE, the TCL NXTPAPER 11 Plus and the TCL NXTPAPER 14 side by side on a desk with each device showing a different display mode of TCL's NXTPAPER tech" src="https://cdn.mos.cms.futurecdn.net/8ub6waqHVABVdMPSrbbDhZ.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If you haven’t figured it out by now, this super-sized tablet is part of TCL’s wider NXTPAPER ecosystem. Sure, there are other NXTPAPER tablets, but there are also smartphones that come equipped with this same display tech to make reading a lot easier on your eyes. At the same time, you also won’t have to worry about glare when you’re outside since their matte screens aren’t reflective at all.</p><p>If the NXTPAPER 14 is a bit too big for your hands — or your use case — don’t worry, as you can still find plenty of great deals on the rest of TCL’s NXTPAPER devices right now.</p><h3 class="article-body__section" id="section-quick-links"><span>Quick Links</span></h3><ul><li><strong>TCL NXTPAPER 11 Gen 2: </strong><a href="https://www.amazon.com/gp/aw/d/B0H2HFT4KP" target="_blank" rel="nofollow"><strong>was $249 now $179 @ Amazon</strong></a><strong></strong></li><li><strong>TCL NXTPAPER 60 XE: </strong><a href="https://www.amazon.com/gp/aw/d/B0H2HM8MY5" target="_blank" rel="nofollow"><strong>was $284 now $229 @ Amazon</strong></a><strong></strong></li><li><strong>TCL NXTPAPER 11 Plus: </strong><a href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow"><strong>was $369 now $259 @ Amazon</strong></a><strong></strong></li><li><strong>TCL NXTPAPER 70 Pro: </strong><a href="https://www.amazon.com/TCL-NXTPAPER-Android-Unlocked-Storage/dp/B0GY3MJH6T?th=1" target="_blank" rel="nofollow"><strong>was $329 now $299 @ Amazon</strong></a><strong></strong></li><li><strong>TCL NXTPAPER 14: </strong><a href="https://www.amazon.com/gp/aw/d/B0FLP554CZ" target="_blank" rel="nofollow"><strong>was $469 now $369 @ Amazon</strong></a><strong></strong></li><li><strong>TCL Note A1: </strong><a href="https://www.amazon.com/TCL-NXTPAPER-Notebook-Paper-Like-Creativity/dp/B0H5K8NBZS" target="_blank" rel="nofollow"><strong>was $599 now $549 @ Amazon</strong></a></li></ul><h3 class="article-body__section" id="section-nxtpaper-tablet-and-phone-deals"><span>NXTPAPER tablet and phone deals</span></h3><div class="product"><a data-dimension112="220b5af4-6eaa-4770-a274-98a782b060c3" data-action="Deal Block" data-label="NXTPAPER 11 Gen 2" data-dimension48="NXTPAPER 11 Gen 2" data-dimension25="$179" href="https://www.amazon.com/gp/aw/d/B0H2HFT4KP" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1417px;"><p class="vanilla-image-block" style="padding-top:83.63%;"><img id="suZwzwtqgKWXxsHid5XdRM" name="NXTPAPER 11 Gen 2" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/suZwzwtqgKWXxsHid5XdRM.jpg" mos="" align="middle" fullscreen="" width="1417" height="1185" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/gp/aw/d/B0H2HFT4KP" target="_blank" rel="nofollow" data-dimension112="220b5af4-6eaa-4770-a274-98a782b060c3" data-action="Deal Block" data-label="NXTPAPER 11 Gen 2" data-dimension48="NXTPAPER 11 Gen 2" data-dimension25="$179">NXTPAPER 11 Gen 2: was $249 now $179</a></strong><br>This 11-inch tablet comes with 6GB of RAM, 64GB of storage, an 8,000 mAh battery and runs Android 15. It features TCL’s NXTPAPER 4.0 tech so you can switch from full color to color paper or black and white. You also get a stylus with over 4,000 pressure levels which is great for drawing and note taking. Likewise, you don’t have to worry about picking up a case as one comes in the box. You can even expand its storage further with a microSD card.<a class="view-deal button" href="https://www.amazon.com/gp/aw/d/B0H2HFT4KP" target="_blank" rel="nofollow" data-dimension112="220b5af4-6eaa-4770-a274-98a782b060c3" data-action="Deal Block" data-label="NXTPAPER 11 Gen 2" data-dimension48="NXTPAPER 11 Gen 2" data-dimension25="$179">View Deal</a></p></div><div class="product"><a data-dimension112="5aaf7136-3341-45d7-9747-17efe09240a8" data-action="Deal Block" data-label="NXTPAPER 60 XE (256GB)" data-dimension48="NXTPAPER 60 XE (256GB)" data-dimension25="$229" href="https://www.amazon.com/gp/aw/d/B0H2HM8MY5" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1072px;"><p class="vanilla-image-block" style="padding-top:139.93%;"><img id="F89B7Cm9aCaJumnYJUUCtQ" name="NXTPAPER 60 XE (256GB)" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/F89B7Cm9aCaJumnYJUUCtQ.jpg" mos="" align="middle" fullscreen="" width="1072" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/gp/aw/d/B0H2HM8MY5" target="_blank" rel="nofollow" data-dimension112="5aaf7136-3341-45d7-9747-17efe09240a8" data-action="Deal Block" data-label="NXTPAPER 60 XE (256GB)" data-dimension48="NXTPAPER 60 XE (256GB)" data-dimension25="$229">NXTPAPER 60 XE (256GB): was $284 now $229</a></strong><br>This 6.8-inch budget smartphone is available with either 128GB or 256GB of storage. It features a 120 Hz refresh rate with TCL’s NXTPAPER tech built in and a 5,010 mAh battery. While it doesn’t have wireless charging, you do get 18W fast charging along with 8GB of RAM.<a class="view-deal button" href="https://www.amazon.com/gp/aw/d/B0H2HM8MY5" target="_blank" rel="nofollow" data-dimension112="5aaf7136-3341-45d7-9747-17efe09240a8" data-action="Deal Block" data-label="NXTPAPER 60 XE (256GB)" data-dimension48="NXTPAPER 60 XE (256GB)" data-dimension25="$229">View Deal</a></p></div><div class="product"><a data-dimension112="76c61ac5-71db-4b1b-b8cc-eee223e7bb8f" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$259" href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1376px;"><p class="vanilla-image-block" style="padding-top:86.70%;"><img id="2rmQkEzhXCeVzcYeLEFNn9" name="NXTPAPER 11 Plus" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/2rmQkEzhXCeVzcYeLEFNn9.jpg" mos="" align="middle" fullscreen="" width="1376" height="1193" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow" data-dimension112="76c61ac5-71db-4b1b-b8cc-eee223e7bb8f" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$259">NXTPAPER 11 Plus: was $369 now $259</a></strong><br>This 11-inch tablet feels snappier thanks to its upgraded processor, 120 Hz display and 8GB of RAM. It comes with 256GB of storage and an 8,000 mAh battery which you can quickly recharge thanks to 33W fast charging. You also get a stylus and case in the box too. If you have the budget, I’d recommend spending a bit more on this tablet over the NXTPAPER 11 Gen 2 for a smoother overall experience.<a class="view-deal button" href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow" data-dimension112="76c61ac5-71db-4b1b-b8cc-eee223e7bb8f" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$259">View Deal</a></p></div><div class="product"><a data-dimension112="0a957cd6-a887-453e-9bd0-e4fbccfaa060" data-action="Deal Block" data-label="NXTPAPER 70 Pro" data-dimension48="NXTPAPER 70 Pro" data-dimension25="$299" href="https://www.amazon.com/TCL-NXTPAPER-Android-Unlocked-Storage/dp/B0GY3MJH6T?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:911px;"><p class="vanilla-image-block" style="padding-top:164.65%;"><img id="tEgz5smm36XbYoMrGR8Jab" name="NXTPAPER 70 Pro" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/tEgz5smm36XbYoMrGR8Jab.jpg" mos="" align="middle" fullscreen="" width="911" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>This upgraded smartphone is available with 128GB, 256GB or 512GB of storage, though you can add more via its microSD card slot. It has a slightly larger 6.9-inch display, faster Wi-Fi 6E connectivity and comes with TCL’s NXTPAPER 4.0- tech. The NXTPAPER 70 Pro also has faster 33W fast charging and while you don’t get a charger in the box, it does come with a case.<a class="view-deal button" href="https://www.amazon.com/TCL-NXTPAPER-Android-Unlocked-Storage/dp/B0GY3MJH6T?th=1" target="_blank" rel="nofollow" data-dimension112="0a957cd6-a887-453e-9bd0-e4fbccfaa060" data-action="Deal Block" data-label="NXTPAPER 70 Pro" data-dimension48="NXTPAPER 70 Pro" data-dimension25="$299">View Deal</a></p></div><div class="product"><a data-dimension112="fd32677c-e6c5-4459-aa38-bba7157b29de" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$369" href="https://www.amazon.com/dp/B0H1BHF57W?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1479px;"><p class="vanilla-image-block" style="padding-top:78.23%;"><img id="RieyhMD4q8Qys2uDrwLwWP" name="NXTPAPER 14" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/RieyhMD4q8Qys2uDrwLwWP.jpg" mos="" align="middle" fullscreen="" width="1479" height="1157" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0H1BHF57W?th=1" target="_blank" rel="nofollow" data-dimension112="fd32677c-e6c5-4459-aa38-bba7157b29de" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$369">NXTPAPER 14: was $469 now $369</a></strong><br>This tablet comes equipped with a massive 14.3-inch, 2.4k display that gives you plenty of screen space for both reading and drawing. It comes equipped with TCL’s NXTPAPER 3.0 tech but I found it works just as well as the newer version for the most part. You get 256GB of storage, 8GB of RAM and the best part, an equally massive 10,000 mAh battery which also features fast and reverse charging. It too comes with a stylus and a case included.<a class="view-deal button" href="https://www.amazon.com/dp/B0H1BHF57W?th=1" target="_blank" rel="nofollow" data-dimension112="fd32677c-e6c5-4459-aa38-bba7157b29de" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$369">View Deal</a></p></div><div class="product"><a data-dimension112="2de1db10-636d-46e0-9850-b3f6b66c8f3e" data-action="Deal Block" data-label="Note A1" data-dimension48="Note A1" data-dimension25="$549" href="https://www.amazon.com/TCL-NXTPAPER-Notebook-Paper-Like-Creativity/dp/B0H5K8NBZS" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:71.80%;"><img id="jfCsVsX5bNYT4AHmsneJQc" name="Note A1" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/jfCsVsX5bNYT4AHmsneJQc.jpg" mos="" align="middle" fullscreen="" width="1500" height="1077" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/TCL-NXTPAPER-Notebook-Paper-Like-Creativity/dp/B0H5K8NBZS" target="_blank" rel="nofollow" data-dimension112="2de1db10-636d-46e0-9850-b3f6b66c8f3e" data-action="Deal Block" data-label="Note A1" data-dimension48="Note A1" data-dimension25="$549">Note A1: was $599 now $549</a></strong><br>This productivity-focused device is a bit different than the rest as it’s more like a digital notebook than a traditional tablet. It features an 11.5-inch, 2.2K display with a 120 Hz refresh rate. Given it’s made for drawing and taking notes, you get TCL’s T-Pen Pro with 8,192 pressure sensitivity as opposed to the standard styluses you get with the rest of its NXTPAPER tablets. To keep all your notes and ideas organized, it comes pre-loaded with AI apps which can turn your scribbling into clean, editable text. <a class="view-deal button" href="https://www.amazon.com/TCL-NXTPAPER-Notebook-Paper-Like-Creativity/dp/B0H5K8NBZS" target="_blank" rel="nofollow" data-dimension112="2de1db10-636d-46e0-9850-b3f6b66c8f3e" data-action="Deal Block" data-label="Note A1" data-dimension48="Note A1" data-dimension25="$549">View Deal</a></p></div><div class="vizualizer-embed"><div class="tg-df-widget-host" data-widget-config="?search=tablets&brands=Amazon%2CApple%2CGoogle%2CLenovo%2CSamsung%2CTCL&price=165_&min_discount_ratio=0.95&sort=best_match&retailer=Amazon&widget_title=Top+Deals+Handpicked+by+Our+Editors&widget_subtitle=Discover+the+best+discounts+currently+available%2C+curated+daily+by+the+Tom%27s+Guide+Savings+Squad.&bg_color=transparent" data-vizualizer-embed="true"></div>    <script>    /**     * Tom's Guide Deals Finder - Vanilla JS Encapsulated Engine     */    (function() {      // --- Freyr Analytics Adapter ---      function initAnalytics() {        window.dataLayer = window.dataLayer || [];        window.googletag = window.googletag || {};        window.googletag.cmd = window.googletag.cmd || [];        window.hawk = window.hawk || { analytics: { freyr: [] } };        window.hawk.analytics = window.hawk.analytics || { freyr: [] };        window.hawk.analytics.freyr = window.hawk.analytics.freyr || [];        window.freyr = window.freyr || { cmd: [] };        const scriptSrc = 'https://freyr.futurecdn.net/freyr.js';        const hostname = typeof window !== 'undefined' ? window.location.hostname : '';        const isTestEnv = typeof window.navigator !== 'undefined' && (window.navigator.webdriver || window.navigator.userAgent.includes('Headless'));        const shouldSendRealAnalytics = !isTestEnv && hostname && hostname !== 'localhost' && hostname !== '127.0.0.1' && !hostname.includes('run.app');        if (shouldSendRealAnalytics && !document.querySelector(`script[src="${scriptSrc}"]`)) {          const script = document.createElement('script');          script.src = scriptSrc;          script.async = true;          document.head.appendChild(script);        }      }      function storeEventForDebug(name, data) {        if (!window.hawk || !window.hawk.analytics || !window.hawk.analytics.freyr) return;        window.hawk.analytics.freyr.push({ name, data });        try {          if (typeof window !== 'undefined' && window.localStorage) {            window.localStorage.setItem("hawk", JSON.stringify(window.hawk));          }        } catch (e) {          // Ignore storage issues        }        try {          window.dispatchEvent(new CustomEvent("hawk-analytics-update"));        } catch (e) {}      }      function sendToFreyr(eventName, data) {        if (typeof window === 'undefined') return;        window.freyr = window.freyr || { cmd: [] };        window.freyr.cmd.push(() => {          if (window.freyr && window.freyr.pushAndUpdate) {            window.freyr.pushAndUpdate(eventName, data);          }        });      }      function sendEvent(event, skip = false) {        try {          storeEventForDebug(event.name, event.data);          if (!skip) {            sendToFreyr(event.name, event.data);          }        } catch (e) {          // Ensure tracking errors don't surface to the user        }      }      function getCookie(name) {        try {          const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));          return match ? match[2] : null;        } catch (e) {          return null;        }      }      function normalizeCurrency(symbol) {        const map = {          '£': 'GBP',          '$': 'USD',          'A$': 'AUD',          'CA$': 'CAD',          '€': 'EUR'        };        return map[symbol] || symbol;      }      function trackElementInteraction(props) {        sendEvent({          name: 'elementInteraction',          data: {            element: {              action: props.action || "click",              id: props.id || undefined,              class: props.class || undefined,              name: props.name || undefined,              text: props.text || undefined,              label: props.label || undefined,              container: props.container || undefined,              url: props.url || undefined,              articleId: props.articleId || undefined            }          }        });      }      function generateRevenueId(url, productName, merchantName, modelId) {        const str = `${window.location.href}|${productName}|${merchantName}|${modelId || ''}|${new Date().toDateString()}|tomsguide`;        let hash = 0;        for (let i = 0; i < str.length; i++) {          const char = str.charCodeAt(i);          hash = ((hash << 5) - hash) + char;          hash = hash & hash;        }        let numericStr = Math.abs(hash).toString();        while (numericStr.length < 19) {          numericStr += Math.floor(Math.random() * 10).toString();        }        return numericStr.substring(0, 19);      }      function rewriteAffiliateLink(url, territory, revenueId) {        if (!url) return url;        const t = (territory || 'gb').toLowerCase();        return url.replace(/hawk-custom-tracking/g, `tomsguide-${t}-${revenueId}`);      }      function trackHawkEvent(params) {        const { clickType, widgetId, productCategoryName, product, productsArray, zeroBasedProductIndexOrNull, totalDealsOrProducts, areaClicked, merchant, revenueId, isoCurrencyCode, queryName, widgetTypeName } = params;        const data = {          event: "hawkEvent",          category: "Affiliates",          affiliate: {            action: {              type: clickType,              id: widgetId,              event: clickType === "appeared" ? "viewed" : "Click from",              timestamp: Date.now()            },            component: {              flag: "Editor",              product: productCategoryName || "deals",              category: `Signal Deal Finder ${widgetTypeName || "Carousel"} widget`,              type: clickType === "appeared" ? "review" : "signal product",              label: queryName || (product ? (product.name || "") : ""),              index: zeroBasedProductIndexOrNull === null || zeroBasedProductIndexOrNull === undefined ? -1 : zeroBasedProductIndexOrNull,              linkCount: totalDealsOrProducts || 0,              blockLayout: "",              areaClicked: areaClicked || ""            }          },          products: productsArray || (product && merchant ? [            {              product: {                primary: {                  id: product.id || product.matchId || null,                  name: product.name,                  type: "deal",                  price: product.price,                  previousPrice: product.previousPrice || null,                  currency: isoCurrencyCode || "USD",                  preorder: false,                  labels: [],                  link: product.link,                  originalLink: product.originalLink || null,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: null,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: product.globalId || null,                  inStock: product.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: isoCurrencyCode || "USD"                }              },              merchant: {                id: merchant.id || null,                name: merchant.name,                url: merchant.url || null,                network: merchant.network || null              },              model: {                id: product.modelId || null,                brand: product.brand || null,                name: product.name,                parent: product.parent || null              }            }          ] : []),          reviews: [],          _clear: true,          "gtm.uniqueEventId": Date.now() % 10000        };        sendEvent({ name: 'hawkEvent', data });      }      function trackDealClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card" });      }      function trackViewSimilarClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card View Similar" });      }      function trackPriceComparisonClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Price Comparison" });      }      function trackReviewClick(params) {        trackHawkEvent({ ...params, clickType: "review", areaClicked: "Signal Product Card Review Link" });      }      function trackShare(params) {        trackHawkEvent({ ...params, clickType: "share", areaClicked: "Signal Product Card Share" });      }      function trackDealsAppeared(widgetId, deals, revenueId, currency, queryName, widgetTypeName) {         if (!deals || deals.length === 0) return;                  const productsArray = deals.slice(0, 50).map((deal) => {            let voucherPct = null;            let rawPrice = parseFloat(deal.rawPrice) || parseFloat(deal.price) || null;            let rawMsrp = parseFloat(deal.rawMsrp) || parseFloat(deal.msrp) || null;            if (rawMsrp > rawPrice && rawPrice > 0) {              voucherPct = Math.round((1 - (rawPrice / rawMsrp)) * 100);            }            let numId = null;            if (deal.externalProductId && !isNaN(parseInt(deal.externalProductId))) {              numId = parseInt(deal.externalProductId);            } else if (deal.id && !isNaN(parseInt(deal.id))) {              numId = parseInt(deal.id);            } else {              numId = deal.matchId || null;            }            return {              product: {                primary: {                  id: numId,                  name: deal.productName || deal.title || "",                  type: "deal",                  price: rawPrice,                  previousPrice: rawMsrp,                  currency: currency || 'USD',                  preorder: false,                  labels: deal.modelBrand || deal.brand ? [                     { type: "brand", value: deal.modelBrand || deal.brand }                  ] : [],                  link: deal.url,                  originalLink: deal.url,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: voucherPct,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: deal.productKey || null,                  inStock: deal.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: currency || 'USD'                }              },              merchant: {                id: deal.merchantId ? parseInt(deal.merchantId) : null,                name: deal.merchant || "Retailer",                url: deal.merchantUrl || null,                network: deal.merchantNetwork || null              },              model: {                id: deal.modelId ? parseInt(deal.modelId) : null,                brand: deal.modelBrand || deal.brand || null,                name: deal.productName || deal.title || "",                parent: deal.modelParent || null              }            };         });                  trackHawkEvent({             clickType: "appeared",             widgetId: widgetId,             productCategoryName: "deals",             zeroBasedProductIndexOrNull: null,             totalDealsOrProducts: deals.length,             productsArray: productsArray,             queryName: queryName,             widgetTypeName: widgetTypeName         });      }      // 1. Setup Shadow DOM Sandbox      const currentScript = document.currentScript;      let hostContainer = null;      let template = null;            if (currentScript) {        let prev = currentScript.previousElementSibling;        while (prev) {          if (prev.tagName === 'TEMPLATE' && prev.classList.contains('tg-df-widget-template')) {            template = prev;          } else if (prev.tagName === 'DIV' && prev.classList.contains('tg-df-widget-host') && !prev.hasAttribute('data-initialized')) {            hostContainer = prev;            break;          }          prev = prev.previousElementSibling;        }      }            // Fallbacks in case script is deferred      if (!hostContainer) {        const hosts = document.querySelectorAll('.tg-df-widget-host:not([data-initialized])');        if (hosts.length > 0) hostContainer = hosts[0];      }            // Safely embedded template for CMS environments      const rawTemplate = `  \x3Cstyle>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with \`tg-df-\` to prevent CMS style leakage.    */    .tg-df-container {      container-type: inline-size;      container-name: tg-df;      --tg-df-blue: #1F69FF;      --tg-df-blue-hover: #004d8c;      --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: #1F69FF;    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters {      display: flex;      gap: 12px;      justify-content: center;      flex-wrap: wrap;    }    .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-price-input::-webkit-outer-spin-button,    .tg-df-price-input::-webkit-inner-spin-button {      -webkit-appearance: none;      margin: 0;    }    .tg-df-price-input {      -moz-appearance: textfield;    }    .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: 100%;      max-width: 200px;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges {      display: flex;      flex-wrap: wrap;      gap: 6px;      margin-bottom: 8px;    }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);      display: -webkit-box;      -webkit-line-clamp: 2;      -webkit-box-orient: vertical;      overflow: hidden;    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: 100%;      box-sizing: border-box;      background-color: #1f69ff;      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      background-color: #1555cc;    }    .tg-df-container .tg-df-card-cta.tg-df-cta-savings-squad {      background-color: #3c8d0d;    }    .tg-df-card:hover .tg-df-card-cta.tg-df-cta-savings-squad,    .tg-df-card-cta.tg-df-cta-savings-squad:hover {      background-color: #2b6509;    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 0;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-controls {        padding: 0 16px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }            .tg-df-filters {        width: calc(100% + 32px);        margin: 0 -16px;        padding: 0 16px 4px 16px;        display: flex;        justify-content: flex-start;        gap: 8px;        flex-wrap: nowrap;        overflow-x: auto;        -webkit-overflow-scrolling: touch;        scrollbar-width: none;      }      .tg-df-filters::after {        content: "";        display: block;        flex: 0 0 8px;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }            .tg-df-sort-wrapper {        flex: 0 0 max(42%, 130px);        min-width: 0;      }      .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 12px;        -webkit-line-clamp: 3;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        -webkit-line-clamp: 3;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 8px 16px;        font-size: 12px;        flex: 0 0 auto;        text-align: center;        white-space: normal;        line-height: 1.2;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }    .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: #1F69FF;          position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }    .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 16px;      text-align: center;      width: 100%;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }    .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;            scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }        .tg-df-container .tg-df-carousel-scroll-left,    .tg-df-container .tg-df-carousel-scroll-right {      position: absolute;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: #ffffff;      border: 1px solid #e2e8f0;      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);      color: #1F69FF;      cursor: pointer;      transition: all 0.2s;      margin-top: -4px;      z-index: 20;    }    .tg-df-container .tg-df-carousel-scroll-left { left: 8px; }    .tg-df-container .tg-df-carousel-scroll-right { right: 8px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left { left: 0px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right { right: 0px; }    .tg-df-carousel-filters-outer { margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }    @container tg-df (max-width: 599px) { .tg-df-carousel-filters-outer { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; } }        .tg-df-container .tg-df-carousel-scroll-left:hover,    .tg-df-container .tg-df-carousel-scroll-right:hover {      background-color: #f8fafc;      border-color: #cbd5e1;    }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right {      background-color: rgba(255, 255, 255, 0.4);      border: none;      box-shadow: none;      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right { right: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-right { right: 0; }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left:hover,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right:hover {      background-color: rgba(255, 255, 255, 0.6);      border: none;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-carousel-roundels::after {      content: "";      flex: 0 0 32px;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;      transition: font-weight 0.2s;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-label {      font-weight: 700;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }        .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;      display: inline-flex;      align-items: center;      justify-content: center;      min-height: 36px;      box-sizing: border-box;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn:hover {      background: #1e293b;      color: white;      border-color: #1e293b;    }    .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::after {      content: "";      flex: 0 0 32px;    }    .tg-df-grid-wrapper {      position: relative;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card {      flex: 0 0 auto;      width: 100px;      border-radius: 15px;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      border: 2px solid #1e293b;      background: white;      color: #1e293b;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      font-weight: 600;      font-size: 14px;      cursor: pointer;      padding: 16px;      text-align: center;      transition: all 0.2s;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card:hover {      background: #1e293b;      color: white;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      border-radius: 5px;      padding: 8px 10px;      margin-top: 4px;      background-color: #1F69FF;    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.45);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: block; }      .tg-df-container .hawk-deal-widget-image-container { display: block; float: left; margin: 0 16px 8px 0; width: 120px; max-width: 120px; height: auto; align-items: normal; justify-content: normal; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: block; text-align: left; }      .tg-df-container .hawk-deal-widget-footer { display: block; margin-top: 16px; clear: both; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; max-width: none !important; width: 100% !important; margin: 0 !important; }    }        .tg-df-container .hawk-affiliate-link-deal-button {       align-items: center; background-color: #5aaf0b; box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;     }    .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a9109; text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }  \x3C/style>  \x3C!-- Widget Container --\x3E  \x3Cdiv class="tg-df-container" id="signal-deals-finder-root">    \x3C!-- Editor Floating Bar --\x3E    \x3Cdiv class="tg-df-editor-bar" id="tg-df-editor-bar" style="display:none;">      \x3Cdiv class="tg-df-editor-bar-text" style="display: flex; align-items: center;">        \x3Cspan id="tg-df-selected-count">0\x3C/span>\x26nbsp;Deals Selected        \x3Cbutton class="tg-df-editor-clear-btn" id="tg-df-editor-clear" type="button" style="margin-left: 12px; font-size: 13px; color: #9ca3af; background: none; border: none; cursor: pointer; text-decoration: underline;">Clear All\x3C/button>      \x3C/div>      \x3Cbutton class="tg-df-editor-copy-btn" id="tg-df-editor-copy" type="button">        \x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">\x3C/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">\x3C/path>\x3C/svg>        Copy to CMS      \x3C/button>    \x3C/div>    \x3Cdiv class="tg-df-carousel-host" id="tg-df-carousel-host" style="display: none;">      \x3Cdiv class="tg-df-carousel-eyebrow">DEAL FINDER\x3C/div>      \x3Cdiv class="tg-df-carousel-query-title" id="tg-df-carousel-title-label">Best Deals\x3C/div>            \x3Cdiv class="tg-df-carousel-blue-box">        \x3Cdiv class="tg-df-carousel-bg-circle-1" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-2" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-3" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-box-content">          \x3Cdiv class="tg-df-countdown-wrapper" id="tg-df-countdown-wrapper" style="display:none;">            \x3Cdiv class="tg-df-countdown-title" id="tg-df-countdown-title">Prime Day starts in\x3C/div>            \x3Cdiv class="tg-df-countdown-blocks">              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-days">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">DAYS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-hrs">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">HRS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-min">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">MIN\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-sec">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">SEC\x3C/div>\x3C/div>            \x3C/div>          \x3C/div>          \x3Cdiv class="tg-df-carousel-box-eyebrow">DEAL FINDER\x3C/div>          \x3Cdiv class="tg-df-carousel-box-title">Find Deals Fast\x3C/div>          \x3Cdiv class="tg-df-carousel-box-subtitle">The latest deals from the biggest retailers, all in one place\x3C/div>                    \x3Cdiv class="tg-df-carousel-roundels-wrapper">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-roundels">            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>          \x3C/div>          \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-carousel-filters-outer" style="position: relative;">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-filters-wrap">                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="0">All\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_lightning">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_prime">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-d="10">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 10% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="15">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 15% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="25">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 25% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-pr="under50">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>            Under $50\x3C/button>        \x3C/div>        \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3C/div>    \x3C/div>    \x3C/div>      \x3C!-- Search & Filter Controls --\x3E    \x3Cdiv class="tg-df-controls" id="tg-df-controls" style="display:flex;">      \x3Cdiv class="tg-df-top-bar">        \x3Cdiv class="tg-df-search-wrapper">          \x3Cinput type="text" class="tg-df-search-input" placeholder="Search for deals, products, or brands...">          \x3Cbutton type="button" class="tg-df-search-btn" aria-label="Search">              \x3Csvg class="tg-df-search-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">                \x3Cpath d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>              \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-autocomplete-dropdown" id="tg-df-autocomplete">\x3C/div>        \x3C/div>                \x3Cdiv class="tg-df-settings-wrapper">          \x3Cbutton type="button" class="tg-df-settings-btn" aria-label="Settings" id="tg-df-settings-toggle">            \x3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20">                \x3Cpath d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.73 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .43-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.49-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>            \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-settings-dropdown-backdrop" id="tg-df-settings-backdrop">\x3C/div>          \x3Cdiv class="tg-df-settings-dropdown" id="tg-df-settings-panel">            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Search Region\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-region-select">                \x3Coption value="auto">🌍 Auto-detect\x3C/option>                \x3Coption value="US">🇺🇸 United States (US)\x3C/option>                \x3Coption value="GB">🇬🇧 United Kingdom (UK)\x3C/option>                \x3Coption value="CA">🇨🇦 Canada (CA)\x3C/option>                \x3Coption value="AU">🇦🇺 Australia (AU)\x3C/option>                \x3Coption value="DE">🇩🇪 Germany (DE)\x3C/option>                \x3Coption value="FR">🇫🇷 France (FR)\x3C/option>                \x3Coption value="IT">🇮🇹 Italy (IT)\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Retailer\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-retailer-select">                \x3Coption value="">All Retailers\x3C/option>                \x3Coption value="Amazon">Amazon\x3C/option>                \x3Coption value="Walmart">Walmart\x3C/option>                \x3Coption value="Best Buy">Best Buy\x3C/option>                \x3Coption value="Target">Target\x3C/option>                \x3Coption value="John Lewis">John Lewis\x3C/option>                \x3Coption value="Currys">Currys\x3C/option>                \x3Coption value="Argos">Argos\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Offer Type\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-offer-type-select">                \x3Coption value="">All Offers\x3C/option>                \x3Coption value="amazon_prime">Amazon Prime\x3C/option>                \x3Coption value="recommended_promo">Recommended Promo\x3C/option>                \x3Coption value="amazon_lightning">Amazon Lightning Deal\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Result Count\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-rows-select">                \x3Coption value="3">3 Items\x3C/option>                \x3Coption value="4">4 Items\x3C/option>                \x3Coption value="6">6 Items\x3C/option>                \x3Coption value="12" selected>12 Items\x3C/option>                \x3Coption value="24">24 Items\x3C/option>                \x3Coption value="48">48 Items\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Deal Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Only show products with active offers or previous prices (was_price)\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-deal-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Editor Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Enable multi-select to copy deals to CMS\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-editor-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">View Mode\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-view-mode-select">                \x3Coption value="auto">Auto Collection\x3C/option>                \x3Coption value="carousel">Carousel\x3C/option>                \x3Coption value="savings_squad">Savings Squad\x3C/option>                \x3Coption value="grid">Grid (Columns)\x3C/option>                \x3Coption value="row">Row (List)\x3C/option>              \x3C/select>            \x3C/div>          \x3C/div>        \x3C/div>      \x3C/div>      \x3Cdiv class="tg-df-filters">        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-category-filter-wrapper" style="display: none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-category-filter" aria-label="Category">            \x3Coption value="all">All Categories\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-multiselect-container" id="tg-df-brand-filter-wrapper" style="display:none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/>          \x3C/svg>          \x3Cdiv class="tg-df-filter-select tg-df-multiselect-trigger" id="tg-df-brand-trigger" tabindex="0">            Any Brand          \x3C/div>          \x3Cdiv class="tg-df-multiselect-dropdown" id="tg-df-brand-dropdown">            \x3C!-- Populated via script --\x3E          \x3C/div>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/>          \x3C/svg>          \x3Cselect class="tg-df-sort-select" aria-label="Sort Deals">            \x3Coption value="date_desc">Newest First\x3C/option>            \x3Coption value="best_match">Sort by: Match\x3C/option>            \x3Coption value="price_asc">Price Low to High\x3C/option>            \x3Coption value="price_desc">Price High to Low\x3C/option>            \x3Coption value="discount_desc">Biggest Discount\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-price-range-wrapper" id="tg-df-custom-price-wrapper" style="display: flex; align-items:center; justify-content:center; padding: 10px 20px; gap: 8px; border: 1px solid var(--tg-df-border); border-radius: 100px; background-color: var(--tg-df-bg);">          \x3Cspan style="font-size:14px; font-weight:500; color:var(--tg-df-text-primary);">Price\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-min" placeholder="Min" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">          \x3Cspan style="color:var(--tg-df-text-muted)">-\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-max" placeholder="Max" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices">            \x3Coption value="all">All Prices\x3C/option>            \x3Coption value="under50">Under $50\x3C/option>            \x3Coption value="50_100">$50 - $100\x3C/option>            \x3Coption value="100_200">$100 - $200\x3C/option>            \x3Coption value="200_500">$200 - $500\x3C/option>            \x3Coption value="over500">Over $500\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount">            \x3Coption value="all">Any discount\x3C/option>            \x3Coption value="5">Min 5%\x3C/option>            \x3Coption value="10">Min 10%\x3C/option>            \x3Coption value="15">Min 15%\x3C/option>            \x3Coption value="20">Min 20%\x3C/option>            \x3Coption value="25">Min 25%\x3C/option>            \x3Coption value="30">Min 30%\x3C/option>            \x3Coption value="40">Min 40%\x3C/option>            \x3Coption value="50">Min 50%\x3C/option>            \x3Coption value="60">Min 60%\x3C/option>            \x3Coption value="70">Min 70%\x3C/option>          \x3C/select>        \x3C/div>      \x3C/div>    \x3C/div>    \x3C!-- Deals Grid Wrapper --\x3E    \x3Cdiv class="tg-df-grid-wrapper tg-df-carousel-cards-wrapper" id="tg-df-grid-wrapper">      \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3Cdiv class="tg-df-grid" id="tg-df-grid">        \x3C!-- Content populated by JavaScript --\x3E      \x3C/div>      \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>    \x3C/div>        \x3C!-- Vouchers Modal --\x3E    \x3Cdiv class="tg-df-modal-backdrop" id="tg-df-vouchers-modal">      \x3Cdiv class="tg-df-modal">        \x3Cdiv class="tg-df-modal-header">          \x3Ch3 class="tg-df-modal-title" id="tg-df-vouchers-title">Available Coupons & Deals\x3C/h3>          \x3Cbutton class="tg-df-modal-close" id="tg-df-vouchers-close">            \x3Csvg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">              \x3Cline x1="18" y1="6" x2="6" y2="18">\x3C/line>              \x3Cline x1="6" y1="6" x2="18" y2="18">\x3C/line>            \x3C/svg>          \x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-modal-body" id="tg-df-vouchers-content">          \x3C!-- Vouchers injected here --\x3E        \x3C/div>      \x3C/div>    \x3C/div>  \x3C/div>`;      if (!template) {        template = document.createElement('template');        template.innerHTML = rawTemplate;      }      let shadowRoot = null;      if (hostContainer && template) {        hostContainer.setAttribute('data-initialized', 'true');        shadowRoot = hostContainer.attachShadow({ mode: 'open' });        shadowRoot.appendChild(template.content.cloneNode(true));      }      class DealsFinderWidget {        constructor(config) {          this.rootNode = config.rootNode || document;          this.hostContainer = config.hostContainer || null;          this.rootId = config.rootId || 'signal-deals-finder-root';          this.root = this.rootNode.querySelector('#' + this.rootId);          if (!this.root) return;          this.widgetId = (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'widget-' + Date.now() + '-' + Math.random().toString(36).slice(2);          this.grid = this.root.querySelector('#tg-df-grid');          this.tagsContainer = this.root.querySelector('#tg-df-tags-container');          this.categoryFilter = this.root.querySelector('#tg-df-category-filter');          this.categoryFilterWrapper = this.root.querySelector('#tg-df-category-filter-wrapper');          this.searchInput = this.root.querySelector('.tg-df-search-input');          this.autocompleteDropdown = this.root.querySelector('#tg-df-autocomplete');          this.sortSelect = this.root.querySelector('.tg-df-sort-select');          this.searchBtn = this.root.querySelector('.tg-df-search-btn');                    this.settingsToggle = this.root.querySelector('#tg-df-settings-toggle');          this.settingsPanel = this.root.querySelector('#tg-df-settings-panel');          this.settingsBackdrop = this.root.querySelector('#tg-df-settings-backdrop');          this.regionSelect = this.root.querySelector('#tg-df-region-select');          this.retailerSelect = this.root.querySelector('#tg-df-retailer-select');          this.offerTypeSelect = this.root.querySelector('#tg-df-offer-type-select');          this.viewModeSelect = this.root.querySelector('#tg-df-view-mode-select');          this.rowsSelect = this.root.querySelector('#tg-df-rows-select');          this.dealModeToggle = this.root.querySelector('#tg-df-deal-mode');          this.editorModeToggle = this.root.querySelector('#tg-df-editor-mode');          this.priceFilter = this.root.querySelector('#tg-df-price-filter');          this.discountFilter = this.root.querySelector('#tg-df-discount-filter');                    this.editorBar = this.root.querySelector('#tg-df-editor-bar');          this.editorSelectedCount = this.root.querySelector('#tg-df-selected-count');          this.editorCopyBtn = this.root.querySelector('#tg-df-editor-copy');          this.editorClearBtn = this.root.querySelector('#tg-df-editor-clear');                    this.apiUrl = 'https://search-api.fie.future.net.uk/widget.php';          this.deals = [];          this.displayLimit = 12;          this.airedaleArticles = null;          this.airedaleTags = [];          this.airedaleTagCounts = {};          this.activeDealTag = null;          this.selectedBrands = [];          this.currentQuery = '';          this.editorMode = this.hostContainer ? this.hostContainer.hasAttribute('data-editor-mode') : false;          this.viewModeOverride = this.hostContainer ? this.hostContainer.getAttribute('data-view-mode') : null;          this.selectedDeals = new Map();                    this.brandFilterWrapper = this.root.querySelector('#tg-df-brand-filter-wrapper');          this.brandTrigger = this.root.querySelector('#tg-df-brand-trigger');          this.brandDropdown = this.root.querySelector('#tg-df-brand-dropdown');                    this.customPriceWrapper = this.root.querySelector('#tg-df-custom-price-wrapper');          this.customPriceMin = this.root.querySelector('#tg-df-custom-price-min');          this.customPriceMax = this.root.querySelector('#tg-df-custom-price-max');          this.legacyPriceWrapper = this.root.querySelector('#tg-df-legacy-price-wrapper');          this.discountFilterWrapper = this.root.querySelector('#tg-df-discount-filter-wrapper');          this.initResizeObserver();          this.init();            if (['carousel', 'carousel-compact', 'auto', 'grid', 'row'].includes(this.getViewMode())) { this.loadCarouselSpreadsheet(); }        }        getViewMode() {          if (this.viewModeOverride && (!this.editorMode || !this.viewModeSelect)) {            return this.viewModeOverride;          }          return (this.viewModeSelect && this.viewModeSelect.value) ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');        }        applyLayoutMode() {          if (!this.grid) return;          const mode = this.getViewMode();          this.grid.classList.remove('layout-row', 'layout-grid', 'tg-df-grid-auto', 'carousel-compact', 'layout-replica-1', 'layout-replica-2');                    const carouselHost = this.root.querySelector('#tg-df-carousel-host');          const controlsDiv = this.root.querySelector('#tg-df-controls');          if (mode === 'carousel' || mode === 'auto' || mode === 'grid' || mode === 'row') {             if (mode === 'carousel') this.grid.classList.add('carousel-compact');             if (carouselHost) carouselHost.style.display = 'block';             if (controlsDiv) controlsDiv.style.display = 'none';             if (this.root.classList.contains('tg-df-container') && mode === 'carousel') {               this.root.classList.add('is-carousel');             } else if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          } else {             if (carouselHost) carouselHost.style.display = 'none';             if (controlsDiv) controlsDiv.style.display = 'flex';             if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          }          if (mode === 'grid') {            this.grid.classList.add('layout-grid');          } else if (mode === 'row') {            this.grid.classList.add('layout-row');          } else if (mode === 'savings_squad') {            this.grid.classList.add('tg-df-grid-auto', 'savings-squad-cards');          } else if (mode !== 'carousel') {            this.grid.classList.add('tg-df-grid-auto');          }                    const settingsWrapper = this.root.querySelector('.tg-df-settings-wrapper');          if (settingsWrapper) {            settingsWrapper.style.display = mode === 'auto' ? 'none' : 'block';          }          if (this.customPriceWrapper) {             this.customPriceWrapper.style.display = mode === 'auto' ? 'flex' : 'none';          }          if (this.legacyPriceWrapper) {             this.legacyPriceWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }          if (this.discountFilterWrapper) {             this.discountFilterWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }        }        initResizeObserver() {          try {            if (window.parent === window) return;          } catch (e) {            // cross origin frame check threw          }          const emitHeight = () => {            try {              const height = document.documentElement.scrollHeight || document.body.scrollHeight;              const msg = { type: 'embed-size', height: height };              if (window.parent && window.parent !== window) {                window.parent.postMessage(msg, '*');                window.parent.postMessage(JSON.stringify({ ...msg, sentinel: 'amp' }), '*');              }            } catch (e) {}          };                    if (window.ResizeObserver) {            try {              const ro = new ResizeObserver(() => emitHeight());              ro.observe(document.body);              if (this.root) ro.observe(this.root);            } catch(e){ console.warn(e); }          }          window.addEventListener('resize', emitHeight);          setTimeout(emitHeight, 300);        }        initCountdown() {          this.cdWrapper = this.root.querySelector('#tg-df-countdown-wrapper');                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          this.showCountdown = params.get('show_countdown') === 'true';          const showHeaderDetails = params.get('show_header_details') !== 'false';          const eyebrow = this.root.querySelector('.tg-df-carousel-box-eyebrow');          const title = this.root.querySelector('.tg-df-carousel-box-title');          const subtitle = this.root.querySelector('.tg-df-carousel-box-subtitle');          if (!showHeaderDetails) {            let containerElement = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (containerElement) containerElement.classList.add('hide-header-details');            if (eyebrow) eyebrow.style.display = 'none';            if (title) title.style.display = 'none';            if (subtitle) subtitle.style.display = 'none';          }          if (!this.cdWrapper) return;          this.cdTitle = this.root.querySelector('#tg-df-countdown-title');          this.cdDays = this.root.querySelector('#tg-df-cd-days');          this.cdHrs = this.root.querySelector('#tg-df-cd-hrs');          this.cdMin = this.root.querySelector('#tg-df-cd-min');          this.cdSec = this.root.querySelector('#tg-df-cd-sec');          this.updateCountdown();          this.cdInterval = setInterval(() => this.updateCountdown(), 1000);        }        updateCountdown() {          if (!this.cdWrapper) return;          if (!this.showCountdown) {            this.cdWrapper.style.display = 'none';            return;          }          const area = this.getAreaCode();          let offset = '-04:00';          if (['DE', 'FR', 'IT', 'ES', 'NL'].includes(area)) {             offset = '+02:00';          } else if (['GB', 'IE', 'UK'].includes(area)) {             offset = '+01:00';          }          const startTime = new Date('2026-06-23T00:00:00' + offset).getTime();          const endTime = new Date('2026-06-26T00:00:00' + offset).getTime();          const now = Date.now();          let targetTime = 0;          if (now < startTime) {             targetTime = startTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day starts in';             this.cdWrapper.style.display = 'flex';          } else if (now < endTime) {             targetTime = endTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day ends in';             this.cdWrapper.style.display = 'flex';          } else {             this.cdWrapper.style.display = 'none';             if (this.cdInterval) clearInterval(this.cdInterval);             return;          }          const diff = Math.max(0, targetTime - now);          const d = Math.floor(diff / (1000 * 60 * 60 * 24));          const h = Math.floor((diff / (1000 * 60 * 60)) % 24);          const m = Math.floor((diff / 1000 / 60) % 60);          const s = Math.floor((diff / 1000) % 60);          if (this.cdDays) this.cdDays.textContent = d;          if (this.cdHrs) this.cdHrs.textContent = h;          if (this.cdMin) this.cdMin.textContent = m;          if (this.cdSec) this.cdSec.textContent = s;        }        init() {          this.initCountdown();          try {            initAnalytics();          } catch (e) {            console.warn('Deals Widget Analytics Error:', e);          }                    this.bindEvents();                    let initialQuery = '';                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          let initialViewMode = params.get('view_mode');          if (!params.has('search') && !params.has('q') && !params.has('query') && initialViewMode !== 'savings_squad') {             initialQuery = 'Everything';             if (this.discountFilter && !params.has('min_discount_ratio')) {               this.discountFilter.value = '5';             }          }          const website = params.get('website') || 'tomsguide';          this.website = website;          if (website === 'techradar') {            const squadHeader = this.root.querySelector('.tg-df-savings-squad-header');            if (squadHeader) {               const pic = squadHeader.querySelector('picture');               if (pic) pic.style.display = 'none';            }            const style = document.createElement('style');            style.innerHTML = `              .tg-df-container .hawk-affiliate-link-deal-button { background-color: #5DAF08 !important; }              .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a8c06 !important; }            `;            this.root.appendChild(style);          }                    if (this.regionSelect) {            this.regionSelect.value = params.get('region') || 'auto';            this.updatePriceDropdownCurrency();          }                    if (this.retailerSelect && params.has('retailer')) {            this.retailerSelect.value = params.get('retailer');          }                    if (params.has('brands')) {            const b = params.get('brands');            if (b) {              this.selectedBrands = b.split(',');            }          }                    if (this.offerTypeSelect && params.has('offer_type')) {            this.offerTypeSelect.value = params.get('offer_type');          }          if (params.has('bg_color')) {            const bg = params.get('bg_color');            if (bg === 'white') {              this.root.style.setProperty('background-color', '#ffffff', 'important');            } else if (bg === 'transparent') {              this.root.style.setProperty('background-color', 'transparent', 'important');            } else if (bg === 'light_blue') {              this.root.style.setProperty('background-color', '#E7F0FF', 'important');            }          } else {             this.root.style.removeProperty('background-color');          }                    if (params.has('view_mode')) {            if (this.viewModeSelect) {              this.viewModeSelect.value = params.get('view_mode');            } else {              this.viewModeOverride = params.get('view_mode');            }          }          if (this.rowsSelect && params.has('rows')) {            this.rowsSelect.value = params.get('rows');          }          if (params.has('price')) {            const priceVal = params.get('price');            if (this.priceFilter) {               // Try assigning it directly to select. If it's not present implicitly ignores               this.priceFilter.value = priceVal;            }            if (priceVal.includes('_')) {               const parts = priceVal.split('_');               if (this.customPriceMin && parts[0]) this.customPriceMin.value = parts[0];               if (this.customPriceMax && parts[1]) this.customPriceMax.value = parts[1];            }          }          if (this.discountFilter && params.has('min_discount_ratio')) {            // Need to convert back from ratio (e.g. 0.8) to select value (e.g. "20")            const ratioStr = params.get('min_discount_ratio');            const ratioFloat = parseFloat(ratioStr);            if (!isNaN(ratioFloat)) {               const percentage = Math.round((1 - ratioFloat) * 100);               this.discountFilter.value = percentage.toString();            }          }          if (this.sortSelect) {            this.sortSelect.value = params.get('sort') || 'discount_desc';          }          if (this.dealModeToggle && params.has('deal_mode')) {            this.dealModeToggle.checked = params.get('deal_mode') === 'true' || params.get('deal_mode') === '1';          }                    // Re-apply layout after params have updated control values          this.applyLayoutMode();                    if (params.get('search')) {            initialQuery = params.get('search');          } else if (params.get('q')) {            initialQuery = params.get('q');          } else if (params.get('query')) {            initialQuery = params.get('query');          }                    this.currentQuery = initialQuery;          if (this.searchInput) {            this.searchInput.value = this.currentQuery;          }                    if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {            this.fetchDeals(this.currentQuery);          } else {            this.render();          }        }        updatePriceDropdownCurrency() {          if (!this.priceFilter || !this.regionSelect) return;          const currencySymbols = {            'US': '$',            'GB': '£',            'CA': '$CA',            'AU': '$AU',            'DE': '€',            'FR': '€',            'IT': '€',          };          const area = this.getAreaCode();          const cur = currencySymbols[area || 'US'] || '$';                    const options = this.priceFilter.options;          for (let i = 0; i < options.length; i++) {            const opt = options[i];            if (opt.value === 'all') {              opt.innerText = 'All Prices';            } else if (opt.value === 'under50') {              opt.innerText = `Under ${cur}50`;            } else if (opt.value === '50_100') {              opt.innerText = `${cur}50 - ${cur}100`;            } else if (opt.value === '100_200') {              opt.innerText = `${cur}100 - ${cur}200`;            } else if (opt.value === '200_500') {              opt.innerText = `${cur}200 - ${cur}500`;            } else if (opt.value === 'over500') {              opt.innerText = `Over ${cur}500`;            }          }        }        populateBrandDropdown(values) {          if (!this.brandDropdown || !this.brandFilterWrapper) return;          this.brandFilterWrapper.style.display = 'flex'; // show the wrapper                    let html = '';          const allChecked = this.selectedBrands.length === 0 ? 'checked' : '';          const _div = '<' + '/div>';          const _span = '<' + '/span>';          html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="" ${allChecked} class="tg-df-brand-chk"> Any Brand${_div}`;                    values.forEach(v => {             if (!v.formatted_value || v.formatted_value === 'Any Brand') return;             const isChecked = this.selectedBrands.includes(v.formatted_value) ? 'checked' : '';             html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="${this.escapeHTML(v.formatted_value)}" ${isChecked} class="tg-df-brand-chk"> ${this.escapeHTML(v.formatted_value)} \x3Cspan style="color:var(--tg-df-text-muted);font-size:12px">(${v.count || 0})${_span}${_div}`;          });                    this.brandDropdown.innerHTML = html;                    // Re-bind listeners          const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');          chks.forEach(chk => {            chk.addEventListener('change', (e) => {              const val = e.target.value;              if (val === '') {                this.selectedBrands = [];              } else {                if (e.target.checked) {                   if (!this.selectedBrands.includes(val)) this.selectedBrands.push(val);                } else {                   this.selectedBrands = this.selectedBrands.filter(b => b !== val);                }              }                            if (this.selectedBrands.length === 0) {                 this.brandTrigger.innerText = 'Any Brand';              } else if (this.selectedBrands.length === 1) {                 this.brandTrigger.innerText = this.selectedBrands[0];              } else {                 this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;              }                            // Only call API if changed from UI interactions              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.updateURLParams();                 this.fetchDeals(this.currentQuery);              }            });          });                    // Update button text on load          if (this.selectedBrands.length === 0) {             this.brandTrigger.innerText = 'Any Brand';          } else if (this.selectedBrands.length === 1) {             this.brandTrigger.innerText = this.selectedBrands[0];          } else {             this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;          }        }        updateURLParams() {          const url = new URL(window.location);          if (this.currentQuery && this.currentQuery !== 'Gaming laptops') {            url.searchParams.set('q', this.currentQuery);          } else {            url.searchParams.delete('q');            url.searchParams.delete('search');            url.searchParams.delete('query');          }                    if (this.regionSelect && this.regionSelect.value !== 'auto') {            url.searchParams.set('region', this.regionSelect.value);          } else {            url.searchParams.delete('region');          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.set('retailer', this.retailerSelect.value);          } else {            url.searchParams.delete('retailer');          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.set('brands', this.selectedBrands.join(','));          } else {            url.searchParams.delete('brands');          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.set('offer_type', this.offerTypeSelect.value);          } else {            url.searchParams.delete('offer_type');          }                    if (this.viewModeSelect && this.viewModeSelect.value !== 'auto') {            url.searchParams.set('view_mode', this.viewModeSelect.value);          } else {            url.searchParams.delete('view_mode');          }                    if (this.rowsSelect && this.rowsSelect.value !== '12') {            url.searchParams.set('rows', this.rowsSelect.value);          } else {            url.searchParams.delete('rows');          }                    const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             url.searchParams.set('price', `${min}_${max}`);          } else if (this.priceFilter && this.priceFilter.value !== 'all') {            url.searchParams.set('price', this.priceFilter.value);          } else {            url.searchParams.delete('price');          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {               const ratio = (100 - v) / 100;               url.searchParams.set('min_discount_ratio', ratio.toString());            }          } else {            url.searchParams.delete('min_discount_ratio');          }                    if (this.sortSelect && this.sortSelect.value !== 'discount_desc') {            url.searchParams.set('sort', this.sortSelect.value);          } else {            url.searchParams.delete('sort');          }                    if (this.dealModeToggle && this.dealModeToggle.checked) {            url.searchParams.set('deal_mode', 'true');          } else {            url.searchParams.delete('deal_mode');          }                    window.history.replaceState({}, '', url);        }        bindEvents() {          const roundels = this.root.querySelectorAll('.tg-df-carousel-cat.original-hardcoded');          roundels.forEach(r => {             r.addEventListener('click', () => {                const q = r.getAttribute('data-query');                const pr = r.getAttribute('data-pr');                if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: q,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = q;                const label = this.root.querySelector('#tg-df-carousel-title-label');                if (label) label.textContent = 'Best ' + q;                if (this.priceFilter) this.priceFilter.value = pr || 'all';                if (this.discountFilter) this.discountFilter.value = '5';                if (this.searchInput) this.searchInput.value = q;                                roundels.forEach(ro => ro.classList.remove('active'));                r.classList.add('active');                this.fetchDeals(this.currentQuery);             });          });          const discBtns = this.root.querySelectorAll('.tg-df-carousel-filter-btn');          discBtns.forEach(b => {             b.addEventListener('click', () => {                const d = b.getAttribute('data-d');                const pr = b.getAttribute('data-pr');                const ot = b.getAttribute('data-ot');                let label = b.innerText ? b.innerText.trim() : '';                let filterType = 'unknown';                let filterVal = 'unknown';                if (d !== null) { filterType = 'discount'; filterVal = d; }                else if (pr !== null) { filterType = 'price'; filterVal = pr; }                else if (ot !== null) { filterType = 'offertype'; filterVal = ot; }                if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-${filterType}-${filterVal}`, name: 'Filter Button', label: label });                                if (d !== null) {                   if (this.discountFilter) this.discountFilter.value = this.discountFilter.value === d ? '0' : d;                } else if (pr !== null) {                   if (this.priceFilter) this.priceFilter.value = this.priceFilter.value === pr ? 'all' : pr;                } else if (ot !== null) {                   if (this.offerTypeSelect) this.offerTypeSelect.value = this.offerTypeSelect.value === ot ? 'all' : ot;                } else {                   if (this.discountFilter) this.discountFilter.value = '0';                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.offerTypeSelect) this.offerTypeSelect.value = 'all';                }                if (d === null && pr === null && ot === null && b.getAttribute("data-type") !== "custom") {                   discBtns.forEach(ro => ro.classList.remove('active'));                   b.classList.add('active');                } else if (b.getAttribute("data-type") !== "custom") {                   // Only operate on hardcoded buttons (those without data-type)                   discBtns.forEach(ro => {                      if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active');                   });                                      let makeActive = true;                   if (d !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-d') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (pr !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-pr') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (ot !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-ot') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   }                                      if (makeActive) b.classList.add('active');                                      // Check if anything is active, if not activate "All"                   let anyActive = false;                   discBtns.forEach(ro => { if (ro.classList.contains('active') && ro.getAttribute('data-type') !== 'custom') anyActive = true; });                   if (!anyActive) {                       discBtns.forEach(ro => { if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.add('active'); });                   }                }                                this.fetchDeals(this.currentQuery);             });          });          if (this.brandTrigger && this.brandDropdown) {            this.brandTrigger.addEventListener('click', () => {              this.brandDropdown.classList.toggle('active');            });            document.addEventListener('click', (e) => {              if (this.brandFilterWrapper && !e.composedPath().includes(this.brandFilterWrapper)) {                this.brandDropdown.classList.remove('active');              }            });          }          let debounceTimer;          if(this.searchInput) {            this.searchInput.addEventListener('input', (e) => {              clearTimeout(debounceTimer);              const query = e.target.value.trim();              this.currentQuery = query;              if (this.getViewMode() === 'savings_squad' && this.autocompleteDropdown && this.airedaleTags && query.length > 0) {                 const matches = this.airedaleTags.filter(t => t.toLowerCase().includes(query.toLowerCase()) && t.toLowerCase() !== query.toLowerCase()).slice(0, 5);                 if (matches.length > 0) {                    this.autocompleteDropdown.innerHTML = matches.map(m => `\x3Cdiv class="tg-df-autocomplete-item" data-tag="${this.escapeHTML(m)}">${this.escapeHTML(m)}<` + `/div>`).join('');                    this.autocompleteDropdown.classList.add('active');                 } else {                    this.autocompleteDropdown.classList.remove('active');                 }              } else if (this.autocompleteDropdown) {                 this.autocompleteDropdown.classList.remove('active');              }              debounceTimer = setTimeout(() => {                this.updateURLParams();                if (query.length > 2) {                  this.fetchDeals(query);                } else if (query.length === 0) {                  this.deals = [];                  this.render();                }              }, 400);            });            this.searchInput.addEventListener('keypress', (e) => {              if (e.key === 'Enter') {                if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');                clearTimeout(debounceTimer);                const query = e.target.value.trim();                this.currentQuery = query;                this.activeDealTag = null;                trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });                this.updateURLParams();                if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                   this.fetchDeals(query);                }              }            });          }          if (this.autocompleteDropdown) {             this.autocompleteDropdown.addEventListener('click', (e) => {                const item = e.target.closest('.tg-df-autocomplete-item');                if (item) {                   const tag = item.getAttribute('data-tag');                   this.currentQuery = tag;                   if (this.searchInput) this.searchInput.value = tag;                   this.activeDealTag = tag;                   this.autocompleteDropdown.classList.remove('active');                   this.updateURLParams();                   this.fetchDeals(tag);                }             });             document.addEventListener('click', (e) => {               if (this.autocompleteDropdown && this.searchInput && !e.composedPath().includes(this.searchInput) && !e.composedPath().includes(this.autocompleteDropdown)) {                 this.autocompleteDropdown.classList.remove('active');               }             });          }          if (this.searchBtn) {            this.searchBtn.addEventListener('click', () => {              if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');              clearTimeout(debounceTimer);              const query = this.searchInput.value.trim();              trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });              this.activeDealTag = null;              this.currentQuery = query;              this.updateURLParams();              if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.fetchDeals(query);              }            });          }          if(this.sortSelect) this.sortSelect.addEventListener('change', () => {            trackElementInteraction({ id: `sort-option-${this.sortSelect.value}`, name: 'Sort', label: `Sort: ${this.sortSelect.options[this.sortSelect.selectedIndex].text}` });            this.updateURLParams();            if (this.deals.length > 0) {              this.sortData();              this.render();            }          });                    const priceFilter = this.root.querySelector('#tg-df-price-filter');          if (priceFilter) {            this.priceFilter = priceFilter;            this.priceFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-price-${this.priceFilter.value}`, name: 'Price', label: this.priceFilter.options[this.priceFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          const updateCustomPrice = () => {             this.updateURLParams();             if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);             } else {                this.render();             }          };          if (this.customPriceMin) {             this.customPriceMin.addEventListener('change', updateCustomPrice);             this.customPriceMin.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          if (this.customPriceMax) {             this.customPriceMax.addEventListener('change', updateCustomPrice);             this.customPriceMax.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          const discountFilter = this.root.querySelector('#tg-df-discount-filter');          if (discountFilter) {            this.discountFilter = discountFilter;            this.discountFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-discount-${this.discountFilter.value}`, name: 'Discount', label: this.discountFilter.options[this.discountFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          if (this.categoryFilter) {            this.categoryFilter.addEventListener('change', (e) => {               const val = e.target.value === 'all' ? null : e.target.value;               this.activeDealTag = val;               this.fetchSavingsSquad();            });          }                    if (this.settingsToggle) {            this.settingsToggle.addEventListener('click', () => {              const o = this.settingsPanel.classList.toggle('active');              this.settingsBackdrop.classList.toggle('active');              if (o) trackElementInteraction({ id: 'filter-open', name: 'Filters', label: 'Open filters' });            });          }                    if (this.settingsBackdrop) {            this.settingsBackdrop.addEventListener('click', () => {              this.settingsPanel.classList.remove('active');              this.settingsBackdrop.classList.remove('active');            });          }                    if (this.regionSelect) {            this.regionSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-region-${this.regionSelect.value}`, name: 'Region', label: this.regionSelect.options[this.regionSelect.selectedIndex].text });              this.updateURLParams();              this.updatePriceDropdownCurrency();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.retailerSelect) {            this.retailerSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-merchant-${this.retailerSelect.value}`, name: 'Retailer', label: this.retailerSelect.options[this.retailerSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.offerTypeSelect) {            this.offerTypeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-offertype-${this.offerTypeSelect.value}`, name: 'Offer Type', label: this.offerTypeSelect.options[this.offerTypeSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.viewModeSelect) {            this._prevViewMode = this.viewModeSelect.value;            this.viewModeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-viewmode-${this.viewModeSelect.value}`, name: 'View Mode', label: this.viewModeSelect.options[this.viewModeSelect.selectedIndex].text });                            // Reset all active toggles and filters to prevent config carry-over              this.selectedBrands = [];              if (this.brandTrigger) this.brandTrigger.innerText = 'Select Brands';              if (this.brandDropdown) {                const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                chks.forEach(chk => { chk.checked = false; });              }              if (this.priceFilter) this.priceFilter.value = 'all';              if (this.customPriceMin) this.customPriceMin.value = '';              if (this.customPriceMax) this.customPriceMax.value = '';              if (this.sortSelect) this.sortSelect.value = this.viewModeSelect.value === 'savings_squad' ? 'date_desc' : 'discount_desc';              if (this.discountFilter) this.discountFilter.value = '0';              if (this.retailerSelect) this.retailerSelect.value = '';              if (this.offerTypeSelect) this.offerTypeSelect.value = '';              if (this.rowsSelect) this.rowsSelect.value = '12';              if (this.categoryFilter) this.categoryFilter.value = 'all';              this.activeDealTag = null;              this.updateURLParams();              this.applyLayoutMode();                            if (this.getViewMode() === 'savings_squad' || this._prevViewMode === 'savings_squad') {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }              this._prevViewMode = this.viewModeSelect.value;            });          }                    if (this.rowsSelect) {            this.rowsSelect.addEventListener('change', () => {              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.dealModeToggle) {            this.dealModeToggle.addEventListener('change', () => {              this.updateURLParams();              this.render();            });          }          if (this.editorModeToggle) {             this.editorModeToggle.addEventListener('change', (e) => {                this.editorMode = e.target.checked;                this.render();                this.updateFloatingCopyBar();             });          }          if (this.editorCopyBtn) {             this.editorCopyBtn.addEventListener('click', () => {                this.copySelectedDealsToCMS();             });          }          if (this.editorClearBtn) {             this.editorClearBtn.addEventListener('click', () => {                this.selectedDeals.clear();                this.render();                this.updateFloatingCopyBar();             });          }          if (this.grid) {            this.grid.addEventListener('change', (e) => {               if (e.target.classList.contains('tg-df-deal-checkbox')) {                  const dealId = e.target.getAttribute('data-id');                  if (e.target.checked) {                     const dealObj = this.deals.find(d => d.id === dealId);                     if (dealObj) this.selectedDeals.set(dealId, dealObj);                  } else {                     this.selectedDeals.delete(dealId);                  }                  this.updateFloatingCopyBar();               }            });            this.grid.addEventListener('click', (e) => {              const dealCard = e.target.closest('[data-action="deal-click"]');              const similarCard = e.target.closest('[data-action="view-similar-click"]');              const cardLink = dealCard || similarCard;              if (cardLink) {                const productName = cardLink.getAttribute('data-product-name');                const merchantName = cardLink.getAttribute('data-merchant-name');                const productId = cardLink.getAttribute('data-analytics-id');                const price = parseFloat(cardLink.getAttribute('data-price')) || null;                const prevPriceStr = cardLink.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = cardLink.getAttribute('data-original-link');                const rewrittenLink = cardLink.getAttribute('href');                const revenueId = cardLink.getAttribute('data-revenue-id');                const index = parseInt(cardLink.getAttribute('data-index'), 10) || 0;                const inStock = cardLink.getAttribute('data-in-stock') === 'true';                const totalText = cardLink.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: cardLink.getAttribute('data-model-id') || null,                    matchId: cardLink.getAttribute('data-match-id') || null,                    brand: cardLink.getAttribute('data-model-brand') || null,                    parent: cardLink.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: cardLink.getAttribute('data-merchant-id') || null,                    network: cardLink.getAttribute('data-merchant-network') || null,                    url: cardLink.getAttribute('data-merchant-url') || null,                    name: merchantName                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: normalizeCurrency(this.escapeHTML(cardLink.getAttribute('data-currency') || '$'))                };                if (dealCard) {                  trackDealClick(trackingParams);                } else {                  trackViewSimilarClick(trackingParams);                }              }              const couponsBtn = e.target.closest('[data-action="coupons-click"]');              if (couponsBtn) {                trackElementInteraction({                  id: 'product-card-show-coupons',                  name: 'Coupons',                  label: `Product card coupons: ${couponsBtn.getAttribute('data-merchant')}`                });              }            });          }          this.setupScrollListeners();        }        setupScrollListeners() {          const containers = [             this.root.querySelector('.tg-df-carousel-roundels'),             this.root.querySelector('.tg-df-carousel-filters-wrap'),             this.root.querySelector('#tg-df-grid')          ];                    containers.forEach(container => {             if (!container) return;                          const checkScroll = () => {                if (!container.parentElement) return;                const leftBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-left');                const rightBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-right');                                if (leftBtn) {                   if (container.scrollLeft <= 5) leftBtn.style.display = 'none';                   else leftBtn.style.display = 'flex';                }                                if (rightBtn) {                   if (container.scrollWidth <= container.clientWidth) {                       rightBtn.style.display = 'none';                   } else if (container.scrollLeft >= container.scrollWidth - container.clientWidth - 5) {                       rightBtn.style.display = 'none';                   } else {                       rightBtn.style.display = 'flex';                   }                }             };                          container.addEventListener('scroll', checkScroll);             checkScroll();                          window.addEventListener('resize', checkScroll);                          const observer = new MutationObserver(checkScroll);             observer.observe(container, { childList: true, subtree: true, characterData: false });          });        }        get widgetTypeName() {          const mode = this.viewModeSelect ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');          switch(mode) {              case 'carousel': return 'Carousel';              case 'savings_squad': return 'Savings Squad';              case 'grid': return 'Grid';              case 'row': return 'Row';              default: return 'Auto Collection';          }        }        getAreaCode() {          if (this.regionSelect && this.regionSelect.value) {            if (this.regionSelect.value === 'auto') return null;            return this.regionSelect.value;          }          let area = null;          try {            const locale = window.navigator.language || window.navigator.userLanguage;            if (locale && locale.includes('-')) {              area = locale.split('-')[1].toUpperCase();            } else if (locale && locale.length === 2) {              if (locale.toUpperCase() === 'EN') { area = 'US'; }              else { area = locale.toUpperCase(); }            }          } catch (e) { /* Ignore */ }                    // Map to known valid options or fallback to US          const valid = ['US', 'GB', 'CA', 'AU', 'DE', 'FR', 'IT'];          if (area === 'UK') area = 'GB';          if (valid.includes(area)) {             return area;          }          return 'US';        }                async loadCarouselSpreadsheet() {          try {              const parseCSVRow = (str) => {                  let result = [], cur = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (inQuotes) {                          if (char === '"') {                              if (str[i + 1] === '"') { cur += '"'; i++; }                              else { inQuotes = false; }                          } else { cur += char; }                      } else {                          if (char === '"') { inQuotes = true; }                          else if (char === ',') { result.push(cur); cur = ''; }                          else { cur += char; }                      }                  }                  result.push(cur); return result;              };              const parseCSV = (str) => {                  const rows = []; let curRow = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (char === '"') inQuotes = !inQuotes;                      if ((char === '\n' || char === '\r') && !inQuotes) {                          if (char === '\r' && str[i+1] === '\n') i++;                          if (curRow) rows.push(parseCSVRow(curRow));                          curRow = '';                      } else { curRow += char; }                  }                  if (curRow) rows.push(parseCSVRow(curRow));                  return rows;              };              const preloadedCSV = decodeURIComponent(escape(atob("LCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNQ0KUm91bmRlbCB0ZXh0LEFsbCxUVnMsRm9vdHdlYXIsQXBwYXJlbCxNYXR0cmVzZXMsQXBwbGlhbmNlcyxXZWFyYWJsZSB0ZWNoLEhlYWRwaG9uZXMsU21hcnQgSG9tZSxTcGVha2VycyxMYXB0b3BzLFRhYmxldHMsQ29tcHV0aW5nLFBob25lcyxHYW1pbmcsTGVnbw0KUm91bmRlbCBpbWFnZSxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL2FpLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3R2cy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvN2IzYTIyNGIwNzk2M2M2MjdiNmI5MDliZDc4MzM4MzZlMDJmZjgxOS5qcGcud2VicCxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy84NGRhYzVkNDhlZDJkNDQ4NTU5ZWJhNjdhY2U4MzE0Y2M2N2NjZDk0LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vcHJvZHVjdHMvY2Fyb3VzZWwvbWF0dHJlc3Nlcy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvNzY4ZTk3Y2ViMDcxODAxZmFlMjA5MTBkMDgyMGIxNmY3NDdhZjkzOS5qcGcud2VicCxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3dlbGxuZXNzLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL2hlYWRwaG9uZXMuanBnLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzg5NTM1YmVlYmUyMGRiYmQ0YTM0NmQ2ZDZiZGZlOTFkOGE4ODRhMjEuanBnLndlYnAsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9hdWRpby5qcGcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9sYXB0b3BzLmpwZyxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy8yMzk3NTY0ZWQ3YTVmZjk0N2U5YjZiMzBlNTRmNDc0OTRiODQxZjg5LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vcHJvZHVjdHMvY2Fyb3VzZWwvY29tcHV0aW5nLmpwZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3Bob25lcy5wbmcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9nYW1pbmcucG5nLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzRmNmM2MjFjYWMwYmMxYTg1ZDU5M2UzNTk0YmE1YjM0OWVmZmQyOTIuanBnLndlYnANClNlYXJjaCBRdWVyeSxFdmVyeXRoaW5nLFRlbGV2aXNpb25zLCJTbmVha2VycywgcnVubmluZyBzaG9lcywgc2FuZGFscyIsQ2xvdGhpbmcsTWF0dHJlc3NlcyxIb21lIEFwcGxpYW5jZXMsV2VhcmFibGVzICYgRml0bmVzcyBUZWNoLEhlYWRwaG9uZXMsSG9tZSBUZWNoLFNwZWFrZXJzLExhcHRvcHMsVGFibGV0cyxDb21wdXRpbmcsUGhvbmVzLEdhbWluZyxDb25zdHJ1Y3Rpb24gVG95cw0KRGlzY291bnQgQW1vdW50LG1pbiA1JSxtaW4gMTAlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUNClByaWNlIFJhbmdlLCwsLCxtaW4gJDQwMCwsLCxtaW4gJDI1LCxtaW4gJDMwMCwsLG1pbiAkMTAwLCwNCkJyYW5kIFNlbGVjdGlvbiwsLCwsLCwsLCwsLCwsLCwNCkZpbHRlciBidXR0b25zLCwsLCwsLCwsLCwsLCwsLA0KMSxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMNCjIsQW1hem9uIGRlYWxzLFVuZGVyICQxMDAwLDUwJSBvZmYsQWRpZGFzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsNTAlIG9mZixBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscw0KMyxPdmVyICQ0MDAsVW5kZXIgJDUwMCxIb2thLE5pa2UsU2FhdHZhLE5pbmphLDQwJSBvZmYsSkxhYiwsSkJMLERlbGwsLEFzdXMsQXBwbGUsQ29uc29sZXMsU3RhciBXYXJzDQo0LFVuZGVyICQxMDAwLDUwJSBvZmYsU2tlY2hlcnMsVW5kZXIgQXJtb3VyLEhlbGl4LFNoYXJrLEdhcm1pbixBbmtlciBTb3VuZGNvcmUsUmluZyxTb25vcyxBcHBsZSxBcHBsZSxUUC1saW5rLFNhbXN1bmcsQWNjZXNzb3JpZXMsVW5kZXIgJDI1DQo1LFVuZGVyICQ1MDAsTEcsQXNpY3MsQ29sdW1iaWEsRHJlYW1DbG91ZCxLZXVyaWcsQXBwbGUsU29ueSxHb3ZlZSxUcmliaXQsTGVub3ZvLFNhbXN1bmcsRWVybyxHb29nbGUsR2FtZXMsVW5kZXIgJDUwDQo2LDUwJSBvZmYsU2Ftc3VuZyxOaWtlLFBhdGFnb25pYSxOZWN0YXIsRGUnTG9uZ2hpLEFtYXpmaXQsQXBwbGUsS2FzYSBzbWFydCxTb255LEFsaWVud2FyZSxUQ0wsTmV0Z2VhcixNb3Rvcm9sYSxOaW50ZW5kbyxCb3RhbmljYWxzDQo3LEFtYXpvbixIaXNlbnNlLE5ldyBCYWxhbmNlLEFyYyd0ZXJ5eCxUZW1wdXItcGVkaWMsRHlzb24sRml0Yml0LEJlYXRzLFBoaWxpcHMgSHVlLEFua2VyLEFjZXIsT25lUGx1cyxEZWxsLE9uZVBsdXMsU29ueSxEaXNuZXkNCjgsQXBwbGUsVENMLEFkaWRhcyxDYXJoYXJ0dCxCZWFyLEJpc3NlbGwsU2Ftc3VuZyxFYXJmdW4sQmxpbmssQmVhdHMsTVNJLE1pY3Jvc29mdCxBY2VyLE5vdGhpbmcsWGJveCxNYXJ2ZWwNCjksLFNvbnksU2F1Y29ueSxUaGUgTm9ydGggRmFjZSxTaWVuYSxOdXRyaWJ1bGxldCxPdXJhLFNhbXN1bmcsR29vZ2xlIE5lc3QgLE1hcnNoYWxsLFNhbXN1bmcsTGVub3ZvLExlbm92bywsLFBva2Vtb24NCjEwLCxSb2t1LEJpcmtlbnN0b2NrLENSWiBZb2dhLFdpbmtCZWRzLEJsYWNrIGFuZCBEZWNrZXIsUmluZ2Nvbm4sQ01GLEV1ZnksU2Ftc3VuZyxNaWNyb3NvZnQsUmVNYXJrYWJsZSxBbGllbndhcmUsLCwNCjExLCwsQnJvb2tzLFRoZSBHeW0gUGVvcGxlLEJyb29rbHluIGJlZGRpbmcsTmVzcHJlc3NvLCwxTW9yZSxBcmxvLCxSYXplciwsQ29yc2FpciwsLA0KMTIsLCxDcm9jcywsRWlnaHQgU2xlZXAsQ3Vpc2luYXJ0LCxKQkwsLCwsLEhQLCwsDQpOb3RlcywsLCwsLCwsLCwsLCwsLCwNCiwsIlByaW9yaXRpc2UgYmlnZ2VzdCAlLyQgZGlzY291bnQsIFR2cyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiB0aGUgbW9zdCBwb3B1bGFyIGV2ZW4gaWYgdGhleSBhcmUgc3RpbGwgZXhwZW5zaXZlIiwiTm8gcGF0dGVybiB0byBwcmljaW5nL2Rpc2NvdW50LCByZWFkZXJzIG1haW5seSBzaG9wIGJ5IGJyYW5kL3JlY29nbmlzYWJsZSBzaG9lcyIsIk5vIHBhdHRlcm4gdG8gcHJpY2luZy9kaXNjb3VudCwgcmVhZGVycyBtYWlubHkgc2hvcCBieSBicmFuZCIsIkEgbGFiZWwgd2lsbCBkZWZpbml0ZWx5IGhlbHAgaGVyZSBlLmcuIGJlc3QgZm9yIHNpZGUgc2xlZXBlciwgYmVzdCBtZW1vcnkgZm9hbSIsIkFwcGxpYW5jZXMgaXMgYSBiaWcgY2F0ZWdvcnksIGlzIGl0IHBvc3NpYmxlIHRvIHNwbGl0IGludG8ga2l0Y2hlbiBhcHBsaWFuY2VzLCBmbG9vcmNhcmUsIGFpciBoZWFsdGgvY29vbGluZz8gT3Igc2ltaWxhciIsIkZvY3VzIG9uIHZhbHVlIGZvciBtb25leSwgR2FybWlucyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiBwb3B1bGFyIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIHN0aWxsICQ1MDAiLCwsLCxJbmNsdWRlIEtpbmRsZXMsSSB3b3VsZCBpbmNsdWRlIHdpZmkgcm91dGVycyBoZXJlIGluc3RlYWQgb2Ygc21hcnQgaG9tZSxDYW4gd2Ugc3VyZmFjZSBwaG9uZSBwcm92aWRlciBkZWFscz8gVC1tb2JpbGUgYW5kIHZlcml6b24gd291bGQgbWFrZSBhIGxvdCBtb3JlIG1vbmV5IHRoYW4gQW1hem9uLCwNCiwsaGF2aW5nIGEgJ2Jlc3QgZm9yJyBsYWJlbCB3b3VsZCBiZSBoZWxwZnVsIGUuZy4gYmVzdCBmb3IgYnJpZ2h0IHJvb20sQ2FuIHdlIHN0b3Aga2lkcyBzaG9lcyBmcm9tIHB1bGxpbmcgdGhyb3VnaD8sIldpbGwgdGhpcyBpbmNsdWRlIGFjY2Vzc29yaWVzIGUuZy4gY2FwcywgYmFncywgaWYgc28gbWFrZSBzdXJlIHRoZXNlIGFyZSBtaXhlZCB0aHJvdWdob3V0IGNsb3RoaW5nIGRlYWxzIixXaWxsIHRoaXMgaW5jbHVkZSB0b3BwZXJzIGFuZCBwaWxsb3dzPyBTZWVpbmcgbW9yZSBtb21lbnR1bSB3aXRoIHRoaXMgY2F0ZWdvcnkgcmVjZW50bHkgc28gYSBiZWRkaW5nIHRhYiBtaWdodCB3b3JrLCwiTmVlZCB0byBtYWtlIHN1cmUgYmFuZHMsIHNjcmVlbiBwcm90ZWN0b3JzIGV0Yy4gZG9uJ3QgcHVsbCBpbnRvIGhlcmUiLCwsLCwsLCwsDQosLCJQcmlvcml0aXNlIDY1JycgYW5kIDU1JyBpbmNoIFRWcywgdGhlbiBiaWdnZXIgc2NyZWVucyBiZWZvcmUgdGhlIHNtYWxsZXIgc2l6ZXMiLCwsUXVlZW4gaXMgdGhlIG1vc3QgcG9wdWxhciBzaXplIGluIHRoZSBVUyAtIHByaW9yaXRpc2UgZGVhbHMgZm9yIHRoaXMgc2l6ZSwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpDYXRlZ29yaWVzIHRvIGNvbnNpZGVyLCxQcm9kdWN0cyBpbmNsdWRlZCwsLCwsLCwsLCwsLCwsDQpVbmRlciAkNTA/LCxBaXIgdGFncywsLCwsLCwsLCwsLCwsDQosLFBvcnRhYmxlIGNoYXJnZXJzL3dpcmVsZXNzIGNoYXJnZXJzLCwsLCwsLCwsLCwsLCwNCiwsIldhdGVyIGJvdHRsZXMgKHN0YW5sZXlzLCBPd2FsYSwgSHlkcm8gZmxhc2ssIFlldGkpIiwsLCwsLCwsLCwsLCwsDQosLEhhbmQgaGVsZCBmYW5zLCwsLCwsLCwsLCwsLCwNCiwsLCwsLCwsLCwsLCwsLCwNCmhvbWUgb2ZmaWNlLCxvZmZpY2UgY2hhaXJzLCwsLCwsLCwsLCwsLCwNCiwsc3RhbmRpbmcgZGVza3MsLCwsLCwsLCwsLCwsLA0KLCxtb25pdG9ycywsLCwsLCwsLCwsLCwsDQosLEtleWJvYXJkcywsLCwsLCwsLCwsLCwsDQosLGRvY2tpbmcgc3RhdGlvbiwsLCwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpHYW1pbmcsLENvbnNvbGVzLCwsLCwsLCwsLCwsLCwNCiwsQWNjZXNzb3JpZXMsLCwsLCwsLCwsLCwsLA0KLCxHYW1lcywsLCwsLCwsLCwsLCwsDQosLENvdWxkIGluY2x1ZGUgTGVnbz8sLCwsLCwsLCwsLCwsLA==")));              const text = preloadedCSV;              const parsed = parseCSV(text);                            const rowsByName = {};              let filterStart = -1;              parsed.forEach((rc, i) => {                 if (rc && rc.length > 0 && rc[0]) rowsByName[rc[0]] = rc;                 if (rc && rc.length > 0 && rc[0] === 'Filter buttons') filterStart = i;              });                            const cols = [];              if(rowsByName['Roundel text']) {                const headerRow = rowsByName['Roundel text'];                for(let col = 1; col < headerRow.length; col++) {                   let label = headerRow[col];                   if (!label) continue;                                      let q = rowsByName['Search Query'] && rowsByName['Search Query'][col] ? rowsByName['Search Query'][col] : '';                   let img = rowsByName['Roundel image'] && rowsByName['Roundel image'][col] ? rowsByName['Roundel image'][col] : '';                   let ds = rowsByName['Discount Amount'] && rowsByName['Discount Amount'][col] ? rowsByName['Discount Amount'][col] : '';                   let pr = rowsByName['Price Range'] && rowsByName['Price Range'][col] ? rowsByName['Price Range'][col] : '';                   let rt = rowsByName['Retailer'] && rowsByName['Retailer'][col] ? rowsByName['Retailer'][col] : '';                   let ot = rowsByName['Offer Type'] && rowsByName['Offer Type'][col] ? rowsByName['Offer Type'][col] : '';                                      let filters = [];                   if(filterStart > 0) {                     for(let r = filterStart + 1; r < parsed.length; r++) {                         if(!parsed[r] || parsed[r][0] === 'Notes' || parsed[r][0] === 'Categories to consider') break;                         let f = parsed[r][col];                         if(f) filters.push(f);                     }                   }                   cols.push({ label, img, q, ds, pr, rt, ot, filters });                }              }              this.carouselData = cols;              if (this.carouselData && this.carouselData.length > 0) {                 const isMatched = this.carouselData.some(c => c.q === this.currentQuery || c.label === this.currentQuery);                 if (!isMatched) {                    const first = this.carouselData[0];                    this.currentQuery = first.q || first.label;                    if (this.priceFilter) this.priceFilter.value = 'all';                    if (this.customPriceMin) this.customPriceMin.value = '';                    if (this.customPriceMax) this.customPriceMax.value = '';                    let dPr = first.pr || 'all';                    if (typeof dPr === 'string' && dPr !== 'all') {                       let prLower = dPr.toLowerCase();                       if (prLower.includes('min') || prLower.includes('over')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else if (prLower.includes('max') || prLower.includes('under')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       }                    }                    let dAm = '0';                    if(first.ds && typeof first.ds === 'string') {                       let m = first.ds.match(/(\d+)/);                       if(m) dAm = m[1];                    }                    if (this.discountFilter) this.discountFilter.value = dAm;                    if (this.offerTypeSelect) this.offerTypeSelect.value = first.ot || '';                    if (this.retailerSelect) this.retailerSelect.value = first.rt || '';                    this.selectedBrands = [];                    if (this.brandDropdown) {                        const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                        chks.forEach(chk => chk.checked = false);                    }                    if (this.searchInput) this.searchInput.value = this.currentQuery;                 }              }              this.renderCarouselUI();          } catch(e){ console.warn(e); }        }                renderCarouselUI() {           const roundelWrapper = this.root.querySelector('.tg-df-carousel-roundels');           if(!roundelWrapper || !this.carouselData) return;                      let html = '';           this.carouselData.forEach(r => {              const q = r.q || r.label;              const isActive = (this.currentQuery === q || this.currentQuery === r.label) ? 'active' : '';              const imgHtml = r.img ? `\x3Cimg src="${r.img}" alt="${r.label}" />` : `\x3Csvg width="32" height="32" fill="#1F69FF" viewBox="0 0 24 24">\x3Cpath d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\x3C/svg>`;              html += `                \x3Cdiv class="tg-df-roundel tg-df-carousel-cat ${isActive}" data-label="${this.escapeHTML(r.label)}">                  \x3Cdiv class="tg-df-roundel-img-box">${imgHtml}\x3C/div>                  \x3Cspan class="tg-df-roundel-label">${this.escapeHTML(r.label)}\x3C/span>                \x3C/div>              `;           });           roundelWrapper.innerHTML = html;                      // Rebind clicks           const roundels = this.root.querySelectorAll('.tg-df-carousel-cat');           roundels.forEach(rNode => {             rNode.addEventListener('click', () => {                const r = this.carouselData.find(c => c.label === rNode.getAttribute('data-label'));                 if(!r) return;                                  if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: r.label,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = r.q || r.label;                const labelTitle = this.root.querySelector('#tg-df-carousel-title-label');                if (labelTitle) labelTitle.textContent = 'Best ' + this.currentQuery;                if (this.priceFilter) this.priceFilter.value = 'all';                if (this.customPriceMin) this.customPriceMin.value = '';                if (this.customPriceMax) this.customPriceMax.value = '';                let dPr = r.pr || 'all';                if (typeof dPr === 'string' && dPr !== 'all') {                   let prLower = dPr.toLowerCase();                   if (prLower.includes('min') || prLower.includes('over')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMin) this.customPriceMin.value = m[1];                   } else if (prLower.includes('max') || prLower.includes('under')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMax) this.customPriceMax.value = m[1];                   }                }                                let discountAmount = '0';                if(r.ds && typeof r.ds === 'string') {                   let m = r.ds.match(/(\d+)/);                   if(m) discountAmount = m[1];                }                if (this.discountFilter) this.discountFilter.value = discountAmount;                if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                                // Clear brands                    this.selectedBrands = [];                    if (this.brandDropdown) {                    const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                    chks.forEach(chk => chk.checked = false);                }                                if (this.searchInput) this.searchInput.value = this.currentQuery;                                roundels.forEach(ro => ro.classList.remove('active'));                if (rNode) rNode.classList.add('active');                                this.renderCarouselFilters(r);                this.fetchDeals(this.currentQuery);             });           });                      // Auto-highlight active           const activeR = this.carouselData.find(c => c.q === this.currentQuery || c.label === this.currentQuery);           if(activeR) this.renderCarouselFilters(activeR);        }                renderCarouselFilters(r) {           const filtersWrap = this.root.querySelector('.tg-df-carousel-filters-wrap');           if(!filtersWrap) return;                      let html = `\x3Cbutton class="tg-df-carousel-filter-btn" data-type="all">All\x3C/button>`;                      r.filters.forEach(f => {              let fL = f.toLowerCase();              let icon = '';              let logic = `data-type="custom" data-v="${this.escapeHTML(f)}"`;              if (fL === 'amazon deals' || fL === 'prime deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>`;              } else if (fL === 'lightning deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>`;              } else {                 if (fL.includes('lightning')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap">\x3Cpolygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2">\x3C/polygon>\x3C/svg>`;                 } else if (fL.includes('% off')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>`;                 } else if (fL.includes('under') || fL.includes('min ')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>`;                 }                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>${icon} ${this.escapeHTML(f)}\x3C/button>`;              }           });                      filtersWrap.innerHTML = html;                      const btns = filtersWrap.querySelectorAll('button');           btns.forEach(b => {             b.addEventListener('click', () => {                const type = b.getAttribute('data-type');                if (type === 'custom') {                   const v = b.getAttribute('data-v');                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-custom-${(v||'').toLowerCase().replace(/[^a-z0-9]+/g, '-')}`, name: 'Custom Filter', label: v });                }                if (type === 'all') {                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: 'filter-clear-all', name: 'Clear all', label: 'Clear all filters' });                   // reset everything                   btns.forEach(btn => btn.classList.remove('active'));                   b.classList.add('active');                                      // Reset prices                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   if (this.brandDropdown) {                     const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                     chks.forEach(chk => chk.checked = false);                   }                } else {                   const v = b.getAttribute('data-v');                   const fL = v.toLowerCase();                                      let mapRet = ['amazon', 'walmart', 'best buy', 'target', 'john lewis', 'currys', 'argos'];                   const getCategory = (s) => {                      if (s === 'lightning deals' || s === 'amazon deals' || s === 'prime deals') return 'offer';                      if (s.includes('% off')) return 'discount';                      if (s.includes('under') || s.includes('over') || s.includes('min') || s.includes('max')) return 'price';                      if (mapRet.includes(s)) return 'retailer';                      return 'brand';                   };                   const cat = getCategory(fL);                   const wasActive = b.classList.contains('active');                   if (cat !== 'brand') {                      btns.forEach(btn => {                          if (btn === b) return;                          if (btn.getAttribute('data-type') === 'all') return;                          const bV = btn.getAttribute('data-v');                          if (!bV) return;                          if (getCategory(bV.toLowerCase()) === cat) btn.classList.remove('active');                      });                   }                   if (wasActive) b.classList.remove('active');                   else b.classList.add('active');                   let anyActive = Array.from(btns).some(btn => btn !== btns[0] && btn.classList.contains('active'));                   if (!anyActive) {                       btns[0].click();                       return;                   } else {                       btns[0].classList.remove('active');                   }                                      if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   btns.forEach(btn => {                       if (!btn.classList.contains('active') || btn.getAttribute('data-type') === 'all') return;                       const vv = btn.getAttribute('data-v');                       const vl = vv.toLowerCase();                                              if (vl === 'lightning deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_lightning';                       } else if (vl === 'amazon deals' || vl === 'prime deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_prime';                       } else if (vl.includes('% off')) {                          let m = vl.match(/(\d+)%/);                          if (m && this.discountFilter) this.discountFilter.value = m[1];                       } else if (vl.includes('under') || vl.includes('max')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       } else if (vl.includes('min') || vl.includes('over')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else {                          let foundR = mapRet.find(x => x === vl);                          if (foundR) {                             let realR = ['Amazon', 'Walmart', 'Best Buy', 'Target', 'John Lewis', 'Currys', 'Argos'].find(x => x.toLowerCase() === vl);                             if (this.retailerSelect) this.retailerSelect.value = realR;                          } else {                             this.selectedBrands.push(vv);                          }                       }                   });                                      if (this.brandDropdown) {                       const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                       chks.forEach(c => c.checked = this.selectedBrands.includes(c.value));                   }                                      if (r.pr && typeof r.pr === 'string') {                       let prL = r.pr.toLowerCase();                       if (prL.includes('under $')) {                           let m = prL.match(/under \$(\d+)/i);                           if (m && this.customPriceMax && !this.customPriceMax.value) this.customPriceMax.value = m[1];                       }                   }                }                                this.fetchDeals(this.currentQuery);             });           });                      // default to highlighting first           btns[0].classList.add('active');        }async fetchDeals(query, append = false) {          if (!append) {             this.showLoading();             this.deals = [];             this.displayLimit = (this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12;          } else {             this.displayLimit += (this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12;          }                    try {            if (this.getViewMode() === 'savings_squad') {               await this.fetchSavingsSquad(append);            } else {               if (this.isBroadQuery(query)) {                 await this.fetchAdviserDeals(query, append);               } else {                 await this.fetchHawkDeals(query, append);                 if (this.deals.length === 0) {                   await this.fetchAdviserDeals(query, append);                 }               }            }          } catch (error) {            console.warn("[Tom's Guide Widget] Fetch error:", error);            this.showError();          }        }        async fetchSavingsSquad() {          let topArticles = this.airedaleArticles;          if (!topArticles) {            const airedaleUrl = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`;            let res;            try {               res = await fetch(airedaleUrl);            } catch(e) {               try { res = await fetch(`https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`); } catch (err) { console.warn("Fallback fetch failed", err); return; }            }            if (!res.ok) throw new Error('Airedale API Error');            const articles = await res.json();            topArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);            this.airedaleArticles = topArticles;                        let tagCounts = {};            topArticles.forEach((a) => {              let articleTags = new Set();              if (a.articlecategory && Array.isArray(a.articlecategory)) {                 a.articlecategory.forEach((t) => articleTags.add(t));              }              articleTags.forEach(t => {                 tagCounts[t] = (tagCounts[t] || 0) + 1;              });            });                        this.airedaleTags = Object.keys(tagCounts).sort((a, b) => tagCounts[b] - tagCounts[a]);            this.airedaleTagCounts = tagCounts;          }                    let targetArticles = topArticles;          if (this.activeDealTag) {             const cleanTag = this.activeDealTag.toLowerCase().replace(/&/g, '').replace(/[^a-z0-9]+/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');             const encodedTag = encodeURIComponent(cleanTag);             const url = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50&articleCategoryHandle=${encodedTag}`;             try {                const res = await fetch(url);                if (res.ok) {                   const articles = await res.json();                   targetArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);                }             } catch(e) {                console.warn("Failed to fetch by activeDealTag", e);             }          }          let extractedDeals = [];          let dynamicBrandsCounts = {};                    targetArticles.forEach((article) => {             if (!article.articlepage) return;                          let pageData = [];             try {                pageData = JSON.parse(article.articlepage[0]);             } catch(e){ console.warn(e); }                          const savingsSquad = pageData.filter((p) => p.type === 'deal' || p.type === 'featured-product');                          savingsSquad.forEach((block, idx) => {                const data = block.data || {};                const isFeatured = block.type === 'featured-product';                                const link = data.link || {};                const priceObj = data.price || {};                const image = data.image || {};                                if (data.brand) {                   data.brand = data.brand.replace(/^\d+\.\s*/, '').trim();                   dynamicBrandsCounts[data.brand] = (dynamicBrandsCounts[data.brand] || 0) + 1;                }                const externalUrl = isFeatured ? data.url : (link.href || null);                let summaryTitle = isFeatured ? (data.name || data.brand) : (data.productName || link.label || article.articlename);                let description = isFeatured ? (data.strapline || '') : (data.text || '');                                if (!isFeatured && !data.productName && data.text) {                   const brSplit = data.text.split(new RegExp('\x3Cbr\\s*\\/?\\x3E', 'i'));                   if (brSplit.length > 1) {                     summaryTitle = brSplit[0].replace(/<[^>]+>/g, '').trim();                     description = brSplit.slice(1).join(' ').replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').trim();                   } else {                     const match = data.text.match(/\x3Cstrong>(.*?)<\/strong>/);                     if (match) {                       summaryTitle = match[1].replace(/<[^>]+>/g, '').trim();                       if (summaryTitle.endsWith(':')) summaryTitle = summaryTitle.slice(0, -1);                     }                   }                }                                let imageUrl = isFeatured ? image.mos : (image.src || null);                if (imageUrl && imageUrl.startsWith('//')) imageUrl = 'https:' + imageUrl;                                description = description.replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').replace(/View Deal$/i, '').trim();                                let merchantName = data.retailer || '';                if (!merchantName && externalUrl) {                   try {                     merchantName = new URL(externalUrl).hostname.replace('www.', '').split('.')[0];                     merchantName = merchantName.charAt(0).toUpperCase() + merchantName.slice(1);                   }catch(e){ console.warn(e); }                }                if (!merchantName) merchantName = 'Retailer';                const q = (this.currentQuery || '').toLowerCase();                const activeTagLogic = (this.activeDealTag || '').toLowerCase();                if (q.length > 2 && q !== activeTagLogic) {                   const searchTarget = `${summaryTitle || ''} ${description || ''}`.toLowerCase();                   if (!searchTarget.includes(q)) return;                }                let rawPrice = 0;                let rawMsrp = 0;                let currencyStr = '$';                if (isFeatured) {                   rawPrice = typeof data.salePrice === 'number' && data.salePrice > 0 ? data.salePrice : (typeof data.price === 'number' ? data.price : 0);                   rawMsrp = typeof data.salePrice === 'number' && typeof data.price === 'number' && data.price > data.salePrice ? data.price : 0;                   currencyStr = data.currency === 'GBP' ? '£' : '$';                } else {                   rawPrice = priceObj.amount ? parseFloat(priceObj.amount) : 0;                   rawMsrp = priceObj.amountWas ? parseFloat(priceObj.amountWas) : 0;                   currencyStr = priceObj.currency === 'GBP' ? '£' : '$';                }                                let savingAmt = 0;                let savingLabel = '';                if (rawPrice > 0 && rawMsrp > rawPrice) {                   savingAmt = parseFloat((rawMsrp - rawPrice).toFixed(2));                   savingLabel = `Save ${currencyStr}${savingAmt}`;                }                                // Apply Brand filter                if (this.selectedBrands && this.selectedBrands.length > 0) {                   const itemBrand = (data.brand || '').toLowerCase();                   const hasMatch = this.selectedBrands.some(sb => sb.toLowerCase() === itemBrand);                   if (!hasMatch) return;                }                // Apply Price filter                let priceFilterVal = null;                const min = this.customPriceMin ? this.customPriceMin.value : '';                const max = this.customPriceMax ? this.customPriceMax.value : '';                if (min || max) {                   priceFilterVal = `${min}_${max}`;                } else if (this.priceFilter && this.priceFilter.value !== 'all') {                   priceFilterVal = this.priceFilter.value;                }                if (priceFilterVal && rawPrice > 0) {                   if (priceFilterVal === 'under50' && rawPrice >= 50) return;                   if (priceFilterVal === 'over50' && rawPrice <= 50) return;                   if (priceFilterVal === 'over30' && rawPrice <= 30) return;                   if (priceFilterVal === 'over500' && rawPrice <= 500) return;                   if (priceFilterVal.includes('_')) {                      const parts = priceFilterVal.split('_');                      const min = parseFloat(parts[0]);                      const max = parseFloat(parts[1]);                      if (!isNaN(min) && rawPrice < min) return;                      if (!isNaN(max) && rawPrice > max) return;                   }                }                // Apply Discount filter                if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {                   const requiredDiscount = parseInt(this.discountFilter.value);                   if (!isNaN(requiredDiscount) && requiredDiscount > 0) {                      if (!rawMsrp || rawMsrp <= rawPrice) return;                      const ratio = Math.round((1 - (rawPrice / rawMsrp)) * 100);                      if (ratio < requiredDiscount) return;                   }                }                                extractedDeals.push({                   id: `airedale-${article.id || Math.random()}-${idx}`,                   url: externalUrl,                   image: imageUrl,                   fallbackImage: imageUrl,                   title: summaryTitle,                   brand: data.brand || '',                   productName: data.productName || '',                   merchant: merchantName,                   rawPrice: rawPrice,                   rawMsrp: rawMsrp,                   price: rawPrice > 0 ? rawPrice.toString() : '',                   msrp: rawMsrp > 0 ? rawMsrp.toString() : '',                   currency: currencyStr,                   isCheckPrice: !rawPrice,                   savingLabel: savingLabel,                   savingType: rawMsrp > rawPrice ? 'amount' : 'none',                   isPrime: false,                   starRating: null,                   description: description,                   text: data.text || ''                });             });          });                    const airedaleBrandsList = Object.keys(dynamicBrandsCounts).map(b => ({              formatted_value: b,              count: dynamicBrandsCounts[b]          })).sort((a,b) => b.count - a.count);                    if (this.getViewMode() === 'savings_squad') {             this.populateBrandDropdown(airedaleBrandsList.slice(0, 15));             if (this.brandFilterWrapper) {                if (airedaleBrandsList.length === 0) {                    this.brandFilterWrapper.style.display = 'none';                } else {                    this.brandFilterWrapper.style.display = 'flex';                }             }          }                    this.deals = extractedDeals;          this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        isBroadQuery(query) {          const q = query.toLowerCase();          const intentModifiers = ['deals', 'best', 'sale', 'under', 'cheap', 'offers', 'discount'];          return intentModifiers.some(term => q.includes(term));        }        async fetchHawkDeals(query, append = false) {          const url = new URL(this.apiUrl);          url.searchParams.append('model_name', query);          const areaCode = this.getAreaCode();          if (areaCode) {            url.searchParams.append('area', areaCode);          }                    if (append && this.deals.length > 0) {            url.searchParams.append('offset', this.deals.length.toString());          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.append('filter_merchant_name', this.retailerSelect.value);          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.append('filter_label[text_brand]', this.selectedBrands.join(','));          }                    let priceVal = null;          const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             priceVal = `${min}_${max}`;          } else if (this.priceFilter && this.priceFilter.value !== 'all') {             priceVal = this.priceFilter.value;          }          if (priceVal) {            if (priceVal === 'under50') {              url.searchParams.append('filter_max_price', '50');            } else if (priceVal === 'over50') {              url.searchParams.append('filter_min_price', '50');            } else if (priceVal === 'over30') {              url.searchParams.append('filter_min_price', '30');            } else if (priceVal === 'over500') {              url.searchParams.append('filter_min_price', '500');            } else if (priceVal.includes('_')) {              const parts = priceVal.split('_');              if (parts[0]) url.searchParams.append('filter_min_price', parts[0]);              if (parts[1]) url.searchParams.append('filter_max_price', parts[1]);            }          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {              const ratio = (100 - v) / 100;              url.searchParams.append('min_discount_ratio', ratio.toString());            }          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.append('offer', this.offerTypeSelect.value);          }                    url.searchParams.append('filter_product_types', 'deals');                    if (this.rowsSelect && this.rowsSelect.value) {            url.searchParams.append('rows', this.rowsSelect.value);          } else {             url.searchParams.append('rows', '12'); // default          }          let response;          try {             response = await fetch(url.toString());          } catch(e) {             if (window.location.protocol === 'file:') {                console.warn("[Tom's Guide Widget] fetch from file:// blocked by local CORS policy, falling back to Adviser mock.");                await this.fetchAdviserDeals(query);                return;             }             console.warn("Hawk fetch failed", e);             this.deals = [];             this.render();             return;          }          if (!response.ok) {            throw new Error('Hawk API Response Error');          }          const rawData = await response.json();          // Safely locate data array from potentially wrapped response          let offers = [];          let modelInfoArray = [];                    let brandFilterData = null;          if (rawData && rawData.widget && rawData.widget.data && Array.isArray(rawData.widget.data.filters)) {             brandFilterData = rawData.widget.data.filters.find(f => f.type === 'label_text_brand');          } else if (rawData && rawData.data && Array.isArray(rawData.data.filters)) {             brandFilterData = rawData.data.filters.find(f => f.type === 'label_text_brand');          }          if (brandFilterData && Array.isArray(brandFilterData.values) && brandFilterData.values.length > 0) {             this.populateBrandDropdown(brandFilterData.values);          } else {             if (this.brandFilterWrapper && this.selectedBrands.length === 0) {                this.brandFilterWrapper.style.display = 'none';             }          }                    if (rawData && rawData.widget && rawData.widget.data) {            if (Array.isArray(rawData.widget.data.offers)) offers = rawData.widget.data.offers;            if (rawData.widget.data.model_info && typeof rawData.widget.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.widget.data.model_info) ? rawData.widget.data.model_info : Object.values(rawData.widget.data.model_info);            }          } else if (rawData && rawData.data) {            if (Array.isArray(rawData.data.offers)) offers = rawData.data.offers;            if (rawData.data.model_info && typeof rawData.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.data.model_info) ? rawData.data.model_info : Object.values(rawData.data.model_info);            }          } else {            if (Array.isArray(rawData)) offers = rawData;            else if (rawData && Array.isArray(rawData.offers)) offers = rawData.offers;            else if (rawData && rawData.offers && Array.isArray(rawData.offers.offer)) offers = rawData.offers.offer;            else if (rawData && rawData.offers) offers = [].concat(rawData.offers);                        if (rawData && rawData.model_info && typeof rawData.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.model_info) ? rawData.model_info : Object.values(rawData.model_info);            }          }          let modelDetails = {};          modelInfoArray.forEach(m => {            const mId = m.model_id || m.id;            if (mId) {              modelDetails[mId] = {                score: m.score != null ? parseFloat(m.score) : null,                brand: m.brand || null,                parent: (m.parents && Array.isArray(m.parents) && m.parents.length > 0) ? m.parents[0].name : null              };            }          });          offers.forEach(item => {            let data = { ...item };            const mId = data.model_id;            if (mId && modelDetails[mId]) {              data.review_score = modelDetails[mId].score;              data.model_brand = modelDetails[mId].brand;              data.model_parent = modelDetails[mId].parent;            } else {              data.review_score = null;            }                        let itemOffers = [];            if (Array.isArray(item.offers)) itemOffers = item.offers;            else if (Array.isArray(item.offer)) itemOffers = item.offer;            else if (item.offers && typeof item.offers === 'object') itemOffers = [item.offers];            else if (item.offer && typeof item.offer === 'object') itemOffers = [item.offer];            if (itemOffers.length > 0) {              itemOffers.forEach(subItem => {                let subData = { ...item, ...subItem };                const subId = subData.model_id;                if (subId && modelDetails[subId]) {                  subData.review_score = modelDetails[subId].score;                  subData.model_brand = modelDetails[subId].brand;                  subData.model_parent = modelDetails[subId].parent;                } else if (data.review_score != null) {                  subData.review_score = data.review_score;                }                if (subData.merchant && typeof subData.merchant === 'object') {                  subData.merchant_name = subData.merchant.name;                }                this.deals.push(this.extractDealData(subData));              });              return;            }                        if (item.merchant && typeof item.merchant === 'object') {              data.merchant_name = item.merchant.name;            }                        this.deals.push(this.extractDealData(data));          });                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        async fetchAdviserDeals(query) {          // ======================================================================          // TODO: ADVISER API REPLACEMENT          // The code below simulates the Adviser API response using mock data.          // Once the real endpoint is ready, remove getAdviserMockData() and           // perform an actual fetch() request similar to fetchHawkDeals().          // Example:          // const area = this.getAreaCode();          // let apiUrl = `https://your-adviser-api.com/search?q=${query}&area=${area}`;          // if (this.priceFilter && this.priceFilter.value !== 'all') {          //   const val = this.priceFilter.value;          //   if (val === 'under50') apiUrl += '&filter_max_price=50';          //   else if (val === '50_100') apiUrl += '&filter_max_price=100';          //   else if (val === '100_200') apiUrl += '&filter_max_price=200';          //   else if (val === '200_500') apiUrl += '&filter_max_price=500';          // }          // const res = await fetch(apiUrl);          // const rawData = await res.json();          // ======================================================================          // Simulating network latency          await new Promise(resolve => setTimeout(resolve, 400));                    const rawData = this.getAdviserMockData();          let offers = [];                    if (rawData && rawData.data && rawData.data.Get && Array.isArray(rawData.data.Get.Deal)) {            offers = rawData.data.Get.Deal;          }                    // Basic client-side filtering for the mock if we want it to react to the query          const q = query.toLowerCase();          const selectedRetailer = (this.retailerSelect && this.retailerSelect.value) ? this.retailerSelect.value.toLowerCase() : null;                    offers.forEach(item => {            const dataObj = item;                        // Apply retailer filter            const itemRetailer = (dataObj.dataRetailer || '').toLowerCase();            if (selectedRetailer && itemRetailer !== selectedRetailer && !itemRetailer.includes(selectedRetailer)) {              return;            }                        // Apply mock price filter            let price = dataObj.dataDiscountedPrice || 0;            if (typeof price === 'string') {              price = parseFloat(price.replace(/[^0-9.]/g, ''));            }            let priceVal = null;            const min = this.customPriceMin ? this.customPriceMin.value : '';            const max = this.customPriceMax ? this.customPriceMax.value : '';            if (min || max) {               priceVal = `${min}_${max}`;            } else if (this.priceFilter && this.priceFilter.value !== 'all') {               priceVal = this.priceFilter.value;            }            if (priceVal) {              if (priceVal === 'under50' && price >= 50) return;              if (priceVal === 'over50' && price <= 50) return;              if (priceVal === 'over30' && price <= 30) return;              if (priceVal === 'over500' && price <= 500) return;              if (priceVal.includes('_')) {                 const parts = priceVal.split('_');                 if (parts[0] && price < parseFloat(parts[0])) return;                 if (parts[1] && price > parseFloat(parts[1])) return;              }            }                        // Map Adviser schema to our widget's expected schema            const mappedData = {              url: dataObj.linkHREF || dataObj.dataLink || '#',              image: dataObj.imageURL || (dataObj.image && dataObj.image.src) || '',              title: dataObj.dataProduct || (dataObj.product && dataObj.product.name) || 'Product Deal',              merchant: dataObj.dataRetailer || 'Retailer',              price: dataObj.dataDiscountedPrice || 0,              currency: dataObj.dataCurrency === 'USD' ? '$' : (dataObj.dataCurrency || '$'),              msrp: dataObj.dataOriginalPrice || null            };                        const titleLow = mappedData.title.toLowerCase();            const merchLow = mappedData.merchant.toLowerCase();                        // Smarter mock filtering            let isMatch = false;            if (q === '' || this.isBroadQuery(q)) {              isMatch = true;            } else if (titleLow.includes(q) || merchLow.includes(q)) {              isMatch = true;            } else if ((q.includes('laptop') || q.includes('mac') || q.includes('pc')) && (titleLow.includes('macbook') || titleLow.includes('laptop'))) {              isMatch = true;            } else if ((q.includes('tv') || q.includes('television')) && (titleLow.includes('tv') || titleLow.includes('oled') || titleLow.includes('qled'))) {              isMatch = true;            } else if ((q.includes('phone') || q.includes('smartphone')) && (titleLow.includes('galaxy') || titleLow.includes('phone'))) {              isMatch = true;            } else if ((q.match(/watch|fitness|run|shoe/)) && (titleLow.includes('forerunner') || titleLow.includes('saucony') || titleLow.includes('watch'))) {              isMatch = true;            }                        if (isMatch) {               this.deals.push(this.extractDealData(mappedData));            }          });                    let rowLimit = 12;          if (this.rowsSelect && this.rowsSelect.value) {            rowLimit = parseInt(this.rowsSelect.value, 10) || 12;          }          // Intentionally omitting the slice here to allow "Load More" to work if the API returns more                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        getAdviserMockData() {          return {            "data": {              "Get": {                "Deal": [                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 300,                    "dataOriginalPrice": 399,                    "dataProduct": "Samsung Galaxy A36",                    "dataRetailer": "Samsung",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/MqDYsukV3JBG54te6dEs7j.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 14,                    "dataOriginalPrice": 24,                    "dataProduct": "Blink Mini",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/3JurmAjHsDa5tPdaHAwEV8.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 59,                    "dataOriginalPrice": 99,                    "dataProduct": "Ring Video Doorbell",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/rAh4uR7AsAsALCCLTXnLNJ.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 10,                    "dataOriginalPrice": 599,                    "dataProduct": "MacBook Neo",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/Lg4Dvg68j9SbB5CPNrTEpH.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 749,                    "dataOriginalPrice": 849,                    "dataProduct": "65\\\" Fire TV Omni 4K QLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/SG34ZWodUkLTxJvMTbjPYR.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 71,                    "dataOriginalPrice": 160,                    "dataProduct": "Saucony Hurricane 24",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/vxf7UD5T2Am7guVzFoFcZ4.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 649,                    "dataOriginalPrice": 749,                    "dataProduct": "Garmin Forerunner 970",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/3GKnEu7CdhtxPMfnPCMCiA.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1049,                    "dataOriginalPrice": 1499,                    "dataProduct": "LG 48\\\" C4 4K OLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/imvwZV9zoMD6fn9Afuge35.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1499,                    "dataOriginalPrice": 2199,                    "dataProduct": "Samsung 49\\\" Odyssey Neo G9 4K Gaming Monitor",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/XWDEJ5dUAE2nhK8k3Jk7k7.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 299,                    "dataOriginalPrice": 699,                    "dataProduct": "EGOHOME Black Memory Foam Mattress (queen)",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/hMUemtAejNETLVYxNrktzm.jpg"                  }                ]              }            }          };        }        decodeHTML(html) {          if (!html) return '';          const txt = document.createElement("textarea");          txt.innerHTML = String(html);          return txt.value;        }        extractDealData(item) {          const priceRawStr = String(item.price || item.current_price || '0');          const msrpRawStr = String(item.was_price || item.msrp || item.original_price || '0');          const rawPrice = parseFloat(priceRawStr.replace(/[^\d.]/g, '')) || 0;          const rawMsrp = parseFloat(msrpRawStr.replace(/[^\d.]/g, '')) || 0;          const isCheckPrice = rawPrice === 0 || priceRawStr === '0.00' || priceRawStr === '0';                    let originalImageUrl = item.image || item.image_url || item.product_image || '';          let imageUrl = originalImageUrl;          if ((!imageUrl || isCheckPrice) && item.model_image_url) {             imageUrl = item.model_image_url;             originalImageUrl = imageUrl;          } else if ((!imageUrl || isCheckPrice) && item.model_image) {             imageUrl = item.model_image;             originalImageUrl = imageUrl;          }                    if (imageUrl) {            imageUrl = imageUrl.replace(/-(\d+)-(\d+)(\.[a-z.]+)$/i, '$3');          }                    let fallbackImage = '';          if (originalImageUrl && originalImageUrl !== imageUrl) {             fallbackImage = originalImageUrl;          } else if (item.model_image && item.model_image !== imageUrl) {             fallbackImage = item.model_image;          } else if (item.model_image_url && item.model_image_url !== imageUrl) {             fallbackImage = item.model_image_url;          }                    const rawCurrency = item.currency || item.currency_symbol || '$';                    let savingLabel = item.percentage_saving_label || '';          if (!savingLabel && rawMsrp > rawPrice && rawPrice > 0) {            const pct = Math.round(((rawMsrp - rawPrice) / rawMsrp) * 100);            if (pct > 0) {              savingLabel = `${pct}% OFF`;            }          }                    const isPrime = item.shipping && item.shipping.prime === true;                    let scoreRaw = (item.review_score !== undefined && item.review_score !== null && item.review_score > 0) ? parseFloat(item.review_score) : null;          let starRating = 0;          if (scoreRaw !== null) {            starRating = Math.round((scoreRaw > 10 ? scoreRaw / 20 : scoreRaw / 2) * 2) / 2;          }                    return {            id: item.offer_id || item.link || item.url || item.offer_link || Math.random().toString(),            url: item.link || item.url || item.offer_link || '#',            image: imageUrl,            fallbackImage: fallbackImage,            title: item.name || item.title || item.model_name || item.product_name || 'Unknown Product',            brand: item.brand || '',            productName: item.model_name || item.product_name || item.name || '',            merchant: item.merchant_name || item.merchant || item.retailer || 'Retailer',            price: item.price !== undefined ? String(item.price) : '0.00',            currency: this.decodeHTML(rawCurrency),            msrp: item.was_price || item.msrp || item.original_price || null,            rawPrice: rawPrice,            rawMsrp: rawMsrp,            hasWasPrice: (item.was_price !== undefined && item.was_price !== null),            isCheckPrice: isCheckPrice,            savingLabel: savingLabel,            isPrime: isPrime,            starRating: starRating > 0 ? starRating : null,            modelId: item.model_id || '',            productKey: item.product_key || '',            merchantId: (item.merchant && typeof item.merchant === 'object') ? item.merchant.id || '' : '',            matchId: item.match_id || '',            merchantNetwork: (item.merchant && typeof item.merchant === 'object') ? item.merchant.an || '' : '',            merchantUrl: (item.merchant && typeof item.merchant === 'object') ? item.merchant.url || '' : '',            modelBrand: item.model_brand || item.brand || '',            modelParent: item.model_parent || ''          };        }        sortData() {          const sortVal = this.sortSelect ? this.sortSelect.value : (this.getViewMode() === 'savings_squad' ? 'date_desc' : 'discount_desc');          if (sortVal === 'price_asc') {            this.deals.sort((a, b) => a.rawPrice - b.rawPrice);          } else if (sortVal === 'price_desc') {            this.deals.sort((a, b) => b.rawPrice - a.rawPrice);          } else if (sortVal === 'discount_desc') {            this.deals.sort((a, b) => {              const aDiscount = a.rawMsrp > a.rawPrice ? (a.rawMsrp - a.rawPrice) : 0;              const bDiscount = b.rawMsrp > b.rawPrice ? (b.rawMsrp - b.rawPrice) : 0;              return bDiscount - aDiscount;            });          } else if (sortVal === 'date_desc') {             this.deals.sort((a, b) => {                let dateA = 0;                let dateB = 0;                if (a && a.modifiedDate) {                   const valA = Array.isArray(a.modifiedDate) ? a.modifiedDate[0] : a.modifiedDate;                   dateA = new Date(valA).getTime();                   if (isNaN(dateA)) dateA = 0;                }                if (b && b.modifiedDate) {                   const valB = Array.isArray(b.modifiedDate) ? b.modifiedDate[0] : b.modifiedDate;                   dateB = new Date(valB).getTime();                   if (isNaN(dateB)) dateB = 0;                }                return dateB - dateA;             });          }        }        getFilteredDeals() {          let filteredDeals = [...this.deals];                    if (this.dealModeToggle && this.dealModeToggle.checked) {            filteredDeals = filteredDeals.filter(d => d.hasWasPrice || (d.msrp && d.rawMsrp > d.rawPrice));          }                    return filteredDeals;        }        showLoading() {          const _div = '<' + '/div>';          const skeletonCardHtml = `            \x3Cdiv class="tg-df-card">              \x3Cdiv class="tg-df-card-image-box">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-img">${_div}              ${_div}              \x3Cdiv class="tg-df-card-body">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-card-footer mt-auto">                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="height:24px;">${_div}                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text" style="height:44px; margin-top:8px;">${_div}                ${_div}              ${_div}            ${_div}`;          this.grid.innerHTML = Array(4).fill(skeletonCardHtml).join('');        }        showError() {          const _div = '<' + '/div>';          this.grid.innerHTML = `\x3Cdiv class="tg-df-message">            An error occurred while finding deals. Please check your connection and try again.          ${_div}`;        }        escapeHTML(str) {          if (!str) return '';          return String(str).replace(/[&<>'"]/g, tag => ({              '&': '&', '<': '<', '>': '>', "'": ''', '"': '"'          }[tag] || tag));        }                bindCouponButtons() {          const btns = this.root.querySelectorAll('.tg-df-tag-coupons');          btns.forEach(btn => {            btn.addEventListener('click', (e) => {              e.preventDefault();              e.stopPropagation();              const merchant = btn.getAttribute('data-merchant');              this.openVouchersModal(merchant);            });          });                    const closeBtn = this.root.querySelector('#tg-df-vouchers-close');          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (closeBtn) {            closeBtn.onclick = () => this.closeVouchersModal();          }          if (backdrop) {            backdrop.onclick = (e) => {              if (e.target === backdrop) this.closeVouchersModal();            };          }        }                closeVouchersModal() {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (backdrop) backdrop.classList.remove('active');        }                async checkMerchantsCouponsBulk(merchants) {          if (!merchants || merchants.length === 0) return {};          const controller = new AbortController();          const timeoutId = setTimeout(() => controller.abort(), 4000);          try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchants.join(','));            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '120');            url.searchParams.append('origin', 'widgets-clientside');                        let res; try { res = await fetch(url.toString(), { signal: controller.signal }); } catch (e) { return {}; }            clearTimeout(timeoutId);            if (!res.ok) return {};            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        const foundMerchants = new Set();            offers.forEach(o => {              let mName = o.merchant_name || o.merchant || o.retailer;              if (mName && typeof mName === 'object') mName = mName.name;              if (mName) foundMerchants.add(String(mName).toLowerCase());            });            const resultMap = {};            merchants.forEach(m => {              if (m) resultMap[m] = foundMerchants.has(String(m).toLowerCase());            });            return resultMap;          } catch (e) {            return {};          }        }                async openVouchersModal(merchantName) {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          const title = this.root.querySelector('#tg-df-vouchers-title');          const content = this.root.querySelector('#tg-df-vouchers-content');                    if (!backdrop || !content) return;                    // HACK: Hide closing tags          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h4 = '<' + '/h4>';          const _svg = '<' + '/svg>';          const _circle = '<' + '/circle>';          const _polyline = '<' + '/polyline>';          const _rect = '<' + '/rect>';          const _path = '<' + '/path>';                    title.innerText = `${merchantName} Coupons & Deals`;          content.innerHTML = `\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}                               \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}`;          backdrop.classList.add('active');                    try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchantName);            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '50');            url.searchParams.append('origin', 'widgets-clientside');                        const res = await fetch(url.toString());            if (!res.ok) throw new Error('API Error');            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        if (offers.length === 0) {              content.innerHTML = `\x3Cdiv class="tg-df-message">No vouchers currently available for ${this.escapeHTML(merchantName)}.${_div}`;              return;            }                        content.innerHTML = offers.map((v, idx) => {              let offerObj = v;              if (v.offers && v.offers.offer) {                offerObj = Array.isArray(v.offers.offer) ? v.offers.offer[0] : v.offers.offer;              } else if (v.offer) {                offerObj = Array.isArray(v.offer) ? v.offer[0] : v.offer;              }              let logoUrl = v.logo_url || offerObj.logo_url || '';              if (!logoUrl && v.merchant) {                if (Array.isArray(v.merchant) && v.merchant.length > 0) logoUrl = v.merchant[0].logo_url || '';                else logoUrl = v.merchant.logo_url || '';              }                            const offerName = offerObj.name || offerObj.title || v.name || v.title || 'Special Offer';              const endTime = offerObj.end_time || v.end_time || '';              const linkUrl = offerObj.link || offerObj.url || v.link || v.url || '#';                            let foundVoucherCode = '';              const findVoucherCode = (obj) => {                if (!obj || typeof obj !== 'object') return;                if (obj.type === 'voucher_code' && obj.display_value) {                  foundVoucherCode = obj.display_value;                  return;                }                if (Array.isArray(obj)) {                  for (const item of obj) {                    findVoucherCode(item);                    if (foundVoucherCode) return;                  }                } else {                  for (const k in obj) {                    if (Object.prototype.hasOwnProperty.call(obj, k)) {                      findVoucherCode(obj[k]);                      if (foundVoucherCode) return;                    }                  }                }              };              findVoucherCode(offerObj);              if (!foundVoucherCode) findVoucherCode(v);                            const voucherCode = foundVoucherCode || offerObj.voucher_code || v.voucher_code || '';              const codeHtml = voucherCode ? `\x3Cspan class="tg-df-voucher-code" data-action="copy-code" data-code="${this.escapeHTML(voucherCode)}" title="Copy to clipboard">                \x3Cspan class="tg-df-voucher-code-text">${this.escapeHTML(voucherCode)}${_span}                \x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-left:6px;flex-shrink:0;" class="tg-df-voucher-copy-icon">                  \x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">${_rect}                  \x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">${_path}                ${_svg}              ${_span}` : '';                            const logoHtml = logoUrl                 ? `\x3Cimg src="${this.escapeHTML(logoUrl)}" alt="${this.escapeHTML(offerName)}" class="tg-df-voucher-logo" />`                 : `\x3Cdiv class="tg-df-voucher-logo" style="background:#e2e8f0;">${_div}`;                            let expiryHtml = '';              if (endTime) {                let dStr = endTime;                if (!isNaN(dStr) && String(dStr).length === 10) dStr = Number(dStr) * 1000;                const d = new Date(dStr);                if (!isNaN(d.getTime())) {                  const options = { year: 'numeric', month: 'short', day: 'numeric' };                  expiryHtml = `                    \x3Cdiv class="tg-df-voucher-expiry">                      \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                        \x3Ccircle cx="12" cy="12" r="10">${_circle}                        \x3Cpolyline points="12 6 12 12 16 14">${_polyline}                      ${_svg}                      Expires ${d.toLocaleDateString(undefined, options)}                    ${_div}`;                }              }              const revenueIdVal = generateRevenueId(linkUrl, offerName, merchantName, null);              const rewrittenLinkUrl = rewriteAffiliateLink(linkUrl, area, revenueIdVal);              return `                \x3Ca href="${this.escapeHTML(rewrittenLinkUrl)}" target="_blank" rel="noopener nofollow" class="tg-df-voucher-item"                  data-action="voucher-click"                  data-product-name="${this.escapeHTML(offerName)}"                  data-merchant-name="${this.escapeHTML(merchantName)}"                  data-analytics-id="${this.escapeHTML(offerObj.offer_id || offerObj.id || v.id || '')}"                  data-price=""                  data-previous-price=""                  data-original-link="${this.escapeHTML(linkUrl)}"                  data-revenue-id="${revenueIdVal}"                  data-index="${idx}"                  data-total="${offers.length}"                  data-in-stock="true"                  data-currency="USD"                  data-model-id="${this.escapeHTML(offerObj.model_id || v.model_id || offerObj.id || v.id || '')}"                  data-merchant-id="${this.escapeHTML(offerObj.merchant_id || offerObj.merchant?.id || '')}"                >                  ${logoHtml}                  \x3Cdiv class="tg-df-voucher-content">                    \x3Ch4 class="tg-df-voucher-title">${this.escapeHTML(offerName)}${_h4}                    ${codeHtml}                    ${expiryHtml}                  ${_div}                ${_a}              `;            }).join('');                        // Attach copy functionality            const copyBtns = content.querySelectorAll('[data-action="copy-code"]');            copyBtns.forEach(btn => {              btn.addEventListener('click', async (e) => {                e.preventDefault();                e.stopPropagation();                                const code = btn.getAttribute('data-code');                if (!code) return;                                try {                  const copyToClipboard = async (text) => {                     if (window.navigator.clipboard && window.isSecureContext) {                        try { await window.navigator.clipboard.writeText(text); return; } catch (e) {}                     }                     const textArea = document.createElement("textarea");                     textArea.value = text;                     textArea.style.position = "fixed";                     document.body.appendChild(textArea);                     textArea.focus();                     textArea.select();                     document.execCommand('copy');                     textArea.remove();                  };                  await copyToClipboard(code);                                    // Visual feedback                  btn.classList.add('copied');                  const textSpan = btn.querySelector('.tg-df-voucher-code-text');                  const iconSvg = btn.querySelector('.tg-df-voucher-copy-icon');                                    const origText = textSpan.innerText;                  const origIcon = iconSvg.innerHTML;                                    textSpan.innerText = 'Copied!';                  iconSvg.innerHTML = `\x3Cpolyline points="20 6 9 17 4 12">${_polyline}`;                                    setTimeout(() => {                    if (btn) {                      btn.classList.remove('copied');                      if (textSpan) textSpan.innerText = origText;                      if (iconSvg) iconSvg.innerHTML = origIcon;                    }                  }, 2000);                                    trackElementInteraction({                    id: 'voucher-code-copy',                    name: 'Copy Voucher Code',                    label: `Copied ${code} for ${merchantName}`                  });                } catch (err) {                  console.warn('Failed to copy text: ', err);                }              });            });            // Attach voucher click tracking            const voucherBtns = content.querySelectorAll('[data-action="voucher-click"]');            voucherBtns.forEach(btn => {              btn.addEventListener('click', (e) => {                if (e.target.closest('[data-action="copy-code"]')) return;                                const productName = btn.getAttribute('data-product-name');                const merchantNameAttr = btn.getAttribute('data-merchant-name');                const productId = btn.getAttribute('data-analytics-id');                const price = parseFloat(btn.getAttribute('data-price')) || null;                const prevPriceStr = btn.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = btn.getAttribute('data-original-link');                const rewrittenLink = btn.getAttribute('href');                const revenueId = btn.getAttribute('data-revenue-id');                const index = parseInt(btn.getAttribute('data-index'), 10) || 0;                const inStock = btn.getAttribute('data-in-stock') === 'true';                const totalText = btn.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: btn.getAttribute('data-model-id') || null,                    matchId: btn.getAttribute('data-match-id') || null,                    brand: btn.getAttribute('data-model-brand') || null,                    parent: btn.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: btn.getAttribute('data-merchant-id') || null,                    network: btn.getAttribute('data-merchant-network') || null,                    url: btn.getAttribute('data-merchant-url') || null,                    name: merchantNameAttr                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: btn.getAttribute('data-currency') || 'USD'                };                if (typeof trackDealClick === 'function') {                  trackDealClick(trackingParams);                }              });            });                                  } catch (e) {            console.warn(e);            content.innerHTML = `\x3Cdiv class="tg-df-message">Failed to load vouchers.${_div}`;          }        }        render() {          try {            if (this.getViewMode() === 'savings_squad' && this.airedaleTags.length > 0) {              if (this.categoryFilterWrapper) {                 this.categoryFilterWrapper.style.display = 'flex';              }              if (this.categoryFilter) {                 const _option = '<' + '/option>';                 let optionsHtml = `\x3Coption value="all">All Categories${_option}`;                 this.airedaleTags.forEach(tag => {                    const isSelected = this.activeDealTag === tag ? 'selected' : '';                    optionsHtml += `\x3Coption value="${this.escapeHTML(tag)}" ${isSelected}>${this.escapeHTML(tag)} (${this.airedaleTagCounts[tag] || 0})${_option}`;                 });                 this.categoryFilter.innerHTML = optionsHtml;                 this.categoryFilter.value = this.activeDealTag || 'all';              }            } else {               if (this.categoryFilterWrapper) {                  this.categoryFilterWrapper.style.display = 'none';               }            }            const displayDeals = this.getFilteredDeals();          // HACK: Hide closing tags from the CMS HTML sanitizer so it doesn't strip them during in-page injection          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h3 = '<' + '/h3>';          const _p = '<' + '/p>';          const _strong = '<' + '/strong>';          const _sup = '<' + '/sup>';          const _button = '<' + '/button>';          if (displayDeals.length === 0) {            if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {              if (this.deals.length > 0) {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No deals match your selected filters.                ${_div}`;              } else if (this.getViewMode() === 'savings_squad' && this.currentQuery.length <= 2) {                 // Do not show "no exact matches" if query is empty for savings_squad                 this.grid.innerHTML = '';              } else {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No exact matches found for "\x3Cstrong>${this.escapeHTML(this.currentQuery)}${_strong}". Try adjusting your search term.                ${_div}`;              }            } else {              this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                Search product or category names to discover the best deals from across the web.              ${_div}`;            }            return;          }          let dealsHtml = displayDeals.slice(0, this.displayLimit).map((deal, index) => {            try {               const currencySym = this.escapeHTML(deal.currency);               const isoCurrencyCode = normalizeCurrency(currencySym);               const escapedPrice = this.escapeHTML(deal.price);               const escapedMsrp = this.escapeHTML(deal.msrp);               const areaCode = this.getAreaCode();                              const revenueId = generateRevenueId(deal.url, deal.title, deal.merchant, null);               const originalLink = deal.url;               const rewrittenLink = rewriteAffiliateLink(deal.url, areaCode, revenueId);                        const productCategoryName = 'deals';            const dataAttr = `              data-action="${deal.isCheckPrice ? 'view-similar-click' : 'deal-click'}"              data-analytics-id="${this.escapeHTML(deal.externalProductId || deal.id || '')}"              data-product-name="${this.escapeHTML(deal.title)}"              data-merchant-name="${this.escapeHTML(deal.merchant)}"              data-price="${deal.rawPrice || ''}"              data-previous-price="${deal.rawMsrp || ''}"              data-original-link="${this.escapeHTML(originalLink)}"              data-revenue-id="${revenueId}"              data-index="${index}"              data-total="${displayDeals.length}"              data-in-stock="${deal.inStock !== false}"              data-currency="${this.escapeHTML(isoCurrencyCode)}"              data-model-id="${this.escapeHTML(deal.modelId || '')}"              data-product-key="${this.escapeHTML(deal.productKey || '')}"              data-merchant-id="${this.escapeHTML(deal.merchantId || '')}"            `;                        let priceGroupHtml = '';            let isSavingsSquadMode = this.getViewMode() === 'savings_squad';            let ctaText = 'View Deal';            let formattedPrice = '';            let msrpHtml = '';                        if (deal.isCheckPrice) {              ctaText = isSavingsSquadMode ? 'View Deal' : 'Check Price';              if (isSavingsSquadMode) {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                  ${_div}                `;              } else {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                    \x3Cspan class="tg-df-card-price" style="font-size: 15px; font-weight: 500; font-style: italic;">See price at retailer${_span}                  ${_div}                `;              }            } else {              // Format Price              formattedPrice = escapedPrice.includes(currencySym)                 ? escapedPrice                 : `${currencySym}${escapedPrice}`;                              // Format MSRP              msrpHtml = deal.msrp && deal.rawMsrp > deal.rawPrice                ? `\x3Cspan class="tg-df-card-msrp">${escapedMsrp.includes(currencySym) ? escapedMsrp : currencySym + escapedMsrp}${_span}`                : '';                              priceGroupHtml = `                \x3Cdiv class="tg-df-card-merchant-wrapper">                  \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                ${_div}                \x3Cdiv class="tg-df-card-price-group">                  ${isSavingsSquadMode ? '' : `                  \x3Cspan class="tg-df-card-price">${formattedPrice}${_span}                  ${msrpHtml}                  `}                ${_div}              `;            }                        const discountBadgeHtml = deal.savingLabel && !deal.isCheckPrice              ? `\x3Cspan class="tg-df-card-discount-badge">${this.escapeHTML(deal.savingLabel)}${_span}`              : '';                          // HACK for CMS            const _button = '<' + '/button>';            const _svg = '<' + '/svg>';            const _path = '<' + '/path>';            const _rect = '<' + '/rect>';            const _circle = '<' + '/circle>';            const _polyline = '<' + '/polyline>';            const _line = '<' + '/line>';                        let badgesHtml = '';            const primeBadge = deal.isPrime ? `              \x3Cspan class="tg-df-tag tg-df-tag-prime">                \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="currentColor">                  \x3Cpath d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z">${_path}                ${_svg} Prime              ${_span}            ` : '';                        const couponsBadge = deal.merchant && deal.merchant.toLowerCase().includes('amazon') ? '' : `              \x3Cdiv class="tg-df-coupon-wrapper" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:inline-flex; align-items:center;">                \x3Cdiv class="tg-df-coupon-spinner">${_div}                \x3Cbutton type="button" class="tg-df-tag tg-df-tag-coupons" data-action="coupons-click" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:none;">                  \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                    \x3Cpath d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z">${_path}                    \x3Cline x1="7" y1="7" x2="7.01" y2="7">${_line}                  ${_svg} Coupons                ${_button}              ${_div}            `;                        // Note: We always add coupons badge if there's a chance, but to allow 3-line titles we check wrapper display state            badgesHtml = `              \x3Cdiv class="tg-df-card-badges">                ${primeBadge}                ${couponsBadge}              ${_div}            `;            const _linearGradient = '<' + '/linearGradient>';            const _polygon = '<' + '/polygon>';            const _stop = '<' + '/stop>';            const _defs = '<' + '/defs>';                        let starHtml = '';            if (deal.starRating) {              let rating = deal.starRating;                            if (rating > 0) {                const fullStars = Math.floor(rating);                const halfStar = (rating - fullStars) >= 0.5 ? 1 : 0;                const emptyStars = Math.max(0, 5 - fullStars - halfStar);                const blue = '#1f69ff'; // Tom's guide brand color from VIEW DEAL button                const gray = '#cbd5e1';                                const starSvgFull = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="${blue}" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                const gradId = 'half_grad_' + Math.floor(Math.random()*1000000);                const starSvgHalf = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cdefs>\x3ClinearGradient id="${gradId}" x1="0" x2="1" y1="0" y2="0">\x3Cstop offset="50%" stop-color="${blue}">${_stop}\x3Cstop offset="50%" stop-color="transparent">${_stop}${_linearGradient}${_defs}                  \x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26" fill="url(#${gradId})">${_polygon}${_svg}`;                                  const starSvgEmpty = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="${gray}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                let stars = [];                for (let i=0; i<fullStars; i++) stars.push(starSvgFull);                if (halfStar) stars.push(starSvgHalf);                for (let i=0; i<emptyStars; i++) stars.push(starSvgEmpty);                                starHtml = `\x3Cdiv class="tg-df-card-stars" style="display:flex;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--tg-df-text-muted);">                  \x3Cspan style="margin-right:6px;">Tom's Guide:${_span}                  \x3Cdiv style="display:flex;gap:2px;">                    ${stars.join('')}                  ${_div}                ${_div}`;              }            }            let htmlOutput = '';            if (isSavingsSquadMode) {              htmlOutput += `              \x3Cdiv class="hawk-deal-widget-container tg-df-mobile-only" data-collapsible="true">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''} style="margin-bottom: 10px;">` : ''}                \x3Cdiv class="hawk-deal-widget-wrap">                  \x3Cdiv class="hawk-deal-widget-image-container">                    \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" rel="sponsored noopener" target="_blank" class="hawk-affiliate-link-deal-widget" ${dataAttr}>                      \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="hawk-lazy-image-deal-widget" loading="lazy" width="140" height="160" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                    ${_a}                  ${_div}                  \x3Cdiv class="hawk-deal-widget-text-cta-container">                    \x3Cdiv class="hawk-deal-widget-text-body-container">                      \x3Cdiv class="hawk-deal-widget-text-body-main">                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          ${deal.isCheckPrice ? `                            \x3Cspan class="hawk-deal-widget-title-product-title">${this.escapeHTML(deal.title)}${_span}                          ` : `                            \x3Cspan class="hawk-deal-widget-title-product-title">${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_span}                          `}                        ${_a}                        ${!deal.isCheckPrice && deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan class="hawk-deal-widget-title-was-price">was ${currencySym}${escapedMsrp}${_span}                          ${_a}                        ` : ''}                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          \x3Cspan class="hawk-deal-widget-title-retailer-price">                            ${!deal.isCheckPrice ? `                              \x3Cspan class="hawk-deal-widget-title-price">now ${formattedPrice}${_span}                              \x3Cspan class="hawk-deal-widget-title-retailer"> at ${this.escapeHTML(deal.merchant)}${_span}                            ` : `                              \x3Cspan class="hawk-deal-widget-title-price">See price at ${this.escapeHTML(deal.merchant)}${_span}                            `}                          ${_span}                        ${_a}                        ${deal.description ? `\x3Cdiv class="hawk-deal-widget-text-body-description">\x3Cp>${this.escapeHTML(deal.description)}${_p}${_div}` : ''}                      ${_div}                    ${_div}                    \x3Cdiv class="hawk-deal-widget-footer">                      \x3Cdiv class="hawk-deal-widget-button-wrapper">                        \x3Cdiv class="hawk-deal-widget-preferred-partner-wrapper">                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-deal-button" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan>${deal.isCheckPrice ? 'Check Price' : 'View Deal'}${_span}                          ${_a}                        ${_div}                      ${_div}                    ${_div}                  ${_div}                ${_div}              ${_div}              `;            }            htmlOutput += `              \x3Cdiv class="tg-df-card ${isSavingsSquadMode ? 'tg-df-desktop-only' : ''}">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''}>` : ''}                \x3Cdiv class="tg-df-card-image-box">                  ${discountBadgeHtml}                  \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">                    \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="tg-df-card-image" loading="lazy" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                  ${_a}                ${_div}                \x3Cdiv class="tg-df-card-body">                  ${starHtml}                  ${badgesHtml}                  \x3Ch3 class="tg-df-card-title tg-df-custom-savings-squad-title" title="${this.escapeHTML(deal.title)}">                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" disable-tracking="true" target="_blank" rel="noopener nofollow" style="text-decoration: none; color: inherit;">                      ${isSavingsSquadMode                         ? (deal.isCheckPrice                             ? (deal.title && deal.title.includes(':')                                 ? `\x3Cstrong>${this.escapeHTML(deal.title.substring(0, deal.title.indexOf(':') + 1))}${_strong}\x3Cspan style="color: #1f69ff; font-weight: normal;">${this.escapeHTML(deal.title.substring(deal.title.indexOf(':') + 1))}${_span}`                                : this.escapeHTML(deal.title)                              )                             : `\x3Cstrong>${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_strong} ${deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `\x3Cspan style="color: #d0021b; text-decoration: line-through; font-weight: normal; margin-right: 4px;">was ${currencySym}${escapedMsrp}${_span} ` : ''}\x3Cspan style="color: #1f69ff; font-weight: normal;">now ${formattedPrice} at ${this.escapeHTML(deal.merchant)}${_span}`                          )                        : this.escapeHTML(deal.title)                      }                    ${_a}                  ${_h3}                  ${deal.description ? `\x3Cp style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 12px; line-height: 1.4;">${this.escapeHTML(deal.description)}${_p}` : ''}                  \x3Cdiv class="tg-df-card-footer">                    ${priceGroupHtml}                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" class="tg-df-card-cta ${isSavingsSquadMode ? 'tg-df-cta-savings-squad' : ''}" style="text-decoration: none;">${ctaText}${_a}                  ${_div}                ${_div}              ${_div}            `;                        return htmlOutput;            } catch (e) {               console.log("Error rendering deal in map for index", index, typeof deal === 'object' ? JSON.stringify(deal) : deal, "MSG:", e.message);               return '';            }          }).join('');                    if (displayDeals.length > this.displayLimit || ((this.getViewMode() === 'carousel' || this.getViewMode() === 'auto') && displayDeals.length > 0 && displayDeals.length % ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12) === 0)) {            if (this.getViewMode() === 'carousel') {               dealsHtml += `                 \x3Cbutton type="button" class="tg-df-load-more-card tg-df-load-more">                   \x3Csvg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 8px;">\x3Cpath d="M5 12h14">\x3C/path>\x3Cpath d="m12 5 7 7-7 7">\x3C/path>\x3C/svg>                   Load More                 ${_button}               `;            } else {               dealsHtml += `                 \x3Cdiv style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1;">                   \x3Cbutton type="button" class="tg-df-tag-outline tg-df-load-more" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer; display: flex; align-items: center;">Load More${_button}                 ${_div}               `;            }          }                    this.grid.innerHTML = dealsHtml;          // Inject JSON-LD          try {            let targetNode = this.hostContainer || document.head;            let jsonLdScript = targetNode.querySelector('#tg-df-json-ld-' + this.widgetId);            if (!jsonLdScript) {                jsonLdScript = document.createElement('script');                jsonLdScript.type = 'application/ld+json';                jsonLdScript.id = 'tg-df-json-ld-' + this.widgetId;                targetNode.appendChild(jsonLdScript);            }            const jsonLdData = {              "@context": "https://schema.org",              "@type": "ItemList",              "itemListElement": displayDeals.slice(0, this.displayLimit).map((deal, index) => {                 let isoCurrency = "USD";                 if (deal.currency === '£') isoCurrency = "GBP";                 else if (deal.currency === '€') isoCurrency = "EUR";                 else if (deal.currency === 'A$') isoCurrency = "AUD";                 else if (deal.currency === 'CA$') isoCurrency = "CAD";                 const areaCode = typeof this.getAreaCode === 'function' ? this.getAreaCode() : 'US';                 const revenueId = typeof generateRevenueId === 'function' ? generateRevenueId(deal.url, deal.title, deal.merchant, null) : '';                 const rewrittenLink = typeof rewriteAffiliateLink === 'function' ? rewriteAffiliateLink(deal.url, areaCode, revenueId) : deal.url;                 return {                   "@type": "ListItem",                   "position": index + 1,                   "item": {                     "@type": "Product",                     "name": deal.title,                     "image": deal.image || "",                     "description": deal.description || "",                     "brand": {                       "@type": "Brand",                       "name": deal.brand || ""                     },                     "offers": {                       "@type": "Offer",                       "priceCurrency": isoCurrency,                       "price": deal.rawPrice || 0,                       "url": rewrittenLink,                       "seller": {                         "@type": "Organization",                         "name": deal.merchant || ""                       }                     }                   }                 };              }).filter(item => item.item.name)            };            jsonLdScript.textContent = JSON.stringify(jsonLdData);          } catch(e) { console.warn("JSON-LD generation failed", e); }                    let gridWrapper = this.grid.parentElement;          if (gridWrapper && gridWrapper.classList.contains('tg-df-grid-wrapper')) {             let rightChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-right');             let leftChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-left');             if (this.getViewMode() === 'carousel') {                 // The observer set up in setupScrollListeners handles visibility.                 if (rightChevron) rightChevron.style.display = 'flex';                 if (leftChevron) leftChevron.style.display = 'none'; // reset correctly             } else {                 if (rightChevron) rightChevron.style.display = 'none';                 if (leftChevron) leftChevron.style.display = 'none';             }          }                    const loadMoreBtn = this.grid.querySelector('.tg-df-load-more');          if (loadMoreBtn) {            loadMoreBtn.addEventListener('click', async () => {              if (typeof trackElementInteraction === 'function') {                trackElementInteraction({ id: 'load-more', name: 'Load more', label: 'Load More Results' });              }              if (displayDeals.length <= this.displayLimit) {                 loadMoreBtn.innerHTML = `                  <svg class="tg-df-spinner" style="width: 16px; height: 16px; display: inline-block; vertical-align: middle; margin-right: 8px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83"/></svg>                  Loading...                 `;                 loadMoreBtn.disabled = true;                 await this.fetchDeals(this.currentQuery, true);              } else {                 this.displayLimit += ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12);                 this.render();              }            });          }                      this.bindCouponButtons();            this.checkAndUpdateCoupons();                        // Allow hawklinks.js to discover and rewrite our widget links             // by appending the .article-body class and manually triggering processArticle.            let container = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (container && !container.classList.contains('article-body')) {               container.classList.add('article-body');            }            setTimeout(() => {               if (this.grid && !this.grid.classList.contains('article-body')) this.grid.classList.add('article-body');            if (!this.processArticleFired) {                  this.processArticleFired = true;                  document.dispatchEvent(new CustomEvent('processArticle', { detail: { element: this.root } }));               }            }, 50);          } catch(e) {            console.warn("Widget render error", e);          }        }                async checkAndUpdateCoupons() {          const wrappers = Array.from(this.root.querySelectorAll('.tg-df-coupon-wrapper'));          if (wrappers.length === 0) return;                    const merchants = [...new Set(wrappers.map(w => w.getAttribute('data-merchant')).filter(Boolean))];          if (merchants.length === 0) return;          const couponResultsMap = await this.checkMerchantsCouponsBulk(merchants);                    for (const merchant of merchants) {            const hasCoupons = !!couponResultsMap[merchant];            const merchantWrappers = wrappers.filter(w => w.getAttribute('data-merchant') === merchant);            merchantWrappers.forEach(wrapper => {              const spinner = wrapper.querySelector('.tg-df-coupon-spinner');              const btn = wrapper.querySelector('.tg-df-tag-coupons');                            if (spinner) spinner.style.display = 'none';                            if (hasCoupons && btn) {                btn.style.display = 'inline-flex';              } else if (!hasCoupons) {                wrapper.style.display = 'none';              }            });          }        }        updateFloatingCopyBar() {          if (!this.editorBar || !this.editorSelectedCount) return;          if (this.editorMode && this.selectedDeals.size > 0) {            this.editorBar.style.display = 'flex';            this.editorSelectedCount.innerText = this.selectedDeals.size;          } else {            this.editorBar.style.display = 'none';          }        }        async copySelectedDealsToCMS() {           function htmlToSlate(htmlString) {              if (!htmlString) return [{ type: 'paragraph', children: [{ text: '' }] }];              let doc;              if (typeof window !== 'undefined' && window.DOMParser) {                 doc = new DOMParser().parseFromString(htmlString, 'text/html');              } else {                 doc = document.implementation.createHTMLDocument('');                 doc.body.innerHTML = htmlString;              }                            function parseNode(node, marks = {}) {                  if (node.nodeType === 3) {                      const text = node.textContent;                      if (!text) return null;                      return { text: text, ...marks };                  }                  if (node.nodeType === 1) {                      const tagName = node.tagName.toLowerCase();                      if (tagName === 'br') {                          return { type: 'line-break', children: [{ text: '' }] };                      }                      if (tagName === 'p') {                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return { type: 'paragraph', children };                      }                      if (tagName === 'strong' || tagName === 'b') {                          const newMarks = { ...marks, bold: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'em' || tagName === 'i') {                          const newMarks = { ...marks, italic: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'a') {                          const href = node.getAttribute('href') || '';                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return {                              type: 'link',                              url: href,                              isNoFollow: (node.getAttribute('rel') || '').includes('nofollow'),                              isSponsored: (node.getAttribute('rel') || '').includes('sponsored'),                              isOpenNewTab: node.getAttribute('target') === '_blank',                              isPreventDataRewrite: false,                              children: children                          };                      }                      return Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                  }                  return null;              }                            let blocksArray = [];              let currentParagraphChildren = [];              function flushParagraph() {                  if (currentParagraphChildren.length > 0) {                      blocksArray.push({ type: 'paragraph', children: currentParagraphChildren });                      currentParagraphChildren = [];                  }              }              Array.from(doc.body.childNodes).forEach(node => {                  const parsed = parseNode(node, {});                  const parsedItems = Array.isArray(parsed) ? parsed : (parsed ? [parsed] : []);                  parsedItems.forEach(item => {                      if (item.type === 'paragraph') {                          flushParagraph();                          blocksArray.push(item);                      } else {                          currentParagraphChildren.push(item);                      }                  });              });              flushParagraph();              if (blocksArray.length === 0) {                  blocksArray = [{ type: 'paragraph', children: [{ text: '' }] }];              }              return blocksArray;           }           const blocks = [];                      this.editorCopyBtn.innerHTML = '\x3Cspan class="tg-df-coupon-spinner" style="display:inline-block; margin-right:8px; border-top-color:#fff;">' + '<' + '/span> Copying...';           for (const deal of Array.from(this.selectedDeals.values())) {              const url = deal.url;              const merchant = deal.merchant;              const title = deal.title;              const image = deal.image;              const currentPrice = deal.currency + deal.rawPrice;              const wasPrice = deal.hasWasPrice && deal.rawMsrp > deal.rawPrice ? deal.currency + deal.rawMsrp : '';                            let couponsChildren = [];              try {                  const area = this.getAreaCode();                  const apiUrl = new URL('https://search-api.fie.future.net.uk/widget.php');                  apiUrl.searchParams.append('model_name', 'Everything');                  apiUrl.searchParams.append('language', 'en-GB');                  apiUrl.searchParams.append('area', area);                  apiUrl.searchParams.append('combine_product_types', '1');                  apiUrl.searchParams.append('filter_merchant_name', merchant);                  apiUrl.searchParams.append('all_filters', 'false');                  apiUrl.searchParams.append('exclude_unlabelled', 'false');                  apiUrl.searchParams.append('include_specs', 'false');                  apiUrl.searchParams.append('sort', 'voucher');                  apiUrl.searchParams.append('distinct_merchants', 'natural');                  apiUrl.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');                  apiUrl.searchParams.append('rows', '3');                  apiUrl.searchParams.append('origin', 'widgets-clientside');                                    let res; try { res = await fetch(apiUrl.toString()); } catch (e) { return; }                  if (res.ok) {                      const data = await res.json();                      let offers = [];                      if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {                        offers = data.widget.data.offers;                      } else if (data && data.data && Array.isArray(data.data.offers)) {                        offers = data.data.offers;                      }                                            if (offers.length > 0) {                          couponsChildren.push({ text: "Also check out these coupons: ", bold: true });                          offers.slice(0, 3).forEach((offer, idx) => {                              const actualOffer = offer.offer || offer;                              const offerName = actualOffer.name || actualOffer.title || offer.model_name || offer.title || offer.name || 'Coupon';                              const linkUrl = actualOffer.link || actualOffer.url || actualOffer.offer_link || '#';                              couponsChildren.push({ type: "line-break", children: [{ text: "" }] });                              couponsChildren.push({ text: "🎟️ " });                              couponsChildren.push({                                  type: "link",                                  url: linkUrl,                                  isNoFollow: true,                                  isSponsored: false,                                  isOpenNewTab: true,                                  isPreventDataRewrite: false,                                  children: [{ text: offerName, bold: true }]                              });                          });                      }                  }              } catch (err) {                  console.warn('Failed to fetch coupons for', merchant, err);              }              let descriptionValue = [];              if (deal.text) {                 descriptionValue = htmlToSlate(deal.text);              } else {                 const dealDescriptions = [                   `Don't miss out on this fantastic deal for the ${title}. It is currently available at ${merchant} for a highly competitive price.`,                   `We've spotted an excellent price drop on the ${title}. Grab it now at ${merchant} before it's gone.`,                   `The ${title} is currently seeing a generous discount over at ${merchant}. This is a perfect time to buy if you've been holding out.`,                   `If you're in the market for the ${title}, ${merchant} has just the deal for you.`,                   `Score the ${title} for less at ${merchant} right now. This is a rare chance to save big.`,                   `Upgrade your setup with the ${title}, now available at a stellar price via ${merchant}.`                 ];                 const randomDescription = dealDescriptions[Math.floor(Math.random() * dealDescriptions.length)];                 descriptionValue = [                    { type: "paragraph", children: [{ text: randomDescription }] }                 ];              }                            if (couponsChildren.length > 0) {                 let lastBlock = descriptionValue[descriptionValue.length - 1];                 if (lastBlock && lastBlock.type === 'paragraph') {                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ text: "Also check out these coupons: ", bold: true });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children = lastBlock.children.concat(couponsChildren);                 } else {                     descriptionValue.push({                         type: "paragraph",                         children: [                             { type: "line-break", children: [{ text: "" }] },                             { type: "line-break", children: [{ text: "" }] },                             { text: "Also check out these coupons: ", bold: true },                             { type: "line-break", children: [{ text: "" }] },                             ...couponsChildren                         ]                     });                 }              }              function normalizeCurrencyToISO(symbol) {                const map = { '£': 'GBP', '$': 'USD', 'A$': 'AUD', 'CA$': 'CAD', '€': 'EUR' };                return map[symbol] || symbol;              }              const isoCurrency = normalizeCurrencyToISO(deal.currency);              blocks.push({                 id: (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'cms-' + Date.now() + Math.random(),                 blockTypeName: "deal",                 excludeFrom: [],                 collapsible: false,                 props: {                    description: {                       value: descriptionValue,                       touched: false,                       validationMessage: ""                    },                    image: {                       value: {                          credit: [{ type: "paragraph", children: [{ text: merchant }] }],                          dateCreated: Date.now(),                          dateModified: Date.now(),                          distribution: [],                          fileSize: 0,                          height: 1000,                          id: deal.id,                          imageRights: "",                          src: image,                          name: title + ".jpg",                          tags: [],                          width: 1000                       },                       touched: false,                       validationMessage: ""                    },                    showDealButton: { value: true, touched: false, validationMessage: "" },                    isPreferredPartner: { value: false, touched: false, validationMessage: "" },                    linkHref: { value: url, touched: false, validationMessage: "" },                    linkLabel: { value: "", touched: false, validationMessage: "" },                    linkIsNoFollow: { value: true, touched: false, validationMessage: "" },                    linkIsSponsored: { value: false, touched: false, validationMessage: "" },                    linkIsOpenNewWindow: { value: true, touched: false, validationMessage: "" },                    customPromoFlags: { value: [], touched: false, validationMessage: "" },                    showStarDeal: { value: false, touched: false, validationMessage: "" },                    savingType: { value: "none", touched: false, validationMessage: "" },                    starDealPromoFlag: { value: "", touched: false, validationMessage: "" },                    showEditorsChoice: { value: false, touched: false, validationMessage: "" },                    editorsChoiceTitle: { value: "", touched: false, validationMessage: "" },                    hawkPriceCurrency: { value: { value: isoCurrency, label: isoCurrency }, touched: false, validationMessage: "" },                    hawkPrice: { value: deal.hasWasPrice ? String(deal.rawMsrp) : String(deal.rawPrice), touched: false, validationMessage: "" },                    hawkSalePrice: { value: String(deal.rawPrice), touched: false, validationMessage: "" },                    lastCheckedPriceDate: { value: "", touched: false, validationMessage: "" },                    hawkModel: { touched: false, validationMessage: "" },                    productId: { value: "", touched: false, validationMessage: "" },                    voucherId: { value: "", touched: false, validationMessage: "" },                    brand: { value: deal.brand || merchant, touched: false, validationMessage: "" },                    productName: { value: title, touched: false, validationMessage: "" },                    label: { value: "", touched: false, validationMessage: "" },                    retailer: { value: merchant, touched: false, validationMessage: "" },                    priceCheckError: false                 },                 failedFetchError: ""              });           }           const payload = {              type: "articleBuilderPages",              data: blocks           };           const jsonStr = JSON.stringify(payload);                      if (navigator.clipboard && navigator.clipboard.writeText) {              navigator.clipboard.writeText(jsonStr).then(() => {                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              }).catch(err => {                 console.warn('Failed to copy text: ', err);                 alert('Failed to copy deals to clipboard. See console.');              });           } else {              // Fallback              const textArea = document.createElement("textarea");              textArea.value = jsonStr;              document.body.appendChild(textArea);              textArea.focus();              textArea.select();              try {                 document.execCommand('copy');                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              } catch (err) {                 console.warn('Fallback: Oops, unable to copy', err);                 alert('Fallback: Failed to copy deals to clipboard.');              }              document.body.removeChild(textArea);           }        }      }      // Initialize the Widget      if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', () => new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer }));      } else {        new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer });      }    })();  </script></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 4th of July TV deals: Save up to $1,700 on LG, Samsung, and more at Best Buy ]]></title>
                                                                                                <dc:content><![CDATA[ <p>While Prime Day is behind us, 4th of July is just days away and that's given retailers another excuse to slash prices. Over at Best Buy, for instance, there's a huge range of TVs on sale right now, some with discounts of over $1,000.</p><p>On this page we've pulled together nine of our favorite TV deals: big, beautiful screens from trusted brands like Samsung, LG, TCL, and Toshiba. These are just the thing for upgrading your home entertainment setup or perhaps adding a second TV for a bedroom or kitchen. We've selected a range of different price points too, so there should be something for most budget here, from great value QLED screens to the most lavish LG OLED Evo AI TVs. (For more deals, check out our guide to the best <a href="https://www.tomsguide.com/sales-events/best-4th-of-july-sales-2026-walmart-home-depot-more">4th of July sales</a>).</p>        <div class="featured_product_block featured_block_hero" data-id="7e20c479-ef1b-4835-bdd8-2aee248b2935">            <a href="https://www.bestbuy.com/product/toshiba-50-class-m450-qled-series-4k-uhd-smart-fire-tv/J3Z9Z42KZC" data-model-name="Toshiba 50" QLED 4K UHD Smart TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:133.33%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/Wdj7tbqojXjQBS6sBeHh74.jpg" alt="A Toshiba 50" Class M450 QLED Series 4K UHD Smart Fire TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                        <div class='featured__brand'>Toshiba</div>                                        <div class="featured__title">Toshiba 50" QLED 4K UHD Smart TV</div>                                    </div>                <div class="subtitle__description">                                                            <p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_hero" data-id="e3225e1f-bb39-4d32-bef6-b8bd1dfb9c74">            <a href="https://www.bestbuy.com/product/samsung-75-class-u7900-series-uhd-4k-smart-tizen-tv-2025/J3ZYG2VFJX" data-model-name="Samsung 75" UHD 4K Smart TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:133.33%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/KEBZTidHQYgBfTYnyxdrmJ.jpg" alt="A Samsung 75" UHD 4K Smart TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                        <div class='featured__brand'>Samsung</div>                                        <div class="featured__title">Samsung 75" UHD 4K Smart TV</div>                                    </div>                <div class="subtitle__description">                                                            <p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_hero" data-id="8b204361-072f-428c-9c27-d807d1c184cf">            <a href="https://www.bestbuy.com/product/lg-75-class-74b-series-qned-ai-mini-led-4k-smart-webos-tv-2026/JJ8VPZZ2RJ" data-model-name="LG 75" Mini LED 4K Smart TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:133.33%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/A4994EKqMhUgBFUAPqKSkU.jpg" alt="A LG 75" QNED AI Mini LED 4K Smart TV."></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                        <div class='featured__brand'>LG</div>                                        <div class="featured__title">LG 75" Mini LED 4K Smart TV</div>                                    </div>                <div class="subtitle__description">                                                            <p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_hero" data-id="85eb9528-7c23-4c72-996b-aca2f4678168">            <a href="https://www.bestbuy.com/product/tcl-65-class-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5K" data-model-name="TCL 65" 4K UHD HDR QD Mini LED Smart TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:133.33%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/mZcDrpjmtYeEvC9QWPnCje.jpg" alt="A TCL 65" 4K QD-Mini LED Smart TV."></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                        <div class='featured__brand'>TCL</div>                                        <div class="featured__title">TCL 65" 4K UHD HDR QD Mini LED Smart TV</div>                                    </div>                <div class="subtitle__description">                                                            <p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_hero" data-id="d64b98b8-172c-4185-9d2f-dd7380a54191">            <a href="https://www.bestbuy.com/product/tcl-75-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQT2Y" data-model-name="TCL - 75" Class QM7K Series 4K UHD HDR QD Mini LED Smart TV with Google TV (2025)" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:133.33%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/vt8BywCaGGzGHwRuo59Ton.jpg" alt="A TCL 75" 4K QD-Mini LED Smart TV."></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                        <div class='featured__brand'>TCL</div>                                        <div class="featured__title">TCL - 75" Class QM7K Series 4K UHD HDR QD Mini LED Smart TV with Google TV (2025)</div>                                    </div>                <div class="subtitle__description">                                                            <p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_hero" data-id="04c9bae2-e5eb-4c66-9948-3c6fb5f82af4">            <a href="https://www.bestbuy.com/product/samsung-65-class-s90f-series-oled-4k-uhd-samsungvision-ai-smart-tizen-tv-2025/J3ZYG2V6WP" data-model-name="Samsung 65" OLED 4K UHD SamsungVision AI Smart TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:133.33%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/otVBcokXdEH3PWJFUgJGmE.jpg" alt="A Samsung 65" OLED 4K UHD Smart TV."></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                        <div class='featured__brand'>Samsung</div>                                        <div class="featured__title">Samsung 65" OLED 4K UHD SamsungVision AI Smart TV</div>                                    </div>                <div class="subtitle__description">                                                            <p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_hero" data-id="34f63782-40c7-43a0-a540-cf6d566535ad">            <a href="https://www.bestbuy.com/product/lg-65-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTRG6" data-model-name="LG 65" OLED Evo AI 4K UHD Smart TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:133.33%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/GhSNeZcNepiHU2oggDBUaS.jpg" alt="LG 65" OLED 4K Smart TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                        <div class='featured__brand'>LG</div>                                        <div class="featured__title">LG 65" OLED Evo AI 4K UHD Smart TV</div>                                    </div>                <div class="subtitle__description">                                                            <p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_hero" data-id="7dc41ef8-c8c8-40b0-a61e-bf8500d554b9">            <a href="https://www.bestbuy.com/product/lg-77-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTRLJ" data-model-name="LG 77" OLED Evo AI 4K UHD Smart TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:133.33%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/aY2Lm3gZDXFn3bQeYBHgTZ.jpg" alt="A LG 77" OLED Evo AI 4K UHD Smart TV."></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                        <div class='featured__brand'>LG</div>                                        <div class="featured__title">LG 77" OLED Evo AI 4K UHD Smart TV</div>                                    </div>                <div class="subtitle__description">                                                            <p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_hero" data-id="b6756d6c-0974-4d21-8902-607984258ba4">            <a href="https://www.bestbuy.com/product/lg-77-class-g6-series-oled-evo-ai-4k-smart-webos-tv-with-gallery-design-and-flush-wall-mount-2026/JJ8VPZKZ6L" data-model-name="LG 77" OLED Evo AI 4K Smart TV with Gallery Design and Flush Wall Mount" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:133.33%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/CKFWvckKGeB3dwwL5RDJLo.jpg" alt="A LG 77" OLED Evo AI 4K Smart TV with Gallery Design."></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                        <div class='featured__brand'>LG</div>                                        <div class="featured__title">LG 77" OLED Evo AI 4K Smart TV with Gallery Design and Flush Wall Mount</div>                                    </div>                <div class="subtitle__description">                                                            <p></p>                </div>                            </div>        </div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/4th-of-july-tv-deals-save-up-to-usd1-700-on-lg-samsung-and-more-at-best-buy</link>
                                                                            <description>
                            <![CDATA[ Prime Day may be over, but Best Buy is keeping the deals coming with its July 4 sales. Choose from 9 great TVs in a range of sizes with some huge savings on offer. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">sNViBAznVyMCcW5jLFxFeS</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/i2ni7uXmQ3KCaPGwekosSB-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 30 Jun 2026 14:07:13 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[TVs]]></category>
                                                                                                                    <dc:creator><![CDATA[ Will Salmon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/HpRWP7Mh9ErgRGoTvZBbBJ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Will Salmon is Tom&#039;s Guide&#039;s Collections Editor, curating advice on the best products to spend your money on. Will has been writing about tech and entertainment for almost 20 years, including stints as GamesRadar+&#039;s Streaming Editor, editing comics website Newsarama, and writing for lots and lots of magazines.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/i2ni7uXmQ3KCaPGwekosSB-1280-80.jpg">
                                                            <media:credit><![CDATA[Samsung, TCL, LG / Edited by Gemini]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A selection of Samsung, TCL and LG TVs in a room.]]></media:description>                                                            <media:text><![CDATA[A selection of Samsung, TCL and LG TVs in a room.]]></media:text>
                                <media:title type="plain"><![CDATA[A selection of Samsung, TCL and LG TVs in a room.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/i2ni7uXmQ3KCaPGwekosSB-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>While Prime Day is behind us, 4th of July is just days away and that's given retailers another excuse to slash prices. Over at Best Buy, for instance, there's a huge range of TVs on sale right now, some with discounts of over $1,000.</p><p>On this page we've pulled together nine of our favorite TV deals: big, beautiful screens from trusted brands like Samsung, LG, TCL, and Toshiba. These are just the thing for upgrading your home entertainment setup or perhaps adding a second TV for a bedroom or kitchen. We've selected a range of different price points too, so there should be something for most budget here, from great value QLED screens to the most lavish LG OLED Evo AI TVs. (For more deals, check out our guide to the best <a href="https://www.tomsguide.com/sales-events/best-4th-of-july-sales-2026-walmart-home-depot-more">4th of July sales</a>).</p>        <div class="featured_product_block featured_block_hero" data-id="7e20c479-ef1b-4835-bdd8-2aee248b2935">            <a href="https://www.bestbuy.com/product/toshiba-50-class-m450-qled-series-4k-uhd-smart-fire-tv/J3Z9Z42KZC" data-model-name="Toshiba 50" QLED 4K UHD Smart TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:133.33%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/Wdj7tbqojXjQBS6sBeHh74.jpg" alt="A Toshiba 50" Class M450 QLED Series 4K UHD Smart Fire TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                        <div class='featured__brand'>Toshiba</div>                                        <div class="featured__title">Toshiba 50" QLED 4K UHD Smart TV</div>                                    </div>                <div class="subtitle__description">                                                            <p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_hero" data-id="e3225e1f-bb39-4d32-bef6-b8bd1dfb9c74">            <a href="https://www.bestbuy.com/product/samsung-75-class-u7900-series-uhd-4k-smart-tizen-tv-2025/J3ZYG2VFJX" data-model-name="Samsung 75" UHD 4K Smart TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:133.33%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/KEBZTidHQYgBfTYnyxdrmJ.jpg" alt="A Samsung 75" UHD 4K Smart TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                        <div class='featured__brand'>Samsung</div>                                        <div class="featured__title">Samsung 75" UHD 4K Smart TV</div>                                    </div>                <div class="subtitle__description">                                                            <p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_hero" data-id="8b204361-072f-428c-9c27-d807d1c184cf">            <a href="https://www.bestbuy.com/product/lg-75-class-74b-series-qned-ai-mini-led-4k-smart-webos-tv-2026/JJ8VPZZ2RJ" data-model-name="LG 75" Mini LED 4K Smart TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:133.33%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/A4994EKqMhUgBFUAPqKSkU.jpg" alt="A LG 75" QNED AI Mini LED 4K Smart TV."></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                        <div class='featured__brand'>LG</div>                                        <div class="featured__title">LG 75" Mini LED 4K Smart TV</div>                                    </div>                <div class="subtitle__description">                                                            <p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_hero" data-id="85eb9528-7c23-4c72-996b-aca2f4678168">            <a href="https://www.bestbuy.com/product/tcl-65-class-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5K" data-model-name="TCL 65" 4K UHD HDR QD Mini LED Smart TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:133.33%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/mZcDrpjmtYeEvC9QWPnCje.jpg" alt="A TCL 65" 4K QD-Mini LED Smart TV."></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                        <div class='featured__brand'>TCL</div>                                        <div class="featured__title">TCL 65" 4K UHD HDR QD Mini LED Smart TV</div>                                    </div>                <div class="subtitle__description">                                                            <p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_hero" data-id="d64b98b8-172c-4185-9d2f-dd7380a54191">            <a href="https://www.bestbuy.com/product/tcl-75-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQT2Y" data-model-name="TCL - 75" Class QM7K Series 4K UHD HDR QD Mini LED Smart TV with Google TV (2025)" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:133.33%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/vt8BywCaGGzGHwRuo59Ton.jpg" alt="A TCL 75" 4K QD-Mini LED Smart TV."></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                        <div class='featured__brand'>TCL</div>                                        <div class="featured__title">TCL - 75" Class QM7K Series 4K UHD HDR QD Mini LED Smart TV with Google TV (2025)</div>                                    </div>                <div class="subtitle__description">                                                            <p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_hero" data-id="04c9bae2-e5eb-4c66-9948-3c6fb5f82af4">            <a href="https://www.bestbuy.com/product/samsung-65-class-s90f-series-oled-4k-uhd-samsungvision-ai-smart-tizen-tv-2025/J3ZYG2V6WP" data-model-name="Samsung 65" OLED 4K UHD SamsungVision AI Smart TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:133.33%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/otVBcokXdEH3PWJFUgJGmE.jpg" alt="A Samsung 65" OLED 4K UHD Smart TV."></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                        <div class='featured__brand'>Samsung</div>                                        <div class="featured__title">Samsung 65" OLED 4K UHD SamsungVision AI Smart TV</div>                                    </div>                <div class="subtitle__description">                                                            <p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_hero" data-id="34f63782-40c7-43a0-a540-cf6d566535ad">            <a href="https://www.bestbuy.com/product/lg-65-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTRG6" data-model-name="LG 65" OLED Evo AI 4K UHD Smart TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:133.33%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/GhSNeZcNepiHU2oggDBUaS.jpg" alt="LG 65" OLED 4K Smart TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                        <div class='featured__brand'>LG</div>                                        <div class="featured__title">LG 65" OLED Evo AI 4K UHD Smart TV</div>                                    </div>                <div class="subtitle__description">                                                            <p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_hero" data-id="7dc41ef8-c8c8-40b0-a61e-bf8500d554b9">            <a href="https://www.bestbuy.com/product/lg-77-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTRLJ" data-model-name="LG 77" OLED Evo AI 4K UHD Smart TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:133.33%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/aY2Lm3gZDXFn3bQeYBHgTZ.jpg" alt="A LG 77" OLED Evo AI 4K UHD Smart TV."></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                        <div class='featured__brand'>LG</div>                                        <div class="featured__title">LG 77" OLED Evo AI 4K UHD Smart TV</div>                                    </div>                <div class="subtitle__description">                                                            <p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_hero" data-id="b6756d6c-0974-4d21-8902-607984258ba4">            <a href="https://www.bestbuy.com/product/lg-77-class-g6-series-oled-evo-ai-4k-smart-webos-tv-with-gallery-design-and-flush-wall-mount-2026/JJ8VPZKZ6L" data-model-name="LG 77" OLED Evo AI 4K Smart TV with Gallery Design and Flush Wall Mount" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:133.33%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/CKFWvckKGeB3dwwL5RDJLo.jpg" alt="A LG 77" OLED Evo AI 4K Smart TV with Gallery Design."></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                        <div class='featured__brand'>LG</div>                                        <div class="featured__title">LG 77" OLED Evo AI 4K Smart TV with Gallery Design and Flush Wall Mount</div>                                    </div>                <div class="subtitle__description">                                                            <p></p>                </div>                            </div>        </div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I ditched my iPad and Kindle for this tablet with a paper-like display — and it's up to 39% off for Prime Day ]]></title>
                                                                                                <dc:content><![CDATA[ <p>I still remember the first time I laid eyes on one of TCL’s NXTPAPER tablets at a mall in Taiwan. What caught me off guard was that despite the bright overhead lighting, its screen was completely glare free. However, it wasn’t until I pressed the NXTPAPER button on the side that I realized what made this tablet truly unique.</p><p>Unlike one of the <a href="https://www.tomsguide.com/best-picks/best-ipad">best iPads</a>, TCL’s NXPAPER tablets are designed to prevent eye-strain while giving you an improved reading experience. With the push of a button on the side, you can switch between three viewing modes: Regular Mode, Color Paper Mode and Ink Paper Mode. <br><br>With Ink Paper Mode enabled, the device transforms from a standard Android tablet into a black and white slate with a reading experience on par with one of the <a href="https://www.tomsguide.com/us/best-e-readers,review-2766.html">best Kindles</a>. This also extends the tablet’s battery so you can keep reading even longer.</p><div class="product"><a data-dimension112="f1d5710b-c91d-4f39-8cb8-a2e8af8170c7" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$223" href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1376px;"><p class="vanilla-image-block" style="padding-top:86.70%;"><img id="2rmQkEzhXCeVzcYeLEFNn9" name="NXTPAPER 11 Plus" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/2rmQkEzhXCeVzcYeLEFNn9.jpg" mos="" align="middle" fullscreen="" width="1376" height="1193" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow" data-dimension112="f1d5710b-c91d-4f39-8cb8-a2e8af8170c7" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$223">NXTPAPER 11 Plus: was $369 now $223</a></strong><br>This 11-inch tablet feels snappier thanks to its upgraded processor, 120 Hz display and 8GB of RAM. It comes with 256GB of storage and an 8,000 mAh battery which you can quickly recharge thanks to 33W fast charging. You also get a stylus and case in the box too. If you have the budget, I’d recommend spending a bit more on this tablet over the NXTPAPER 11 Gen 2 for a smoother overall experience.<a class="view-deal button" href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow" data-dimension112="f1d5710b-c91d-4f39-8cb8-a2e8af8170c7" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$223">View Deal</a></p></div><p>I’ve been using both the <a href="https://www.tomsguide.com/computing/tablets/i-tried-the-tcl-nxtpaper-11-plus-and-this-budget-tablet-is-easily-my-ipad-killer-heres-why">TCL NXTPAPER 11 Gen 2</a> and the much larger <a href="https://www.tomsguide.com/computing/android-tablets/i-thought-smaller-was-better-until-i-tried-a-massive-14-inch-tablet-that-feels-like-a-clipboard">TCL NXTPAPER 14</a> since the beginning of the year. While I love them both, the 11-inch one is great for slipping in a bag while the 14-inch one is perfect when you want a bigger screen at home. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="cbwTk6SN3SzVTCRFYKXCP6" name="TCL NXTPAPER 11 Plus-5" alt="A person using the included stylus to scroll through stories in Google Discover on the TCL NXTPAPER 11 Plus" src="https://cdn.mos.cms.futurecdn.net/cbwTk6SN3SzVTCRFYKXCP6.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>These tablets aren’t just for reading though, as they also come with a stylus in the box for drawing or taking handwritten notes. Likewise, I’ve heard that many musicians like using the larger NXTPAPER 14 for reading sheet music while they practice.</p><p>Right now, you can save up to 39% on TCL’s NXTPAPER tablets thanks to <a href="https://www.tomsguide.com/news/best-prime-day-deals-and-sales">Prime Day</a>. If you’ve been looking for a more budget-friendly iPad alternative or don’t want to be bothered keeping a separate e-reader charged, they’re definitely worth checking out. And at this price, there’s never been a better time to give NXTPAPER a try for yourself.</p><h3 class="article-body__section" id="section-quick-links"><span>Quick Links</span></h3><ul><li><strong>TCL NXTPAPER 11 Gen 2: </strong><a href="https://www.amazon.com/gp/aw/d/B0H2HFT4KP" target="_blank" rel="nofollow"><strong>was $249 now $169 @ Amazon</strong></a><strong></strong></li><li><strong>TCL NXTPAPER 11 Plus: </strong><a href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow"><strong>was $369 now $223 @ Amazon</strong></a><strong></strong></li><li><strong>TCL NXTPAPER 14: </strong><a href="https://www.amazon.com/gp/aw/d/B0FLP554CZ" target="_blank" rel="nofollow"><strong>was $459 now $312 @ Amazon</strong></a><strong></strong></li><li><strong>TCL Note A1: </strong><a href="https://www.amazon.com/TCL-NXTPAPER-Notebook-Paper-Like-Creativity/dp/B0H5K8NBZS" target="_blank" rel="nofollow"><strong>was $599 now $449 @ Amazon</strong></a></li></ul><h3 class="article-body__section" id="section-prime-day-nxtpaper-tablet-deals"><span>Prime Day NXTPAPER Tablet Deals</span></h3><div class="product"><a data-dimension112="8eb686a9-7da8-43ed-896c-170f4094682e" data-action="Deal Block" data-label="NXTPAPER 11 Gen 2" data-dimension48="NXTPAPER 11 Gen 2" data-dimension25="$169" href="https://www.amazon.com/gp/aw/d/B0H2HFT4KP" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1417px;"><p class="vanilla-image-block" style="padding-top:83.63%;"><img id="suZwzwtqgKWXxsHid5XdRM" name="NXTPAPER 11 Gen 2" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/suZwzwtqgKWXxsHid5XdRM.jpg" mos="" align="middle" fullscreen="" width="1417" height="1185" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/gp/aw/d/B0H2HFT4KP" target="_blank" rel="nofollow" data-dimension112="8eb686a9-7da8-43ed-896c-170f4094682e" data-action="Deal Block" data-label="NXTPAPER 11 Gen 2" data-dimension48="NXTPAPER 11 Gen 2" data-dimension25="$169">NXTPAPER 11 Gen 2: was $249 now $169</a></strong><br>This 11-inch tablet comes with 6GB of RAM, 64GB of storage, an 8,000 mAh battery and runs Android 15. It features TCL’s NXTPAPER 4.0 tech so you can switch from full color to color paper or black and white. You also get a stylus with over 4,000 pressure levels which is great for drawing and note taking. Likewise, you don’t have to worry about picking up a case as one comes in the box. You can even expand its storage further with a microSD card.<a class="view-deal button" href="https://www.amazon.com/gp/aw/d/B0H2HFT4KP" target="_blank" rel="nofollow" data-dimension112="8eb686a9-7da8-43ed-896c-170f4094682e" data-action="Deal Block" data-label="NXTPAPER 11 Gen 2" data-dimension48="NXTPAPER 11 Gen 2" data-dimension25="$169">View Deal</a></p></div><div class="product"><a data-dimension112="ecbe449c-2acd-4ba4-957d-657dda09ecab" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$223" href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1376px;"><p class="vanilla-image-block" style="padding-top:86.70%;"><img id="2rmQkEzhXCeVzcYeLEFNn9" name="NXTPAPER 11 Plus" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/2rmQkEzhXCeVzcYeLEFNn9.jpg" mos="" align="middle" fullscreen="" width="1376" height="1193" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow" data-dimension112="ecbe449c-2acd-4ba4-957d-657dda09ecab" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$223">NXTPAPER 11 Plus: was $369 now $223</a></strong><br>This 11-inch tablet feels snappier thanks to its upgraded processor, 120 Hz display and 8GB of RAM. It comes with 256GB of storage and an 8,000 mAh battery which you can quickly recharge thanks to 33W fast charging. You also get a stylus and case in the box too. If you have the budget, I’d recommend spending a bit more on this tablet over the NXTPAPER 11 Gen 2 for a smoother overall experience.<a class="view-deal button" href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow" data-dimension112="ecbe449c-2acd-4ba4-957d-657dda09ecab" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$223">View Deal</a></p></div><div class="product"><a data-dimension112="022d188b-47fd-4eb3-9359-aae22964188a" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$312" href="https://www.amazon.com/gp/aw/d/B0FLP554CZ" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1479px;"><p class="vanilla-image-block" style="padding-top:78.23%;"><img id="RieyhMD4q8Qys2uDrwLwWP" name="NXTPAPER 14" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/RieyhMD4q8Qys2uDrwLwWP.jpg" mos="" align="middle" fullscreen="" width="1479" height="1157" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/gp/aw/d/B0FLP554CZ" target="_blank" rel="nofollow" data-dimension112="022d188b-47fd-4eb3-9359-aae22964188a" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$312">NXTPAPER 14: was $459 now $312</a></strong><br>This tablet comes equipped with a massive 14.3-inch, 2.4k display that gives you plenty of screen space for both reading and drawing. It comes equipped with TCL’s NXTPAPER 3.0 tech but I found it works just as well as the newer version for the most part. You get 256GB of storage, 8GB of RAM and the best part, an equally massive 10,000 mAh battery which also features fast and reverse charging. It too comes with a stylus and a case included.<a class="view-deal button" href="https://www.amazon.com/gp/aw/d/B0FLP554CZ" target="_blank" rel="nofollow" data-dimension112="022d188b-47fd-4eb3-9359-aae22964188a" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$312">View Deal</a></p></div><div class="product"><a data-dimension112="fcf75034-3555-46e5-ab5d-53ad7835074c" data-action="Deal Block" data-label="Note A1" data-dimension48="Note A1" data-dimension25="$449" href="https://www.amazon.com/TCL-NXTPAPER-Notebook-Paper-Like-Creativity/dp/B0H5K8NBZS" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:71.80%;"><img id="jfCsVsX5bNYT4AHmsneJQc" name="Note A1" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/jfCsVsX5bNYT4AHmsneJQc.jpg" mos="" align="middle" fullscreen="" width="1500" height="1077" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/TCL-NXTPAPER-Notebook-Paper-Like-Creativity/dp/B0H5K8NBZS" target="_blank" rel="nofollow" data-dimension112="fcf75034-3555-46e5-ab5d-53ad7835074c" data-action="Deal Block" data-label="Note A1" data-dimension48="Note A1" data-dimension25="$449">Note A1: was $599 now $449</a></strong><br>This productivity-focused device is a bit different than the rest as it’s more like a digital notebook than a traditional tablet. It features an 11.5-inch, 2.2K display with a 120 Hz refresh rate. Given it’s made for drawing and taking notes, you get TCL’s T-Pen Pro with 8,192 pressure sensitivity as opposed to the standard styluses you get with the rest of its NXTPAPER tablets. To keep all your notes and ideas organized, it comes pre-loaded with AI apps which can turn your scribbling into clean, editable text. <a class="view-deal button" href="https://www.amazon.com/TCL-NXTPAPER-Notebook-Paper-Like-Creativity/dp/B0H5K8NBZS" target="_blank" rel="nofollow" data-dimension112="fcf75034-3555-46e5-ab5d-53ad7835074c" data-action="Deal Block" data-label="Note A1" data-dimension48="Note A1" data-dimension25="$449">View Deal</a></p></div><div class="vizualizer-embed"><div class="tg-df-widget-host" data-widget-config="?search=tablets&brands=Amazon%2CApple%2CGoogle%2CLenovo%2CSamsung%2CTCL&price=165_&min_discount_ratio=0.95&sort=best_match&retailer=Amazon&widget_title=Top+Deals+Handpicked+by+Our+Editors&widget_subtitle=Discover+the+best+discounts+currently+available%2C+curated+daily+by+the+Tom%27s+Guide+Savings+Squad.&bg_color=transparent" data-vizualizer-embed="true"></div>    <script>    /**     * Tom's Guide Deals Finder - Vanilla JS Encapsulated Engine     */    (function() {      // --- Freyr Analytics Adapter ---      function initAnalytics() {        window.dataLayer = window.dataLayer || [];        window.googletag = window.googletag || {};        window.googletag.cmd = window.googletag.cmd || [];        window.hawk = window.hawk || { analytics: { freyr: [] } };        window.hawk.analytics = window.hawk.analytics || { freyr: [] };        window.hawk.analytics.freyr = window.hawk.analytics.freyr || [];        window.freyr = window.freyr || { cmd: [] };        const scriptSrc = 'https://freyr.futurecdn.net/freyr.js';        const hostname = typeof window !== 'undefined' ? window.location.hostname : '';        const isTestEnv = typeof window.navigator !== 'undefined' && (window.navigator.webdriver || window.navigator.userAgent.includes('Headless'));        const shouldSendRealAnalytics = !isTestEnv && hostname && hostname !== 'localhost' && hostname !== '127.0.0.1' && !hostname.includes('run.app');        if (shouldSendRealAnalytics && !document.querySelector(`script[src="${scriptSrc}"]`)) {          const script = document.createElement('script');          script.src = scriptSrc;          script.async = true;          document.head.appendChild(script);        }      }      function storeEventForDebug(name, data) {        if (!window.hawk || !window.hawk.analytics || !window.hawk.analytics.freyr) return;        window.hawk.analytics.freyr.push({ name, data });        try {          if (typeof window !== 'undefined' && window.localStorage) {            window.localStorage.setItem("hawk", JSON.stringify(window.hawk));          }        } catch (e) {          // Ignore storage issues        }        try {          window.dispatchEvent(new CustomEvent("hawk-analytics-update"));        } catch (e) {}      }      function sendToFreyr(eventName, data) {        if (typeof window === 'undefined') return;        window.freyr = window.freyr || { cmd: [] };        window.freyr.cmd.push(() => {          if (window.freyr && window.freyr.pushAndUpdate) {            window.freyr.pushAndUpdate(eventName, data);          }        });      }      function sendEvent(event, skip = false) {        try {          storeEventForDebug(event.name, event.data);          if (!skip) {            sendToFreyr(event.name, event.data);          }        } catch (e) {          // Ensure tracking errors don't surface to the user        }      }      function getCookie(name) {        try {          const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));          return match ? match[2] : null;        } catch (e) {          return null;        }      }      function normalizeCurrency(symbol) {        const map = {          '£': 'GBP',          '$': 'USD',          'A$': 'AUD',          'CA$': 'CAD',          '€': 'EUR'        };        return map[symbol] || symbol;      }      function trackElementInteraction(props) {        sendEvent({          name: 'elementInteraction',          data: {            element: {              action: props.action || "click",              id: props.id || undefined,              class: props.class || undefined,              name: props.name || undefined,              text: props.text || undefined,              label: props.label || undefined,              container: props.container || undefined,              url: props.url || undefined,              articleId: props.articleId || undefined            }          }        });      }      function generateRevenueId(url, productName, merchantName, modelId) {        const str = `${window.location.href}|${productName}|${merchantName}|${modelId || ''}|${new Date().toDateString()}|tomsguide`;        let hash = 0;        for (let i = 0; i < str.length; i++) {          const char = str.charCodeAt(i);          hash = ((hash << 5) - hash) + char;          hash = hash & hash;        }        let numericStr = Math.abs(hash).toString();        while (numericStr.length < 19) {          numericStr += Math.floor(Math.random() * 10).toString();        }        return numericStr.substring(0, 19);      }      function rewriteAffiliateLink(url, territory, revenueId) {        if (!url) return url;        const t = (territory || 'gb').toLowerCase();        return url.replace(/hawk-custom-tracking/g, `tomsguide-${t}-${revenueId}`);      }      function trackHawkEvent(params) {        const { clickType, widgetId, productCategoryName, product, productsArray, zeroBasedProductIndexOrNull, totalDealsOrProducts, areaClicked, merchant, revenueId, isoCurrencyCode, queryName, widgetTypeName } = params;        const data = {          event: "hawkEvent",          category: "Affiliates",          affiliate: {            action: {              type: clickType,              id: widgetId,              event: clickType === "appeared" ? "viewed" : "Click from",              timestamp: Date.now()            },            component: {              flag: "Editor",              product: productCategoryName || "deals",              category: `Signal Deal Finder ${widgetTypeName || "Carousel"} widget`,              type: clickType === "appeared" ? "review" : "signal product",              label: queryName || (product ? (product.name || "") : ""),              index: zeroBasedProductIndexOrNull === null || zeroBasedProductIndexOrNull === undefined ? -1 : zeroBasedProductIndexOrNull,              linkCount: totalDealsOrProducts || 0,              blockLayout: "",              areaClicked: areaClicked || ""            }          },          products: productsArray || (product && merchant ? [            {              product: {                primary: {                  id: product.id || product.matchId || null,                  name: product.name,                  type: "deal",                  price: product.price,                  previousPrice: product.previousPrice || null,                  currency: isoCurrencyCode || "USD",                  preorder: false,                  labels: [],                  link: product.link,                  originalLink: product.originalLink || null,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: null,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: product.globalId || null,                  inStock: product.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: isoCurrencyCode || "USD"                }              },              merchant: {                id: merchant.id || null,                name: merchant.name,                url: merchant.url || null,                network: merchant.network || null              },              model: {                id: product.modelId || null,                brand: product.brand || null,                name: product.name,                parent: product.parent || null              }            }          ] : []),          reviews: [],          _clear: true,          "gtm.uniqueEventId": Date.now() % 10000        };        sendEvent({ name: 'hawkEvent', data });      }      function trackDealClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card" });      }      function trackViewSimilarClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card View Similar" });      }      function trackPriceComparisonClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Price Comparison" });      }      function trackReviewClick(params) {        trackHawkEvent({ ...params, clickType: "review", areaClicked: "Signal Product Card Review Link" });      }      function trackShare(params) {        trackHawkEvent({ ...params, clickType: "share", areaClicked: "Signal Product Card Share" });      }      function trackDealsAppeared(widgetId, deals, revenueId, currency, queryName, widgetTypeName) {         if (!deals || deals.length === 0) return;                  const productsArray = deals.slice(0, 50).map((deal) => {            let voucherPct = null;            let rawPrice = parseFloat(deal.rawPrice) || parseFloat(deal.price) || null;            let rawMsrp = parseFloat(deal.rawMsrp) || parseFloat(deal.msrp) || null;            if (rawMsrp > rawPrice && rawPrice > 0) {              voucherPct = Math.round((1 - (rawPrice / rawMsrp)) * 100);            }            let numId = null;            if (deal.externalProductId && !isNaN(parseInt(deal.externalProductId))) {              numId = parseInt(deal.externalProductId);            } else if (deal.id && !isNaN(parseInt(deal.id))) {              numId = parseInt(deal.id);            } else {              numId = deal.matchId || null;            }            return {              product: {                primary: {                  id: numId,                  name: deal.productName || deal.title || "",                  type: "deal",                  price: rawPrice,                  previousPrice: rawMsrp,                  currency: currency || 'USD',                  preorder: false,                  labels: deal.modelBrand || deal.brand ? [                     { type: "brand", value: deal.modelBrand || deal.brand }                  ] : [],                  link: deal.url,                  originalLink: deal.url,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: voucherPct,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: deal.productKey || null,                  inStock: deal.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: currency || 'USD'                }              },              merchant: {                id: deal.merchantId ? parseInt(deal.merchantId) : null,                name: deal.merchant || "Retailer",                url: deal.merchantUrl || null,                network: deal.merchantNetwork || null              },              model: {                id: deal.modelId ? parseInt(deal.modelId) : null,                brand: deal.modelBrand || deal.brand || null,                name: deal.productName || deal.title || "",                parent: deal.modelParent || null              }            };         });                  trackHawkEvent({             clickType: "appeared",             widgetId: widgetId,             productCategoryName: "deals",             zeroBasedProductIndexOrNull: null,             totalDealsOrProducts: deals.length,             productsArray: productsArray,             queryName: queryName,             widgetTypeName: widgetTypeName         });      }      // 1. Setup Shadow DOM Sandbox      const currentScript = document.currentScript;      let hostContainer = null;      let template = null;            if (currentScript) {        let prev = currentScript.previousElementSibling;        while (prev) {          if (prev.tagName === 'TEMPLATE' && prev.classList.contains('tg-df-widget-template')) {            template = prev;          } else if (prev.tagName === 'DIV' && prev.classList.contains('tg-df-widget-host') && !prev.hasAttribute('data-initialized')) {            hostContainer = prev;            break;          }          prev = prev.previousElementSibling;        }      }            // Fallbacks in case script is deferred      if (!hostContainer) {        const hosts = document.querySelectorAll('.tg-df-widget-host:not([data-initialized])');        if (hosts.length > 0) hostContainer = hosts[0];      }            // Safely embedded template for CMS environments      const rawTemplate = `  \x3Cstyle>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with \`tg-df-\` to prevent CMS style leakage.    */    .tg-df-container {      container-type: inline-size;      container-name: tg-df;      --tg-df-blue: #1F69FF;      --tg-df-blue-hover: #004d8c;      --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: #1F69FF;    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters {      display: flex;      gap: 12px;      justify-content: center;      flex-wrap: wrap;    }    .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-price-input::-webkit-outer-spin-button,    .tg-df-price-input::-webkit-inner-spin-button {      -webkit-appearance: none;      margin: 0;    }    .tg-df-price-input {      -moz-appearance: textfield;    }    .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: 100%;      max-width: 200px;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges {      display: flex;      flex-wrap: wrap;      gap: 6px;      margin-bottom: 8px;    }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);      display: -webkit-box;      -webkit-line-clamp: 2;      -webkit-box-orient: vertical;      overflow: hidden;    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: 100%;      box-sizing: border-box;      background-color: #1f69ff;      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      background-color: #1555cc;    }    .tg-df-container .tg-df-card-cta.tg-df-cta-savings-squad {      background-color: #3c8d0d;    }    .tg-df-card:hover .tg-df-card-cta.tg-df-cta-savings-squad,    .tg-df-card-cta.tg-df-cta-savings-squad:hover {      background-color: #2b6509;    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 0;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-controls {        padding: 0 16px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }            .tg-df-filters {        width: calc(100% + 32px);        margin: 0 -16px;        padding: 0 16px 4px 16px;        display: flex;        justify-content: flex-start;        gap: 8px;        flex-wrap: nowrap;        overflow-x: auto;        -webkit-overflow-scrolling: touch;        scrollbar-width: none;      }      .tg-df-filters::after {        content: "";        display: block;        flex: 0 0 8px;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }            .tg-df-sort-wrapper {        flex: 0 0 max(42%, 130px);        min-width: 0;      }      .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 12px;        -webkit-line-clamp: 3;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        -webkit-line-clamp: 3;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 8px 16px;        font-size: 12px;        flex: 0 0 auto;        text-align: center;        white-space: normal;        line-height: 1.2;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }    .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: #1F69FF;          position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }    .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 16px;      text-align: center;      width: 100%;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }    .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;            scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }        .tg-df-container .tg-df-carousel-scroll-left,    .tg-df-container .tg-df-carousel-scroll-right {      position: absolute;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: #ffffff;      border: 1px solid #e2e8f0;      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);      color: #1F69FF;      cursor: pointer;      transition: all 0.2s;      margin-top: -4px;      z-index: 20;    }    .tg-df-container .tg-df-carousel-scroll-left { left: 8px; }    .tg-df-container .tg-df-carousel-scroll-right { right: 8px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left { left: 0px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right { right: 0px; }    .tg-df-carousel-filters-outer { margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }    @container tg-df (max-width: 599px) { .tg-df-carousel-filters-outer { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; } }        .tg-df-container .tg-df-carousel-scroll-left:hover,    .tg-df-container .tg-df-carousel-scroll-right:hover {      background-color: #f8fafc;      border-color: #cbd5e1;    }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right {      background-color: rgba(255, 255, 255, 0.4);      border: none;      box-shadow: none;      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right { right: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-right { right: 0; }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left:hover,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right:hover {      background-color: rgba(255, 255, 255, 0.6);      border: none;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-carousel-roundels::after {      content: "";      flex: 0 0 32px;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;      transition: font-weight 0.2s;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-label {      font-weight: 700;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }        .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;      display: inline-flex;      align-items: center;      justify-content: center;      min-height: 36px;      box-sizing: border-box;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn:hover {      background: #1e293b;      color: white;      border-color: #1e293b;    }    .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::after {      content: "";      flex: 0 0 32px;    }    .tg-df-grid-wrapper {      position: relative;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card {      flex: 0 0 auto;      width: 100px;      border-radius: 15px;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      border: 2px solid #1e293b;      background: white;      color: #1e293b;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      font-weight: 600;      font-size: 14px;      cursor: pointer;      padding: 16px;      text-align: center;      transition: all 0.2s;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card:hover {      background: #1e293b;      color: white;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      border-radius: 5px;      padding: 8px 10px;      margin-top: 4px;      background-color: #1F69FF;    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.45);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: block; }      .tg-df-container .hawk-deal-widget-image-container { display: block; float: left; margin: 0 16px 8px 0; width: 120px; max-width: 120px; height: auto; align-items: normal; justify-content: normal; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: block; text-align: left; }      .tg-df-container .hawk-deal-widget-footer { display: block; margin-top: 16px; clear: both; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; max-width: none !important; width: 100% !important; margin: 0 !important; }    }        .tg-df-container .hawk-affiliate-link-deal-button {       align-items: center; background-color: #5aaf0b; box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;     }    .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a9109; text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }  \x3C/style>  \x3C!-- Widget Container --\x3E  \x3Cdiv class="tg-df-container" id="signal-deals-finder-root">    \x3C!-- Editor Floating Bar --\x3E    \x3Cdiv class="tg-df-editor-bar" id="tg-df-editor-bar" style="display:none;">      \x3Cdiv class="tg-df-editor-bar-text" style="display: flex; align-items: center;">        \x3Cspan id="tg-df-selected-count">0\x3C/span>\x26nbsp;Deals Selected        \x3Cbutton class="tg-df-editor-clear-btn" id="tg-df-editor-clear" type="button" style="margin-left: 12px; font-size: 13px; color: #9ca3af; background: none; border: none; cursor: pointer; text-decoration: underline;">Clear All\x3C/button>      \x3C/div>      \x3Cbutton class="tg-df-editor-copy-btn" id="tg-df-editor-copy" type="button">        \x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">\x3C/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">\x3C/path>\x3C/svg>        Copy to CMS      \x3C/button>    \x3C/div>    \x3Cdiv class="tg-df-carousel-host" id="tg-df-carousel-host" style="display: none;">      \x3Cdiv class="tg-df-carousel-eyebrow">DEAL FINDER\x3C/div>      \x3Cdiv class="tg-df-carousel-query-title" id="tg-df-carousel-title-label">Best Deals\x3C/div>            \x3Cdiv class="tg-df-carousel-blue-box">        \x3Cdiv class="tg-df-carousel-bg-circle-1" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-2" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-3" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-box-content">          \x3Cdiv class="tg-df-countdown-wrapper" id="tg-df-countdown-wrapper" style="display:none;">            \x3Cdiv class="tg-df-countdown-title" id="tg-df-countdown-title">Prime Day starts in\x3C/div>            \x3Cdiv class="tg-df-countdown-blocks">              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-days">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">DAYS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-hrs">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">HRS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-min">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">MIN\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-sec">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">SEC\x3C/div>\x3C/div>            \x3C/div>          \x3C/div>          \x3Cdiv class="tg-df-carousel-box-eyebrow">DEAL FINDER\x3C/div>          \x3Cdiv class="tg-df-carousel-box-title">Find Deals Fast\x3C/div>          \x3Cdiv class="tg-df-carousel-box-subtitle">The latest deals from the biggest retailers, all in one place\x3C/div>                    \x3Cdiv class="tg-df-carousel-roundels-wrapper">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-roundels">            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>          \x3C/div>          \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-carousel-filters-outer" style="position: relative;">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-filters-wrap">                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="0">All\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_lightning">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_prime">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-d="10">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 10% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="15">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 15% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="25">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 25% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-pr="under50">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>            Under $50\x3C/button>        \x3C/div>        \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3C/div>    \x3C/div>    \x3C/div>      \x3C!-- Search & Filter Controls --\x3E    \x3Cdiv class="tg-df-controls" id="tg-df-controls" style="display:flex;">      \x3Cdiv class="tg-df-top-bar">        \x3Cdiv class="tg-df-search-wrapper">          \x3Cinput type="text" class="tg-df-search-input" placeholder="Search for deals, products, or brands...">          \x3Cbutton type="button" class="tg-df-search-btn" aria-label="Search">              \x3Csvg class="tg-df-search-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">                \x3Cpath d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>              \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-autocomplete-dropdown" id="tg-df-autocomplete">\x3C/div>        \x3C/div>                \x3Cdiv class="tg-df-settings-wrapper">          \x3Cbutton type="button" class="tg-df-settings-btn" aria-label="Settings" id="tg-df-settings-toggle">            \x3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20">                \x3Cpath d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.73 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .43-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.49-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>            \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-settings-dropdown-backdrop" id="tg-df-settings-backdrop">\x3C/div>          \x3Cdiv class="tg-df-settings-dropdown" id="tg-df-settings-panel">            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Search Region\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-region-select">                \x3Coption value="auto">🌍 Auto-detect\x3C/option>                \x3Coption value="US">🇺🇸 United States (US)\x3C/option>                \x3Coption value="GB">🇬🇧 United Kingdom (UK)\x3C/option>                \x3Coption value="CA">🇨🇦 Canada (CA)\x3C/option>                \x3Coption value="AU">🇦🇺 Australia (AU)\x3C/option>                \x3Coption value="DE">🇩🇪 Germany (DE)\x3C/option>                \x3Coption value="FR">🇫🇷 France (FR)\x3C/option>                \x3Coption value="IT">🇮🇹 Italy (IT)\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Retailer\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-retailer-select">                \x3Coption value="">All Retailers\x3C/option>                \x3Coption value="Amazon">Amazon\x3C/option>                \x3Coption value="Walmart">Walmart\x3C/option>                \x3Coption value="Best Buy">Best Buy\x3C/option>                \x3Coption value="Target">Target\x3C/option>                \x3Coption value="John Lewis">John Lewis\x3C/option>                \x3Coption value="Currys">Currys\x3C/option>                \x3Coption value="Argos">Argos\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Offer Type\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-offer-type-select">                \x3Coption value="">All Offers\x3C/option>                \x3Coption value="amazon_prime">Amazon Prime\x3C/option>                \x3Coption value="recommended_promo">Recommended Promo\x3C/option>                \x3Coption value="amazon_lightning">Amazon Lightning Deal\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Result Count\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-rows-select">                \x3Coption value="3">3 Items\x3C/option>                \x3Coption value="4">4 Items\x3C/option>                \x3Coption value="6">6 Items\x3C/option>                \x3Coption value="12" selected>12 Items\x3C/option>                \x3Coption value="24">24 Items\x3C/option>                \x3Coption value="48">48 Items\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Deal Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Only show products with active offers or previous prices (was_price)\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-deal-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Editor Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Enable multi-select to copy deals to CMS\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-editor-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">View Mode\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-view-mode-select">                \x3Coption value="auto">Auto Collection\x3C/option>                \x3Coption value="carousel">Carousel\x3C/option>                \x3Coption value="savings_squad">Savings Squad\x3C/option>                \x3Coption value="grid">Grid (Columns)\x3C/option>                \x3Coption value="row">Row (List)\x3C/option>              \x3C/select>            \x3C/div>          \x3C/div>        \x3C/div>      \x3C/div>      \x3Cdiv class="tg-df-filters">        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-category-filter-wrapper" style="display: none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-category-filter" aria-label="Category">            \x3Coption value="all">All Categories\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-multiselect-container" id="tg-df-brand-filter-wrapper" style="display:none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/>          \x3C/svg>          \x3Cdiv class="tg-df-filter-select tg-df-multiselect-trigger" id="tg-df-brand-trigger" tabindex="0">            Any Brand          \x3C/div>          \x3Cdiv class="tg-df-multiselect-dropdown" id="tg-df-brand-dropdown">            \x3C!-- Populated via script --\x3E          \x3C/div>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/>          \x3C/svg>          \x3Cselect class="tg-df-sort-select" aria-label="Sort Deals">            \x3Coption value="date_desc">Newest First\x3C/option>            \x3Coption value="best_match">Sort by: Match\x3C/option>            \x3Coption value="price_asc">Price Low to High\x3C/option>            \x3Coption value="price_desc">Price High to Low\x3C/option>            \x3Coption value="discount_desc">Biggest Discount\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-price-range-wrapper" id="tg-df-custom-price-wrapper" style="display: flex; align-items:center; justify-content:center; padding: 10px 20px; gap: 8px; border: 1px solid var(--tg-df-border); border-radius: 100px; background-color: var(--tg-df-bg);">          \x3Cspan style="font-size:14px; font-weight:500; color:var(--tg-df-text-primary);">Price\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-min" placeholder="Min" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">          \x3Cspan style="color:var(--tg-df-text-muted)">-\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-max" placeholder="Max" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices">            \x3Coption value="all">All Prices\x3C/option>            \x3Coption value="under50">Under $50\x3C/option>            \x3Coption value="50_100">$50 - $100\x3C/option>            \x3Coption value="100_200">$100 - $200\x3C/option>            \x3Coption value="200_500">$200 - $500\x3C/option>            \x3Coption value="over500">Over $500\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount">            \x3Coption value="all">Any discount\x3C/option>            \x3Coption value="5">Min 5%\x3C/option>            \x3Coption value="10">Min 10%\x3C/option>            \x3Coption value="15">Min 15%\x3C/option>            \x3Coption value="20">Min 20%\x3C/option>            \x3Coption value="25">Min 25%\x3C/option>            \x3Coption value="30">Min 30%\x3C/option>            \x3Coption value="40">Min 40%\x3C/option>            \x3Coption value="50">Min 50%\x3C/option>            \x3Coption value="60">Min 60%\x3C/option>            \x3Coption value="70">Min 70%\x3C/option>          \x3C/select>        \x3C/div>      \x3C/div>    \x3C/div>    \x3C!-- Deals Grid Wrapper --\x3E    \x3Cdiv class="tg-df-grid-wrapper tg-df-carousel-cards-wrapper" id="tg-df-grid-wrapper">      \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3Cdiv class="tg-df-grid" id="tg-df-grid">        \x3C!-- Content populated by JavaScript --\x3E      \x3C/div>      \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>    \x3C/div>        \x3C!-- Vouchers Modal --\x3E    \x3Cdiv class="tg-df-modal-backdrop" id="tg-df-vouchers-modal">      \x3Cdiv class="tg-df-modal">        \x3Cdiv class="tg-df-modal-header">          \x3Ch3 class="tg-df-modal-title" id="tg-df-vouchers-title">Available Coupons & Deals\x3C/h3>          \x3Cbutton class="tg-df-modal-close" id="tg-df-vouchers-close">            \x3Csvg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">              \x3Cline x1="18" y1="6" x2="6" y2="18">\x3C/line>              \x3Cline x1="6" y1="6" x2="18" y2="18">\x3C/line>            \x3C/svg>          \x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-modal-body" id="tg-df-vouchers-content">          \x3C!-- Vouchers injected here --\x3E        \x3C/div>      \x3C/div>    \x3C/div>  \x3C/div>`;      if (!template) {        template = document.createElement('template');        template.innerHTML = rawTemplate;      }      let shadowRoot = null;      if (hostContainer && template) {        hostContainer.setAttribute('data-initialized', 'true');        shadowRoot = hostContainer.attachShadow({ mode: 'open' });        shadowRoot.appendChild(template.content.cloneNode(true));      }      class DealsFinderWidget {        constructor(config) {          this.rootNode = config.rootNode || document;          this.hostContainer = config.hostContainer || null;          this.rootId = config.rootId || 'signal-deals-finder-root';          this.root = this.rootNode.querySelector('#' + this.rootId);          if (!this.root) return;          this.widgetId = (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'widget-' + Date.now() + '-' + Math.random().toString(36).slice(2);          this.grid = this.root.querySelector('#tg-df-grid');          this.tagsContainer = this.root.querySelector('#tg-df-tags-container');          this.categoryFilter = this.root.querySelector('#tg-df-category-filter');          this.categoryFilterWrapper = this.root.querySelector('#tg-df-category-filter-wrapper');          this.searchInput = this.root.querySelector('.tg-df-search-input');          this.autocompleteDropdown = this.root.querySelector('#tg-df-autocomplete');          this.sortSelect = this.root.querySelector('.tg-df-sort-select');          this.searchBtn = this.root.querySelector('.tg-df-search-btn');                    this.settingsToggle = this.root.querySelector('#tg-df-settings-toggle');          this.settingsPanel = this.root.querySelector('#tg-df-settings-panel');          this.settingsBackdrop = this.root.querySelector('#tg-df-settings-backdrop');          this.regionSelect = this.root.querySelector('#tg-df-region-select');          this.retailerSelect = this.root.querySelector('#tg-df-retailer-select');          this.offerTypeSelect = this.root.querySelector('#tg-df-offer-type-select');          this.viewModeSelect = this.root.querySelector('#tg-df-view-mode-select');          this.rowsSelect = this.root.querySelector('#tg-df-rows-select');          this.dealModeToggle = this.root.querySelector('#tg-df-deal-mode');          this.editorModeToggle = this.root.querySelector('#tg-df-editor-mode');          this.priceFilter = this.root.querySelector('#tg-df-price-filter');          this.discountFilter = this.root.querySelector('#tg-df-discount-filter');                    this.editorBar = this.root.querySelector('#tg-df-editor-bar');          this.editorSelectedCount = this.root.querySelector('#tg-df-selected-count');          this.editorCopyBtn = this.root.querySelector('#tg-df-editor-copy');          this.editorClearBtn = this.root.querySelector('#tg-df-editor-clear');                    this.apiUrl = 'https://search-api.fie.future.net.uk/widget.php';          this.deals = [];          this.displayLimit = 12;          this.airedaleArticles = null;          this.airedaleTags = [];          this.airedaleTagCounts = {};          this.activeDealTag = null;          this.selectedBrands = [];          this.currentQuery = '';          this.editorMode = this.hostContainer ? this.hostContainer.hasAttribute('data-editor-mode') : false;          this.viewModeOverride = this.hostContainer ? this.hostContainer.getAttribute('data-view-mode') : null;          this.selectedDeals = new Map();                    this.brandFilterWrapper = this.root.querySelector('#tg-df-brand-filter-wrapper');          this.brandTrigger = this.root.querySelector('#tg-df-brand-trigger');          this.brandDropdown = this.root.querySelector('#tg-df-brand-dropdown');                    this.customPriceWrapper = this.root.querySelector('#tg-df-custom-price-wrapper');          this.customPriceMin = this.root.querySelector('#tg-df-custom-price-min');          this.customPriceMax = this.root.querySelector('#tg-df-custom-price-max');          this.legacyPriceWrapper = this.root.querySelector('#tg-df-legacy-price-wrapper');          this.discountFilterWrapper = this.root.querySelector('#tg-df-discount-filter-wrapper');          this.initResizeObserver();          this.init();            if (['carousel', 'carousel-compact', 'auto', 'grid', 'row'].includes(this.getViewMode())) { this.loadCarouselSpreadsheet(); }        }        getViewMode() {          if (this.viewModeOverride && (!this.editorMode || !this.viewModeSelect)) {            return this.viewModeOverride;          }          return (this.viewModeSelect && this.viewModeSelect.value) ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');        }        applyLayoutMode() {          if (!this.grid) return;          const mode = this.getViewMode();          this.grid.classList.remove('layout-row', 'layout-grid', 'tg-df-grid-auto', 'carousel-compact', 'layout-replica-1', 'layout-replica-2');                    const carouselHost = this.root.querySelector('#tg-df-carousel-host');          const controlsDiv = this.root.querySelector('#tg-df-controls');          if (mode === 'carousel' || mode === 'auto' || mode === 'grid' || mode === 'row') {             if (mode === 'carousel') this.grid.classList.add('carousel-compact');             if (carouselHost) carouselHost.style.display = 'block';             if (controlsDiv) controlsDiv.style.display = 'none';             if (this.root.classList.contains('tg-df-container') && mode === 'carousel') {               this.root.classList.add('is-carousel');             } else if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          } else {             if (carouselHost) carouselHost.style.display = 'none';             if (controlsDiv) controlsDiv.style.display = 'flex';             if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          }          if (mode === 'grid') {            this.grid.classList.add('layout-grid');          } else if (mode === 'row') {            this.grid.classList.add('layout-row');          } else if (mode === 'savings_squad') {            this.grid.classList.add('tg-df-grid-auto', 'savings-squad-cards');          } else if (mode !== 'carousel') {            this.grid.classList.add('tg-df-grid-auto');          }                    const settingsWrapper = this.root.querySelector('.tg-df-settings-wrapper');          if (settingsWrapper) {            settingsWrapper.style.display = mode === 'auto' ? 'none' : 'block';          }          if (this.customPriceWrapper) {             this.customPriceWrapper.style.display = mode === 'auto' ? 'flex' : 'none';          }          if (this.legacyPriceWrapper) {             this.legacyPriceWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }          if (this.discountFilterWrapper) {             this.discountFilterWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }        }        initResizeObserver() {          try {            if (window.parent === window) return;          } catch (e) {            // cross origin frame check threw          }          const emitHeight = () => {            try {              const height = document.documentElement.scrollHeight || document.body.scrollHeight;              const msg = { type: 'embed-size', height: height };              if (window.parent && window.parent !== window) {                window.parent.postMessage(msg, '*');                window.parent.postMessage(JSON.stringify({ ...msg, sentinel: 'amp' }), '*');              }            } catch (e) {}          };                    if (window.ResizeObserver) {            try {              const ro = new ResizeObserver(() => emitHeight());              ro.observe(document.body);              if (this.root) ro.observe(this.root);            } catch(e){ console.warn(e); }          }          window.addEventListener('resize', emitHeight);          setTimeout(emitHeight, 300);        }        initCountdown() {          this.cdWrapper = this.root.querySelector('#tg-df-countdown-wrapper');                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          this.showCountdown = params.get('show_countdown') === 'true';          const showHeaderDetails = params.get('show_header_details') !== 'false';          const eyebrow = this.root.querySelector('.tg-df-carousel-box-eyebrow');          const title = this.root.querySelector('.tg-df-carousel-box-title');          const subtitle = this.root.querySelector('.tg-df-carousel-box-subtitle');          if (!showHeaderDetails) {            let containerElement = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (containerElement) containerElement.classList.add('hide-header-details');            if (eyebrow) eyebrow.style.display = 'none';            if (title) title.style.display = 'none';            if (subtitle) subtitle.style.display = 'none';          }          if (!this.cdWrapper) return;          this.cdTitle = this.root.querySelector('#tg-df-countdown-title');          this.cdDays = this.root.querySelector('#tg-df-cd-days');          this.cdHrs = this.root.querySelector('#tg-df-cd-hrs');          this.cdMin = this.root.querySelector('#tg-df-cd-min');          this.cdSec = this.root.querySelector('#tg-df-cd-sec');          this.updateCountdown();          this.cdInterval = setInterval(() => this.updateCountdown(), 1000);        }        updateCountdown() {          if (!this.cdWrapper) return;          if (!this.showCountdown) {            this.cdWrapper.style.display = 'none';            return;          }          const area = this.getAreaCode();          let offset = '-04:00';          if (['DE', 'FR', 'IT', 'ES', 'NL'].includes(area)) {             offset = '+02:00';          } else if (['GB', 'IE', 'UK'].includes(area)) {             offset = '+01:00';          }          const startTime = new Date('2026-06-23T00:00:00' + offset).getTime();          const endTime = new Date('2026-06-26T00:00:00' + offset).getTime();          const now = Date.now();          let targetTime = 0;          if (now < startTime) {             targetTime = startTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day starts in';             this.cdWrapper.style.display = 'flex';          } else if (now < endTime) {             targetTime = endTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day ends in';             this.cdWrapper.style.display = 'flex';          } else {             this.cdWrapper.style.display = 'none';             if (this.cdInterval) clearInterval(this.cdInterval);             return;          }          const diff = Math.max(0, targetTime - now);          const d = Math.floor(diff / (1000 * 60 * 60 * 24));          const h = Math.floor((diff / (1000 * 60 * 60)) % 24);          const m = Math.floor((diff / 1000 / 60) % 60);          const s = Math.floor((diff / 1000) % 60);          if (this.cdDays) this.cdDays.textContent = d;          if (this.cdHrs) this.cdHrs.textContent = h;          if (this.cdMin) this.cdMin.textContent = m;          if (this.cdSec) this.cdSec.textContent = s;        }        init() {          this.initCountdown();          try {            initAnalytics();          } catch (e) {            console.warn('Deals Widget Analytics Error:', e);          }                    this.bindEvents();                    let initialQuery = '';                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          let initialViewMode = params.get('view_mode');          if (!params.has('search') && !params.has('q') && !params.has('query') && initialViewMode !== 'savings_squad') {             initialQuery = 'Everything';             if (this.discountFilter && !params.has('min_discount_ratio')) {               this.discountFilter.value = '5';             }          }          const website = params.get('website') || 'tomsguide';          this.website = website;          if (website === 'techradar') {            const squadHeader = this.root.querySelector('.tg-df-savings-squad-header');            if (squadHeader) {               const pic = squadHeader.querySelector('picture');               if (pic) pic.style.display = 'none';            }            const style = document.createElement('style');            style.innerHTML = `              .tg-df-container .hawk-affiliate-link-deal-button { background-color: #5DAF08 !important; }              .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a8c06 !important; }            `;            this.root.appendChild(style);          }                    if (this.regionSelect) {            this.regionSelect.value = params.get('region') || 'auto';            this.updatePriceDropdownCurrency();          }                    if (this.retailerSelect && params.has('retailer')) {            this.retailerSelect.value = params.get('retailer');          }                    if (params.has('brands')) {            const b = params.get('brands');            if (b) {              this.selectedBrands = b.split(',');            }          }                    if (this.offerTypeSelect && params.has('offer_type')) {            this.offerTypeSelect.value = params.get('offer_type');          }          if (params.has('bg_color')) {            const bg = params.get('bg_color');            if (bg === 'white') {              this.root.style.setProperty('background-color', '#ffffff', 'important');            } else if (bg === 'transparent') {              this.root.style.setProperty('background-color', 'transparent', 'important');            } else if (bg === 'light_blue') {              this.root.style.setProperty('background-color', '#E7F0FF', 'important');            }          } else {             this.root.style.removeProperty('background-color');          }                    if (params.has('view_mode')) {            if (this.viewModeSelect) {              this.viewModeSelect.value = params.get('view_mode');            } else {              this.viewModeOverride = params.get('view_mode');            }          }          if (this.rowsSelect && params.has('rows')) {            this.rowsSelect.value = params.get('rows');          }          if (params.has('price')) {            const priceVal = params.get('price');            if (this.priceFilter) {               // Try assigning it directly to select. If it's not present implicitly ignores               this.priceFilter.value = priceVal;            }            if (priceVal.includes('_')) {               const parts = priceVal.split('_');               if (this.customPriceMin && parts[0]) this.customPriceMin.value = parts[0];               if (this.customPriceMax && parts[1]) this.customPriceMax.value = parts[1];            }          }          if (this.discountFilter && params.has('min_discount_ratio')) {            // Need to convert back from ratio (e.g. 0.8) to select value (e.g. "20")            const ratioStr = params.get('min_discount_ratio');            const ratioFloat = parseFloat(ratioStr);            if (!isNaN(ratioFloat)) {               const percentage = Math.round((1 - ratioFloat) * 100);               this.discountFilter.value = percentage.toString();            }          }          if (this.sortSelect) {            this.sortSelect.value = params.get('sort') || 'discount_desc';          }          if (this.dealModeToggle && params.has('deal_mode')) {            this.dealModeToggle.checked = params.get('deal_mode') === 'true' || params.get('deal_mode') === '1';          }                    // Re-apply layout after params have updated control values          this.applyLayoutMode();                    if (params.get('search')) {            initialQuery = params.get('search');          } else if (params.get('q')) {            initialQuery = params.get('q');          } else if (params.get('query')) {            initialQuery = params.get('query');          }                    this.currentQuery = initialQuery;          if (this.searchInput) {            this.searchInput.value = this.currentQuery;          }                    if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {            this.fetchDeals(this.currentQuery);          } else {            this.render();          }        }        updatePriceDropdownCurrency() {          if (!this.priceFilter || !this.regionSelect) return;          const currencySymbols = {            'US': '$',            'GB': '£',            'CA': '$CA',            'AU': '$AU',            'DE': '€',            'FR': '€',            'IT': '€',          };          const area = this.getAreaCode();          const cur = currencySymbols[area || 'US'] || '$';                    const options = this.priceFilter.options;          for (let i = 0; i < options.length; i++) {            const opt = options[i];            if (opt.value === 'all') {              opt.innerText = 'All Prices';            } else if (opt.value === 'under50') {              opt.innerText = `Under ${cur}50`;            } else if (opt.value === '50_100') {              opt.innerText = `${cur}50 - ${cur}100`;            } else if (opt.value === '100_200') {              opt.innerText = `${cur}100 - ${cur}200`;            } else if (opt.value === '200_500') {              opt.innerText = `${cur}200 - ${cur}500`;            } else if (opt.value === 'over500') {              opt.innerText = `Over ${cur}500`;            }          }        }        populateBrandDropdown(values) {          if (!this.brandDropdown || !this.brandFilterWrapper) return;          this.brandFilterWrapper.style.display = 'flex'; // show the wrapper                    let html = '';          const allChecked = this.selectedBrands.length === 0 ? 'checked' : '';          const _div = '<' + '/div>';          const _span = '<' + '/span>';          html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="" ${allChecked} class="tg-df-brand-chk"> Any Brand${_div}`;                    values.forEach(v => {             if (!v.formatted_value || v.formatted_value === 'Any Brand') return;             const isChecked = this.selectedBrands.includes(v.formatted_value) ? 'checked' : '';             html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="${this.escapeHTML(v.formatted_value)}" ${isChecked} class="tg-df-brand-chk"> ${this.escapeHTML(v.formatted_value)} \x3Cspan style="color:var(--tg-df-text-muted);font-size:12px">(${v.count || 0})${_span}${_div}`;          });                    this.brandDropdown.innerHTML = html;                    // Re-bind listeners          const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');          chks.forEach(chk => {            chk.addEventListener('change', (e) => {              const val = e.target.value;              if (val === '') {                this.selectedBrands = [];              } else {                if (e.target.checked) {                   if (!this.selectedBrands.includes(val)) this.selectedBrands.push(val);                } else {                   this.selectedBrands = this.selectedBrands.filter(b => b !== val);                }              }                            if (this.selectedBrands.length === 0) {                 this.brandTrigger.innerText = 'Any Brand';              } else if (this.selectedBrands.length === 1) {                 this.brandTrigger.innerText = this.selectedBrands[0];              } else {                 this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;              }                            // Only call API if changed from UI interactions              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.updateURLParams();                 this.fetchDeals(this.currentQuery);              }            });          });                    // Update button text on load          if (this.selectedBrands.length === 0) {             this.brandTrigger.innerText = 'Any Brand';          } else if (this.selectedBrands.length === 1) {             this.brandTrigger.innerText = this.selectedBrands[0];          } else {             this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;          }        }        updateURLParams() {          const url = new URL(window.location);          if (this.currentQuery && this.currentQuery !== 'Gaming laptops') {            url.searchParams.set('q', this.currentQuery);          } else {            url.searchParams.delete('q');            url.searchParams.delete('search');            url.searchParams.delete('query');          }                    if (this.regionSelect && this.regionSelect.value !== 'auto') {            url.searchParams.set('region', this.regionSelect.value);          } else {            url.searchParams.delete('region');          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.set('retailer', this.retailerSelect.value);          } else {            url.searchParams.delete('retailer');          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.set('brands', this.selectedBrands.join(','));          } else {            url.searchParams.delete('brands');          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.set('offer_type', this.offerTypeSelect.value);          } else {            url.searchParams.delete('offer_type');          }                    if (this.viewModeSelect && this.viewModeSelect.value !== 'auto') {            url.searchParams.set('view_mode', this.viewModeSelect.value);          } else {            url.searchParams.delete('view_mode');          }                    if (this.rowsSelect && this.rowsSelect.value !== '12') {            url.searchParams.set('rows', this.rowsSelect.value);          } else {            url.searchParams.delete('rows');          }                    const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             url.searchParams.set('price', `${min}_${max}`);          } else if (this.priceFilter && this.priceFilter.value !== 'all') {            url.searchParams.set('price', this.priceFilter.value);          } else {            url.searchParams.delete('price');          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {               const ratio = (100 - v) / 100;               url.searchParams.set('min_discount_ratio', ratio.toString());            }          } else {            url.searchParams.delete('min_discount_ratio');          }                    if (this.sortSelect && this.sortSelect.value !== 'discount_desc') {            url.searchParams.set('sort', this.sortSelect.value);          } else {            url.searchParams.delete('sort');          }                    if (this.dealModeToggle && this.dealModeToggle.checked) {            url.searchParams.set('deal_mode', 'true');          } else {            url.searchParams.delete('deal_mode');          }                    window.history.replaceState({}, '', url);        }        bindEvents() {          const roundels = this.root.querySelectorAll('.tg-df-carousel-cat.original-hardcoded');          roundels.forEach(r => {             r.addEventListener('click', () => {                const q = r.getAttribute('data-query');                const pr = r.getAttribute('data-pr');                if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: q,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = q;                const label = this.root.querySelector('#tg-df-carousel-title-label');                if (label) label.textContent = 'Best ' + q;                if (this.priceFilter) this.priceFilter.value = pr || 'all';                if (this.discountFilter) this.discountFilter.value = '5';                if (this.searchInput) this.searchInput.value = q;                                roundels.forEach(ro => ro.classList.remove('active'));                r.classList.add('active');                this.fetchDeals(this.currentQuery);             });          });          const discBtns = this.root.querySelectorAll('.tg-df-carousel-filter-btn');          discBtns.forEach(b => {             b.addEventListener('click', () => {                const d = b.getAttribute('data-d');                const pr = b.getAttribute('data-pr');                const ot = b.getAttribute('data-ot');                let label = b.innerText ? b.innerText.trim() : '';                let filterType = 'unknown';                let filterVal = 'unknown';                if (d !== null) { filterType = 'discount'; filterVal = d; }                else if (pr !== null) { filterType = 'price'; filterVal = pr; }                else if (ot !== null) { filterType = 'offertype'; filterVal = ot; }                if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-${filterType}-${filterVal}`, name: 'Filter Button', label: label });                                if (d !== null) {                   if (this.discountFilter) this.discountFilter.value = this.discountFilter.value === d ? '0' : d;                } else if (pr !== null) {                   if (this.priceFilter) this.priceFilter.value = this.priceFilter.value === pr ? 'all' : pr;                } else if (ot !== null) {                   if (this.offerTypeSelect) this.offerTypeSelect.value = this.offerTypeSelect.value === ot ? 'all' : ot;                } else {                   if (this.discountFilter) this.discountFilter.value = '0';                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.offerTypeSelect) this.offerTypeSelect.value = 'all';                }                if (d === null && pr === null && ot === null && b.getAttribute("data-type") !== "custom") {                   discBtns.forEach(ro => ro.classList.remove('active'));                   b.classList.add('active');                } else if (b.getAttribute("data-type") !== "custom") {                   // Only operate on hardcoded buttons (those without data-type)                   discBtns.forEach(ro => {                      if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active');                   });                                      let makeActive = true;                   if (d !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-d') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (pr !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-pr') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (ot !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-ot') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   }                                      if (makeActive) b.classList.add('active');                                      // Check if anything is active, if not activate "All"                   let anyActive = false;                   discBtns.forEach(ro => { if (ro.classList.contains('active') && ro.getAttribute('data-type') !== 'custom') anyActive = true; });                   if (!anyActive) {                       discBtns.forEach(ro => { if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.add('active'); });                   }                }                                this.fetchDeals(this.currentQuery);             });          });          if (this.brandTrigger && this.brandDropdown) {            this.brandTrigger.addEventListener('click', () => {              this.brandDropdown.classList.toggle('active');            });            document.addEventListener('click', (e) => {              if (this.brandFilterWrapper && !e.composedPath().includes(this.brandFilterWrapper)) {                this.brandDropdown.classList.remove('active');              }            });          }          let debounceTimer;          if(this.searchInput) {            this.searchInput.addEventListener('input', (e) => {              clearTimeout(debounceTimer);              const query = e.target.value.trim();              this.currentQuery = query;              if (this.getViewMode() === 'savings_squad' && this.autocompleteDropdown && this.airedaleTags && query.length > 0) {                 const matches = this.airedaleTags.filter(t => t.toLowerCase().includes(query.toLowerCase()) && t.toLowerCase() !== query.toLowerCase()).slice(0, 5);                 if (matches.length > 0) {                    this.autocompleteDropdown.innerHTML = matches.map(m => `\x3Cdiv class="tg-df-autocomplete-item" data-tag="${this.escapeHTML(m)}">${this.escapeHTML(m)}<` + `/div>`).join('');                    this.autocompleteDropdown.classList.add('active');                 } else {                    this.autocompleteDropdown.classList.remove('active');                 }              } else if (this.autocompleteDropdown) {                 this.autocompleteDropdown.classList.remove('active');              }              debounceTimer = setTimeout(() => {                this.updateURLParams();                if (query.length > 2) {                  this.fetchDeals(query);                } else if (query.length === 0) {                  this.deals = [];                  this.render();                }              }, 400);            });            this.searchInput.addEventListener('keypress', (e) => {              if (e.key === 'Enter') {                if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');                clearTimeout(debounceTimer);                const query = e.target.value.trim();                this.currentQuery = query;                this.activeDealTag = null;                trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });                this.updateURLParams();                if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                   this.fetchDeals(query);                }              }            });          }          if (this.autocompleteDropdown) {             this.autocompleteDropdown.addEventListener('click', (e) => {                const item = e.target.closest('.tg-df-autocomplete-item');                if (item) {                   const tag = item.getAttribute('data-tag');                   this.currentQuery = tag;                   if (this.searchInput) this.searchInput.value = tag;                   this.activeDealTag = tag;                   this.autocompleteDropdown.classList.remove('active');                   this.updateURLParams();                   this.fetchDeals(tag);                }             });             document.addEventListener('click', (e) => {               if (this.autocompleteDropdown && this.searchInput && !e.composedPath().includes(this.searchInput) && !e.composedPath().includes(this.autocompleteDropdown)) {                 this.autocompleteDropdown.classList.remove('active');               }             });          }          if (this.searchBtn) {            this.searchBtn.addEventListener('click', () => {              if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');              clearTimeout(debounceTimer);              const query = this.searchInput.value.trim();              trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });              this.activeDealTag = null;              this.currentQuery = query;              this.updateURLParams();              if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.fetchDeals(query);              }            });          }          if(this.sortSelect) this.sortSelect.addEventListener('change', () => {            trackElementInteraction({ id: `sort-option-${this.sortSelect.value}`, name: 'Sort', label: `Sort: ${this.sortSelect.options[this.sortSelect.selectedIndex].text}` });            this.updateURLParams();            if (this.deals.length > 0) {              this.sortData();              this.render();            }          });                    const priceFilter = this.root.querySelector('#tg-df-price-filter');          if (priceFilter) {            this.priceFilter = priceFilter;            this.priceFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-price-${this.priceFilter.value}`, name: 'Price', label: this.priceFilter.options[this.priceFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          const updateCustomPrice = () => {             this.updateURLParams();             if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);             } else {                this.render();             }          };          if (this.customPriceMin) {             this.customPriceMin.addEventListener('change', updateCustomPrice);             this.customPriceMin.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          if (this.customPriceMax) {             this.customPriceMax.addEventListener('change', updateCustomPrice);             this.customPriceMax.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          const discountFilter = this.root.querySelector('#tg-df-discount-filter');          if (discountFilter) {            this.discountFilter = discountFilter;            this.discountFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-discount-${this.discountFilter.value}`, name: 'Discount', label: this.discountFilter.options[this.discountFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          if (this.categoryFilter) {            this.categoryFilter.addEventListener('change', (e) => {               const val = e.target.value === 'all' ? null : e.target.value;               this.activeDealTag = val;               this.fetchSavingsSquad();            });          }                    if (this.settingsToggle) {            this.settingsToggle.addEventListener('click', () => {              const o = this.settingsPanel.classList.toggle('active');              this.settingsBackdrop.classList.toggle('active');              if (o) trackElementInteraction({ id: 'filter-open', name: 'Filters', label: 'Open filters' });            });          }                    if (this.settingsBackdrop) {            this.settingsBackdrop.addEventListener('click', () => {              this.settingsPanel.classList.remove('active');              this.settingsBackdrop.classList.remove('active');            });          }                    if (this.regionSelect) {            this.regionSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-region-${this.regionSelect.value}`, name: 'Region', label: this.regionSelect.options[this.regionSelect.selectedIndex].text });              this.updateURLParams();              this.updatePriceDropdownCurrency();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.retailerSelect) {            this.retailerSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-merchant-${this.retailerSelect.value}`, name: 'Retailer', label: this.retailerSelect.options[this.retailerSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.offerTypeSelect) {            this.offerTypeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-offertype-${this.offerTypeSelect.value}`, name: 'Offer Type', label: this.offerTypeSelect.options[this.offerTypeSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.viewModeSelect) {            this._prevViewMode = this.viewModeSelect.value;            this.viewModeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-viewmode-${this.viewModeSelect.value}`, name: 'View Mode', label: this.viewModeSelect.options[this.viewModeSelect.selectedIndex].text });                            // Reset all active toggles and filters to prevent config carry-over              this.selectedBrands = [];              if (this.brandTrigger) this.brandTrigger.innerText = 'Select Brands';              if (this.brandDropdown) {                const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                chks.forEach(chk => { chk.checked = false; });              }              if (this.priceFilter) this.priceFilter.value = 'all';              if (this.customPriceMin) this.customPriceMin.value = '';              if (this.customPriceMax) this.customPriceMax.value = '';              if (this.sortSelect) this.sortSelect.value = this.viewModeSelect.value === 'savings_squad' ? 'date_desc' : 'discount_desc';              if (this.discountFilter) this.discountFilter.value = '0';              if (this.retailerSelect) this.retailerSelect.value = '';              if (this.offerTypeSelect) this.offerTypeSelect.value = '';              if (this.rowsSelect) this.rowsSelect.value = '12';              if (this.categoryFilter) this.categoryFilter.value = 'all';              this.activeDealTag = null;              this.updateURLParams();              this.applyLayoutMode();                            if (this.getViewMode() === 'savings_squad' || this._prevViewMode === 'savings_squad') {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }              this._prevViewMode = this.viewModeSelect.value;            });          }                    if (this.rowsSelect) {            this.rowsSelect.addEventListener('change', () => {              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.dealModeToggle) {            this.dealModeToggle.addEventListener('change', () => {              this.updateURLParams();              this.render();            });          }          if (this.editorModeToggle) {             this.editorModeToggle.addEventListener('change', (e) => {                this.editorMode = e.target.checked;                this.render();                this.updateFloatingCopyBar();             });          }          if (this.editorCopyBtn) {             this.editorCopyBtn.addEventListener('click', () => {                this.copySelectedDealsToCMS();             });          }          if (this.editorClearBtn) {             this.editorClearBtn.addEventListener('click', () => {                this.selectedDeals.clear();                this.render();                this.updateFloatingCopyBar();             });          }          if (this.grid) {            this.grid.addEventListener('change', (e) => {               if (e.target.classList.contains('tg-df-deal-checkbox')) {                  const dealId = e.target.getAttribute('data-id');                  if (e.target.checked) {                     const dealObj = this.deals.find(d => d.id === dealId);                     if (dealObj) this.selectedDeals.set(dealId, dealObj);                  } else {                     this.selectedDeals.delete(dealId);                  }                  this.updateFloatingCopyBar();               }            });            this.grid.addEventListener('click', (e) => {              const dealCard = e.target.closest('[data-action="deal-click"]');              const similarCard = e.target.closest('[data-action="view-similar-click"]');              const cardLink = dealCard || similarCard;              if (cardLink) {                const productName = cardLink.getAttribute('data-product-name');                const merchantName = cardLink.getAttribute('data-merchant-name');                const productId = cardLink.getAttribute('data-analytics-id');                const price = parseFloat(cardLink.getAttribute('data-price')) || null;                const prevPriceStr = cardLink.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = cardLink.getAttribute('data-original-link');                const rewrittenLink = cardLink.getAttribute('href');                const revenueId = cardLink.getAttribute('data-revenue-id');                const index = parseInt(cardLink.getAttribute('data-index'), 10) || 0;                const inStock = cardLink.getAttribute('data-in-stock') === 'true';                const totalText = cardLink.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: cardLink.getAttribute('data-model-id') || null,                    matchId: cardLink.getAttribute('data-match-id') || null,                    brand: cardLink.getAttribute('data-model-brand') || null,                    parent: cardLink.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: cardLink.getAttribute('data-merchant-id') || null,                    network: cardLink.getAttribute('data-merchant-network') || null,                    url: cardLink.getAttribute('data-merchant-url') || null,                    name: merchantName                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: normalizeCurrency(this.escapeHTML(cardLink.getAttribute('data-currency') || '$'))                };                if (dealCard) {                  trackDealClick(trackingParams);                } else {                  trackViewSimilarClick(trackingParams);                }              }              const couponsBtn = e.target.closest('[data-action="coupons-click"]');              if (couponsBtn) {                trackElementInteraction({                  id: 'product-card-show-coupons',                  name: 'Coupons',                  label: `Product card coupons: ${couponsBtn.getAttribute('data-merchant')}`                });              }            });          }          this.setupScrollListeners();        }        setupScrollListeners() {          const containers = [             this.root.querySelector('.tg-df-carousel-roundels'),             this.root.querySelector('.tg-df-carousel-filters-wrap'),             this.root.querySelector('#tg-df-grid')          ];                    containers.forEach(container => {             if (!container) return;                          const checkScroll = () => {                if (!container.parentElement) return;                const leftBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-left');                const rightBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-right');                                if (leftBtn) {                   if (container.scrollLeft <= 5) leftBtn.style.display = 'none';                   else leftBtn.style.display = 'flex';                }                                if (rightBtn) {                   if (container.scrollWidth <= container.clientWidth) {                       rightBtn.style.display = 'none';                   } else if (container.scrollLeft >= container.scrollWidth - container.clientWidth - 5) {                       rightBtn.style.display = 'none';                   } else {                       rightBtn.style.display = 'flex';                   }                }             };                          container.addEventListener('scroll', checkScroll);             checkScroll();                          window.addEventListener('resize', checkScroll);                          const observer = new MutationObserver(checkScroll);             observer.observe(container, { childList: true, subtree: true, characterData: false });          });        }        get widgetTypeName() {          const mode = this.viewModeSelect ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');          switch(mode) {              case 'carousel': return 'Carousel';              case 'savings_squad': return 'Savings Squad';              case 'grid': return 'Grid';              case 'row': return 'Row';              default: return 'Auto Collection';          }        }        getAreaCode() {          if (this.regionSelect && this.regionSelect.value) {            if (this.regionSelect.value === 'auto') return null;            return this.regionSelect.value;          }          let area = null;          try {            const locale = window.navigator.language || window.navigator.userLanguage;            if (locale && locale.includes('-')) {              area = locale.split('-')[1].toUpperCase();            } else if (locale && locale.length === 2) {              if (locale.toUpperCase() === 'EN') { area = 'US'; }              else { area = locale.toUpperCase(); }            }          } catch (e) { /* Ignore */ }                    // Map to known valid options or fallback to US          const valid = ['US', 'GB', 'CA', 'AU', 'DE', 'FR', 'IT'];          if (area === 'UK') area = 'GB';          if (valid.includes(area)) {             return area;          }          return 'US';        }                async loadCarouselSpreadsheet() {          try {              const parseCSVRow = (str) => {                  let result = [], cur = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (inQuotes) {                          if (char === '"') {                              if (str[i + 1] === '"') { cur += '"'; i++; }                              else { inQuotes = false; }                          } else { cur += char; }                      } else {                          if (char === '"') { inQuotes = true; }                          else if (char === ',') { result.push(cur); cur = ''; }                          else { cur += char; }                      }                  }                  result.push(cur); return result;              };              const parseCSV = (str) => {                  const rows = []; let curRow = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (char === '"') inQuotes = !inQuotes;                      if ((char === '\n' || char === '\r') && !inQuotes) {                          if (char === '\r' && str[i+1] === '\n') i++;                          if (curRow) rows.push(parseCSVRow(curRow));                          curRow = '';                      } else { curRow += char; }                  }                  if (curRow) rows.push(parseCSVRow(curRow));                  return rows;              };              const preloadedCSV = decodeURIComponent(escape(atob("LCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNQ0KUm91bmRlbCB0ZXh0LEFsbCxUVnMsRm9vdHdlYXIsQXBwYXJlbCxNYXR0cmVzZXMsQXBwbGlhbmNlcyxXZWFyYWJsZSB0ZWNoLEhlYWRwaG9uZXMsU21hcnQgSG9tZSxTcGVha2VycyxMYXB0b3BzLFRhYmxldHMsQ29tcHV0aW5nLFBob25lcyxHYW1pbmcsTGVnbw0KUm91bmRlbCBpbWFnZSxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL2FpLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3R2cy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvN2IzYTIyNGIwNzk2M2M2MjdiNmI5MDliZDc4MzM4MzZlMDJmZjgxOS5qcGcud2VicCxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy84NGRhYzVkNDhlZDJkNDQ4NTU5ZWJhNjdhY2U4MzE0Y2M2N2NjZDk0LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vcHJvZHVjdHMvY2Fyb3VzZWwvbWF0dHJlc3Nlcy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvNzY4ZTk3Y2ViMDcxODAxZmFlMjA5MTBkMDgyMGIxNmY3NDdhZjkzOS5qcGcud2VicCxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3dlbGxuZXNzLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL2hlYWRwaG9uZXMuanBnLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzg5NTM1YmVlYmUyMGRiYmQ0YTM0NmQ2ZDZiZGZlOTFkOGE4ODRhMjEuanBnLndlYnAsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9hdWRpby5qcGcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9sYXB0b3BzLmpwZyxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy8yMzk3NTY0ZWQ3YTVmZjk0N2U5YjZiMzBlNTRmNDc0OTRiODQxZjg5LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vcHJvZHVjdHMvY2Fyb3VzZWwvY29tcHV0aW5nLmpwZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3Bob25lcy5wbmcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9nYW1pbmcucG5nLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzRmNmM2MjFjYWMwYmMxYTg1ZDU5M2UzNTk0YmE1YjM0OWVmZmQyOTIuanBnLndlYnANClNlYXJjaCBRdWVyeSxFdmVyeXRoaW5nLFRlbGV2aXNpb25zLCJTbmVha2VycywgcnVubmluZyBzaG9lcywgc2FuZGFscyIsQ2xvdGhpbmcsTWF0dHJlc3NlcyxIb21lIEFwcGxpYW5jZXMsV2VhcmFibGVzICYgRml0bmVzcyBUZWNoLEhlYWRwaG9uZXMsSG9tZSBUZWNoLFNwZWFrZXJzLExhcHRvcHMsVGFibGV0cyxDb21wdXRpbmcsUGhvbmVzLEdhbWluZyxDb25zdHJ1Y3Rpb24gVG95cw0KRGlzY291bnQgQW1vdW50LG1pbiA1JSxtaW4gMTAlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUNClByaWNlIFJhbmdlLCwsLCxtaW4gJDQwMCwsLCxtaW4gJDI1LCxtaW4gJDMwMCwsLG1pbiAkMTAwLCwNCkJyYW5kIFNlbGVjdGlvbiwsLCwsLCwsLCwsLCwsLCwNCkZpbHRlciBidXR0b25zLCwsLCwsLCwsLCwsLCwsLA0KMSxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMNCjIsQW1hem9uIGRlYWxzLFVuZGVyICQxMDAwLDUwJSBvZmYsQWRpZGFzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsNTAlIG9mZixBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscw0KMyxPdmVyICQ0MDAsVW5kZXIgJDUwMCxIb2thLE5pa2UsU2FhdHZhLE5pbmphLDQwJSBvZmYsSkxhYiwsSkJMLERlbGwsLEFzdXMsQXBwbGUsQ29uc29sZXMsU3RhciBXYXJzDQo0LFVuZGVyICQxMDAwLDUwJSBvZmYsU2tlY2hlcnMsVW5kZXIgQXJtb3VyLEhlbGl4LFNoYXJrLEdhcm1pbixBbmtlciBTb3VuZGNvcmUsUmluZyxTb25vcyxBcHBsZSxBcHBsZSxUUC1saW5rLFNhbXN1bmcsQWNjZXNzb3JpZXMsVW5kZXIgJDI1DQo1LFVuZGVyICQ1MDAsTEcsQXNpY3MsQ29sdW1iaWEsRHJlYW1DbG91ZCxLZXVyaWcsQXBwbGUsU29ueSxHb3ZlZSxUcmliaXQsTGVub3ZvLFNhbXN1bmcsRWVybyxHb29nbGUsR2FtZXMsVW5kZXIgJDUwDQo2LDUwJSBvZmYsU2Ftc3VuZyxOaWtlLFBhdGFnb25pYSxOZWN0YXIsRGUnTG9uZ2hpLEFtYXpmaXQsQXBwbGUsS2FzYSBzbWFydCxTb255LEFsaWVud2FyZSxUQ0wsTmV0Z2VhcixNb3Rvcm9sYSxOaW50ZW5kbyxCb3RhbmljYWxzDQo3LEFtYXpvbixIaXNlbnNlLE5ldyBCYWxhbmNlLEFyYyd0ZXJ5eCxUZW1wdXItcGVkaWMsRHlzb24sRml0Yml0LEJlYXRzLFBoaWxpcHMgSHVlLEFua2VyLEFjZXIsT25lUGx1cyxEZWxsLE9uZVBsdXMsU29ueSxEaXNuZXkNCjgsQXBwbGUsVENMLEFkaWRhcyxDYXJoYXJ0dCxCZWFyLEJpc3NlbGwsU2Ftc3VuZyxFYXJmdW4sQmxpbmssQmVhdHMsTVNJLE1pY3Jvc29mdCxBY2VyLE5vdGhpbmcsWGJveCxNYXJ2ZWwNCjksLFNvbnksU2F1Y29ueSxUaGUgTm9ydGggRmFjZSxTaWVuYSxOdXRyaWJ1bGxldCxPdXJhLFNhbXN1bmcsR29vZ2xlIE5lc3QgLE1hcnNoYWxsLFNhbXN1bmcsTGVub3ZvLExlbm92bywsLFBva2Vtb24NCjEwLCxSb2t1LEJpcmtlbnN0b2NrLENSWiBZb2dhLFdpbmtCZWRzLEJsYWNrIGFuZCBEZWNrZXIsUmluZ2Nvbm4sQ01GLEV1ZnksU2Ftc3VuZyxNaWNyb3NvZnQsUmVNYXJrYWJsZSxBbGllbndhcmUsLCwNCjExLCwsQnJvb2tzLFRoZSBHeW0gUGVvcGxlLEJyb29rbHluIGJlZGRpbmcsTmVzcHJlc3NvLCwxTW9yZSxBcmxvLCxSYXplciwsQ29yc2FpciwsLA0KMTIsLCxDcm9jcywsRWlnaHQgU2xlZXAsQ3Vpc2luYXJ0LCxKQkwsLCwsLEhQLCwsDQpOb3RlcywsLCwsLCwsLCwsLCwsLCwNCiwsIlByaW9yaXRpc2UgYmlnZ2VzdCAlLyQgZGlzY291bnQsIFR2cyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiB0aGUgbW9zdCBwb3B1bGFyIGV2ZW4gaWYgdGhleSBhcmUgc3RpbGwgZXhwZW5zaXZlIiwiTm8gcGF0dGVybiB0byBwcmljaW5nL2Rpc2NvdW50LCByZWFkZXJzIG1haW5seSBzaG9wIGJ5IGJyYW5kL3JlY29nbmlzYWJsZSBzaG9lcyIsIk5vIHBhdHRlcm4gdG8gcHJpY2luZy9kaXNjb3VudCwgcmVhZGVycyBtYWlubHkgc2hvcCBieSBicmFuZCIsIkEgbGFiZWwgd2lsbCBkZWZpbml0ZWx5IGhlbHAgaGVyZSBlLmcuIGJlc3QgZm9yIHNpZGUgc2xlZXBlciwgYmVzdCBtZW1vcnkgZm9hbSIsIkFwcGxpYW5jZXMgaXMgYSBiaWcgY2F0ZWdvcnksIGlzIGl0IHBvc3NpYmxlIHRvIHNwbGl0IGludG8ga2l0Y2hlbiBhcHBsaWFuY2VzLCBmbG9vcmNhcmUsIGFpciBoZWFsdGgvY29vbGluZz8gT3Igc2ltaWxhciIsIkZvY3VzIG9uIHZhbHVlIGZvciBtb25leSwgR2FybWlucyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiBwb3B1bGFyIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIHN0aWxsICQ1MDAiLCwsLCxJbmNsdWRlIEtpbmRsZXMsSSB3b3VsZCBpbmNsdWRlIHdpZmkgcm91dGVycyBoZXJlIGluc3RlYWQgb2Ygc21hcnQgaG9tZSxDYW4gd2Ugc3VyZmFjZSBwaG9uZSBwcm92aWRlciBkZWFscz8gVC1tb2JpbGUgYW5kIHZlcml6b24gd291bGQgbWFrZSBhIGxvdCBtb3JlIG1vbmV5IHRoYW4gQW1hem9uLCwNCiwsaGF2aW5nIGEgJ2Jlc3QgZm9yJyBsYWJlbCB3b3VsZCBiZSBoZWxwZnVsIGUuZy4gYmVzdCBmb3IgYnJpZ2h0IHJvb20sQ2FuIHdlIHN0b3Aga2lkcyBzaG9lcyBmcm9tIHB1bGxpbmcgdGhyb3VnaD8sIldpbGwgdGhpcyBpbmNsdWRlIGFjY2Vzc29yaWVzIGUuZy4gY2FwcywgYmFncywgaWYgc28gbWFrZSBzdXJlIHRoZXNlIGFyZSBtaXhlZCB0aHJvdWdob3V0IGNsb3RoaW5nIGRlYWxzIixXaWxsIHRoaXMgaW5jbHVkZSB0b3BwZXJzIGFuZCBwaWxsb3dzPyBTZWVpbmcgbW9yZSBtb21lbnR1bSB3aXRoIHRoaXMgY2F0ZWdvcnkgcmVjZW50bHkgc28gYSBiZWRkaW5nIHRhYiBtaWdodCB3b3JrLCwiTmVlZCB0byBtYWtlIHN1cmUgYmFuZHMsIHNjcmVlbiBwcm90ZWN0b3JzIGV0Yy4gZG9uJ3QgcHVsbCBpbnRvIGhlcmUiLCwsLCwsLCwsDQosLCJQcmlvcml0aXNlIDY1JycgYW5kIDU1JyBpbmNoIFRWcywgdGhlbiBiaWdnZXIgc2NyZWVucyBiZWZvcmUgdGhlIHNtYWxsZXIgc2l6ZXMiLCwsUXVlZW4gaXMgdGhlIG1vc3QgcG9wdWxhciBzaXplIGluIHRoZSBVUyAtIHByaW9yaXRpc2UgZGVhbHMgZm9yIHRoaXMgc2l6ZSwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpDYXRlZ29yaWVzIHRvIGNvbnNpZGVyLCxQcm9kdWN0cyBpbmNsdWRlZCwsLCwsLCwsLCwsLCwsDQpVbmRlciAkNTA/LCxBaXIgdGFncywsLCwsLCwsLCwsLCwsDQosLFBvcnRhYmxlIGNoYXJnZXJzL3dpcmVsZXNzIGNoYXJnZXJzLCwsLCwsLCwsLCwsLCwNCiwsIldhdGVyIGJvdHRsZXMgKHN0YW5sZXlzLCBPd2FsYSwgSHlkcm8gZmxhc2ssIFlldGkpIiwsLCwsLCwsLCwsLCwsDQosLEhhbmQgaGVsZCBmYW5zLCwsLCwsLCwsLCwsLCwNCiwsLCwsLCwsLCwsLCwsLCwNCmhvbWUgb2ZmaWNlLCxvZmZpY2UgY2hhaXJzLCwsLCwsLCwsLCwsLCwNCiwsc3RhbmRpbmcgZGVza3MsLCwsLCwsLCwsLCwsLA0KLCxtb25pdG9ycywsLCwsLCwsLCwsLCwsDQosLEtleWJvYXJkcywsLCwsLCwsLCwsLCwsDQosLGRvY2tpbmcgc3RhdGlvbiwsLCwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpHYW1pbmcsLENvbnNvbGVzLCwsLCwsLCwsLCwsLCwNCiwsQWNjZXNzb3JpZXMsLCwsLCwsLCwsLCwsLA0KLCxHYW1lcywsLCwsLCwsLCwsLCwsDQosLENvdWxkIGluY2x1ZGUgTGVnbz8sLCwsLCwsLCwsLCwsLA==")));              const text = preloadedCSV;              const parsed = parseCSV(text);                            const rowsByName = {};              let filterStart = -1;              parsed.forEach((rc, i) => {                 if (rc && rc.length > 0 && rc[0]) rowsByName[rc[0]] = rc;                 if (rc && rc.length > 0 && rc[0] === 'Filter buttons') filterStart = i;              });                            const cols = [];              if(rowsByName['Roundel text']) {                const headerRow = rowsByName['Roundel text'];                for(let col = 1; col < headerRow.length; col++) {                   let label = headerRow[col];                   if (!label) continue;                                      let q = rowsByName['Search Query'] && rowsByName['Search Query'][col] ? rowsByName['Search Query'][col] : '';                   let img = rowsByName['Roundel image'] && rowsByName['Roundel image'][col] ? rowsByName['Roundel image'][col] : '';                   let ds = rowsByName['Discount Amount'] && rowsByName['Discount Amount'][col] ? rowsByName['Discount Amount'][col] : '';                   let pr = rowsByName['Price Range'] && rowsByName['Price Range'][col] ? rowsByName['Price Range'][col] : '';                   let rt = rowsByName['Retailer'] && rowsByName['Retailer'][col] ? rowsByName['Retailer'][col] : '';                   let ot = rowsByName['Offer Type'] && rowsByName['Offer Type'][col] ? rowsByName['Offer Type'][col] : '';                                      let filters = [];                   if(filterStart > 0) {                     for(let r = filterStart + 1; r < parsed.length; r++) {                         if(!parsed[r] || parsed[r][0] === 'Notes' || parsed[r][0] === 'Categories to consider') break;                         let f = parsed[r][col];                         if(f) filters.push(f);                     }                   }                   cols.push({ label, img, q, ds, pr, rt, ot, filters });                }              }              this.carouselData = cols;              if (this.carouselData && this.carouselData.length > 0) {                 const isMatched = this.carouselData.some(c => c.q === this.currentQuery || c.label === this.currentQuery);                 if (!isMatched) {                    const first = this.carouselData[0];                    this.currentQuery = first.q || first.label;                    if (this.priceFilter) this.priceFilter.value = 'all';                    if (this.customPriceMin) this.customPriceMin.value = '';                    if (this.customPriceMax) this.customPriceMax.value = '';                    let dPr = first.pr || 'all';                    if (typeof dPr === 'string' && dPr !== 'all') {                       let prLower = dPr.toLowerCase();                       if (prLower.includes('min') || prLower.includes('over')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else if (prLower.includes('max') || prLower.includes('under')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       }                    }                    let dAm = '0';                    if(first.ds && typeof first.ds === 'string') {                       let m = first.ds.match(/(\d+)/);                       if(m) dAm = m[1];                    }                    if (this.discountFilter) this.discountFilter.value = dAm;                    if (this.offerTypeSelect) this.offerTypeSelect.value = first.ot || '';                    if (this.retailerSelect) this.retailerSelect.value = first.rt || '';                    this.selectedBrands = [];                    if (this.brandDropdown) {                        const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                        chks.forEach(chk => chk.checked = false);                    }                    if (this.searchInput) this.searchInput.value = this.currentQuery;                 }              }              this.renderCarouselUI();          } catch(e){ console.warn(e); }        }                renderCarouselUI() {           const roundelWrapper = this.root.querySelector('.tg-df-carousel-roundels');           if(!roundelWrapper || !this.carouselData) return;                      let html = '';           this.carouselData.forEach(r => {              const q = r.q || r.label;              const isActive = (this.currentQuery === q || this.currentQuery === r.label) ? 'active' : '';              const imgHtml = r.img ? `\x3Cimg src="${r.img}" alt="${r.label}" />` : `\x3Csvg width="32" height="32" fill="#1F69FF" viewBox="0 0 24 24">\x3Cpath d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\x3C/svg>`;              html += `                \x3Cdiv class="tg-df-roundel tg-df-carousel-cat ${isActive}" data-label="${this.escapeHTML(r.label)}">                  \x3Cdiv class="tg-df-roundel-img-box">${imgHtml}\x3C/div>                  \x3Cspan class="tg-df-roundel-label">${this.escapeHTML(r.label)}\x3C/span>                \x3C/div>              `;           });           roundelWrapper.innerHTML = html;                      // Rebind clicks           const roundels = this.root.querySelectorAll('.tg-df-carousel-cat');           roundels.forEach(rNode => {             rNode.addEventListener('click', () => {                const r = this.carouselData.find(c => c.label === rNode.getAttribute('data-label'));                 if(!r) return;                                  if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: r.label,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = r.q || r.label;                const labelTitle = this.root.querySelector('#tg-df-carousel-title-label');                if (labelTitle) labelTitle.textContent = 'Best ' + this.currentQuery;                if (this.priceFilter) this.priceFilter.value = 'all';                if (this.customPriceMin) this.customPriceMin.value = '';                if (this.customPriceMax) this.customPriceMax.value = '';                let dPr = r.pr || 'all';                if (typeof dPr === 'string' && dPr !== 'all') {                   let prLower = dPr.toLowerCase();                   if (prLower.includes('min') || prLower.includes('over')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMin) this.customPriceMin.value = m[1];                   } else if (prLower.includes('max') || prLower.includes('under')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMax) this.customPriceMax.value = m[1];                   }                }                                let discountAmount = '0';                if(r.ds && typeof r.ds === 'string') {                   let m = r.ds.match(/(\d+)/);                   if(m) discountAmount = m[1];                }                if (this.discountFilter) this.discountFilter.value = discountAmount;                if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                                // Clear brands                    this.selectedBrands = [];                    if (this.brandDropdown) {                    const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                    chks.forEach(chk => chk.checked = false);                }                                if (this.searchInput) this.searchInput.value = this.currentQuery;                                roundels.forEach(ro => ro.classList.remove('active'));                if (rNode) rNode.classList.add('active');                                this.renderCarouselFilters(r);                this.fetchDeals(this.currentQuery);             });           });                      // Auto-highlight active           const activeR = this.carouselData.find(c => c.q === this.currentQuery || c.label === this.currentQuery);           if(activeR) this.renderCarouselFilters(activeR);        }                renderCarouselFilters(r) {           const filtersWrap = this.root.querySelector('.tg-df-carousel-filters-wrap');           if(!filtersWrap) return;                      let html = `\x3Cbutton class="tg-df-carousel-filter-btn" data-type="all">All\x3C/button>`;                      r.filters.forEach(f => {              let fL = f.toLowerCase();              let icon = '';              let logic = `data-type="custom" data-v="${this.escapeHTML(f)}"`;              if (fL === 'amazon deals' || fL === 'prime deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>`;              } else if (fL === 'lightning deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>`;              } else {                 if (fL.includes('lightning')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap">\x3Cpolygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2">\x3C/polygon>\x3C/svg>`;                 } else if (fL.includes('% off')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>`;                 } else if (fL.includes('under') || fL.includes('min ')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>`;                 }                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>${icon} ${this.escapeHTML(f)}\x3C/button>`;              }           });                      filtersWrap.innerHTML = html;                      const btns = filtersWrap.querySelectorAll('button');           btns.forEach(b => {             b.addEventListener('click', () => {                const type = b.getAttribute('data-type');                if (type === 'custom') {                   const v = b.getAttribute('data-v');                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-custom-${(v||'').toLowerCase().replace(/[^a-z0-9]+/g, '-')}`, name: 'Custom Filter', label: v });                }                if (type === 'all') {                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: 'filter-clear-all', name: 'Clear all', label: 'Clear all filters' });                   // reset everything                   btns.forEach(btn => btn.classList.remove('active'));                   b.classList.add('active');                                      // Reset prices                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   if (this.brandDropdown) {                     const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                     chks.forEach(chk => chk.checked = false);                   }                } else {                   const v = b.getAttribute('data-v');                   const fL = v.toLowerCase();                                      let mapRet = ['amazon', 'walmart', 'best buy', 'target', 'john lewis', 'currys', 'argos'];                   const getCategory = (s) => {                      if (s === 'lightning deals' || s === 'amazon deals' || s === 'prime deals') return 'offer';                      if (s.includes('% off')) return 'discount';                      if (s.includes('under') || s.includes('over') || s.includes('min') || s.includes('max')) return 'price';                      if (mapRet.includes(s)) return 'retailer';                      return 'brand';                   };                   const cat = getCategory(fL);                   const wasActive = b.classList.contains('active');                   if (cat !== 'brand') {                      btns.forEach(btn => {                          if (btn === b) return;                          if (btn.getAttribute('data-type') === 'all') return;                          const bV = btn.getAttribute('data-v');                          if (!bV) return;                          if (getCategory(bV.toLowerCase()) === cat) btn.classList.remove('active');                      });                   }                   if (wasActive) b.classList.remove('active');                   else b.classList.add('active');                   let anyActive = Array.from(btns).some(btn => btn !== btns[0] && btn.classList.contains('active'));                   if (!anyActive) {                       btns[0].click();                       return;                   } else {                       btns[0].classList.remove('active');                   }                                      if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   btns.forEach(btn => {                       if (!btn.classList.contains('active') || btn.getAttribute('data-type') === 'all') return;                       const vv = btn.getAttribute('data-v');                       const vl = vv.toLowerCase();                                              if (vl === 'lightning deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_lightning';                       } else if (vl === 'amazon deals' || vl === 'prime deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_prime';                       } else if (vl.includes('% off')) {                          let m = vl.match(/(\d+)%/);                          if (m && this.discountFilter) this.discountFilter.value = m[1];                       } else if (vl.includes('under') || vl.includes('max')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       } else if (vl.includes('min') || vl.includes('over')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else {                          let foundR = mapRet.find(x => x === vl);                          if (foundR) {                             let realR = ['Amazon', 'Walmart', 'Best Buy', 'Target', 'John Lewis', 'Currys', 'Argos'].find(x => x.toLowerCase() === vl);                             if (this.retailerSelect) this.retailerSelect.value = realR;                          } else {                             this.selectedBrands.push(vv);                          }                       }                   });                                      if (this.brandDropdown) {                       const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                       chks.forEach(c => c.checked = this.selectedBrands.includes(c.value));                   }                                      if (r.pr && typeof r.pr === 'string') {                       let prL = r.pr.toLowerCase();                       if (prL.includes('under $')) {                           let m = prL.match(/under \$(\d+)/i);                           if (m && this.customPriceMax && !this.customPriceMax.value) this.customPriceMax.value = m[1];                       }                   }                }                                this.fetchDeals(this.currentQuery);             });           });                      // default to highlighting first           btns[0].classList.add('active');        }async fetchDeals(query, append = false) {          if (!append) {             this.showLoading();             this.deals = [];             this.displayLimit = (this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12;          } else {             this.displayLimit += (this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12;          }                    try {            if (this.getViewMode() === 'savings_squad') {               await this.fetchSavingsSquad(append);            } else {               if (this.isBroadQuery(query)) {                 await this.fetchAdviserDeals(query, append);               } else {                 await this.fetchHawkDeals(query, append);                 if (this.deals.length === 0) {                   await this.fetchAdviserDeals(query, append);                 }               }            }          } catch (error) {            console.warn("[Tom's Guide Widget] Fetch error:", error);            this.showError();          }        }        async fetchSavingsSquad() {          let topArticles = this.airedaleArticles;          if (!topArticles) {            const airedaleUrl = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`;            let res;            try {               res = await fetch(airedaleUrl);            } catch(e) {               try { res = await fetch(`https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`); } catch (err) { console.warn("Fallback fetch failed", err); return; }            }            if (!res.ok) throw new Error('Airedale API Error');            const articles = await res.json();            topArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);            this.airedaleArticles = topArticles;                        let tagCounts = {};            topArticles.forEach((a) => {              let articleTags = new Set();              if (a.articlecategory && Array.isArray(a.articlecategory)) {                 a.articlecategory.forEach((t) => articleTags.add(t));              }              articleTags.forEach(t => {                 tagCounts[t] = (tagCounts[t] || 0) + 1;              });            });                        this.airedaleTags = Object.keys(tagCounts).sort((a, b) => tagCounts[b] - tagCounts[a]);            this.airedaleTagCounts = tagCounts;          }                    let targetArticles = topArticles;          if (this.activeDealTag) {             const cleanTag = this.activeDealTag.toLowerCase().replace(/&/g, '').replace(/[^a-z0-9]+/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');             const encodedTag = encodeURIComponent(cleanTag);             const url = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50&articleCategoryHandle=${encodedTag}`;             try {                const res = await fetch(url);                if (res.ok) {                   const articles = await res.json();                   targetArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);                }             } catch(e) {                console.warn("Failed to fetch by activeDealTag", e);             }          }          let extractedDeals = [];          let dynamicBrandsCounts = {};                    targetArticles.forEach((article) => {             if (!article.articlepage) return;                          let pageData = [];             try {                pageData = JSON.parse(article.articlepage[0]);             } catch(e){ console.warn(e); }                          const savingsSquad = pageData.filter((p) => p.type === 'deal' || p.type === 'featured-product');                          savingsSquad.forEach((block, idx) => {                const data = block.data || {};                const isFeatured = block.type === 'featured-product';                                const link = data.link || {};                const priceObj = data.price || {};                const image = data.image || {};                                if (data.brand) {                   data.brand = data.brand.replace(/^\d+\.\s*/, '').trim();                   dynamicBrandsCounts[data.brand] = (dynamicBrandsCounts[data.brand] || 0) + 1;                }                const externalUrl = isFeatured ? data.url : (link.href || null);                let summaryTitle = isFeatured ? (data.name || data.brand) : (data.productName || link.label || article.articlename);                let description = isFeatured ? (data.strapline || '') : (data.text || '');                                if (!isFeatured && !data.productName && data.text) {                   const brSplit = data.text.split(new RegExp('\x3Cbr\\s*\\/?\\x3E', 'i'));                   if (brSplit.length > 1) {                     summaryTitle = brSplit[0].replace(/<[^>]+>/g, '').trim();                     description = brSplit.slice(1).join(' ').replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').trim();                   } else {                     const match = data.text.match(/\x3Cstrong>(.*?)<\/strong>/);                     if (match) {                       summaryTitle = match[1].replace(/<[^>]+>/g, '').trim();                       if (summaryTitle.endsWith(':')) summaryTitle = summaryTitle.slice(0, -1);                     }                   }                }                                let imageUrl = isFeatured ? image.mos : (image.src || null);                if (imageUrl && imageUrl.startsWith('//')) imageUrl = 'https:' + imageUrl;                                description = description.replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').replace(/View Deal$/i, '').trim();                                let merchantName = data.retailer || '';                if (!merchantName && externalUrl) {                   try {                     merchantName = new URL(externalUrl).hostname.replace('www.', '').split('.')[0];                     merchantName = merchantName.charAt(0).toUpperCase() + merchantName.slice(1);                   }catch(e){ console.warn(e); }                }                if (!merchantName) merchantName = 'Retailer';                const q = (this.currentQuery || '').toLowerCase();                const activeTagLogic = (this.activeDealTag || '').toLowerCase();                if (q.length > 2 && q !== activeTagLogic) {                   const searchTarget = `${summaryTitle || ''} ${description || ''}`.toLowerCase();                   if (!searchTarget.includes(q)) return;                }                let rawPrice = 0;                let rawMsrp = 0;                let currencyStr = '$';                if (isFeatured) {                   rawPrice = typeof data.salePrice === 'number' && data.salePrice > 0 ? data.salePrice : (typeof data.price === 'number' ? data.price : 0);                   rawMsrp = typeof data.salePrice === 'number' && typeof data.price === 'number' && data.price > data.salePrice ? data.price : 0;                   currencyStr = data.currency === 'GBP' ? '£' : '$';                } else {                   rawPrice = priceObj.amount ? parseFloat(priceObj.amount) : 0;                   rawMsrp = priceObj.amountWas ? parseFloat(priceObj.amountWas) : 0;                   currencyStr = priceObj.currency === 'GBP' ? '£' : '$';                }                                let savingAmt = 0;                let savingLabel = '';                if (rawPrice > 0 && rawMsrp > rawPrice) {                   savingAmt = parseFloat((rawMsrp - rawPrice).toFixed(2));                   savingLabel = `Save ${currencyStr}${savingAmt}`;                }                                // Apply Brand filter                if (this.selectedBrands && this.selectedBrands.length > 0) {                   const itemBrand = (data.brand || '').toLowerCase();                   const hasMatch = this.selectedBrands.some(sb => sb.toLowerCase() === itemBrand);                   if (!hasMatch) return;                }                // Apply Price filter                let priceFilterVal = null;                const min = this.customPriceMin ? this.customPriceMin.value : '';                const max = this.customPriceMax ? this.customPriceMax.value : '';                if (min || max) {                   priceFilterVal = `${min}_${max}`;                } else if (this.priceFilter && this.priceFilter.value !== 'all') {                   priceFilterVal = this.priceFilter.value;                }                if (priceFilterVal && rawPrice > 0) {                   if (priceFilterVal === 'under50' && rawPrice >= 50) return;                   if (priceFilterVal === 'over50' && rawPrice <= 50) return;                   if (priceFilterVal === 'over30' && rawPrice <= 30) return;                   if (priceFilterVal === 'over500' && rawPrice <= 500) return;                   if (priceFilterVal.includes('_')) {                      const parts = priceFilterVal.split('_');                      const min = parseFloat(parts[0]);                      const max = parseFloat(parts[1]);                      if (!isNaN(min) && rawPrice < min) return;                      if (!isNaN(max) && rawPrice > max) return;                   }                }                // Apply Discount filter                if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {                   const requiredDiscount = parseInt(this.discountFilter.value);                   if (!isNaN(requiredDiscount) && requiredDiscount > 0) {                      if (!rawMsrp || rawMsrp <= rawPrice) return;                      const ratio = Math.round((1 - (rawPrice / rawMsrp)) * 100);                      if (ratio < requiredDiscount) return;                   }                }                                extractedDeals.push({                   id: `airedale-${article.id || Math.random()}-${idx}`,                   url: externalUrl,                   image: imageUrl,                   fallbackImage: imageUrl,                   title: summaryTitle,                   brand: data.brand || '',                   productName: data.productName || '',                   merchant: merchantName,                   rawPrice: rawPrice,                   rawMsrp: rawMsrp,                   price: rawPrice > 0 ? rawPrice.toString() : '',                   msrp: rawMsrp > 0 ? rawMsrp.toString() : '',                   currency: currencyStr,                   isCheckPrice: !rawPrice,                   savingLabel: savingLabel,                   savingType: rawMsrp > rawPrice ? 'amount' : 'none',                   isPrime: false,                   starRating: null,                   description: description,                   text: data.text || ''                });             });          });                    const airedaleBrandsList = Object.keys(dynamicBrandsCounts).map(b => ({              formatted_value: b,              count: dynamicBrandsCounts[b]          })).sort((a,b) => b.count - a.count);                    if (this.getViewMode() === 'savings_squad') {             this.populateBrandDropdown(airedaleBrandsList.slice(0, 15));             if (this.brandFilterWrapper) {                if (airedaleBrandsList.length === 0) {                    this.brandFilterWrapper.style.display = 'none';                } else {                    this.brandFilterWrapper.style.display = 'flex';                }             }          }                    this.deals = extractedDeals;          this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        isBroadQuery(query) {          const q = query.toLowerCase();          const intentModifiers = ['deals', 'best', 'sale', 'under', 'cheap', 'offers', 'discount'];          return intentModifiers.some(term => q.includes(term));        }        async fetchHawkDeals(query, append = false) {          const url = new URL(this.apiUrl);          url.searchParams.append('model_name', query);          const areaCode = this.getAreaCode();          if (areaCode) {            url.searchParams.append('area', areaCode);          }                    if (append && this.deals.length > 0) {            url.searchParams.append('offset', this.deals.length.toString());          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.append('filter_merchant_name', this.retailerSelect.value);          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.append('filter_label[text_brand]', this.selectedBrands.join(','));          }                    let priceVal = null;          const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             priceVal = `${min}_${max}`;          } else if (this.priceFilter && this.priceFilter.value !== 'all') {             priceVal = this.priceFilter.value;          }          if (priceVal) {            if (priceVal === 'under50') {              url.searchParams.append('filter_max_price', '50');            } else if (priceVal === 'over50') {              url.searchParams.append('filter_min_price', '50');            } else if (priceVal === 'over30') {              url.searchParams.append('filter_min_price', '30');            } else if (priceVal === 'over500') {              url.searchParams.append('filter_min_price', '500');            } else if (priceVal.includes('_')) {              const parts = priceVal.split('_');              if (parts[0]) url.searchParams.append('filter_min_price', parts[0]);              if (parts[1]) url.searchParams.append('filter_max_price', parts[1]);            }          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {              const ratio = (100 - v) / 100;              url.searchParams.append('min_discount_ratio', ratio.toString());            }          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.append('offer', this.offerTypeSelect.value);          }                    url.searchParams.append('filter_product_types', 'deals');                    if (this.rowsSelect && this.rowsSelect.value) {            url.searchParams.append('rows', this.rowsSelect.value);          } else {             url.searchParams.append('rows', '12'); // default          }          let response;          try {             response = await fetch(url.toString());          } catch(e) {             if (window.location.protocol === 'file:') {                console.warn("[Tom's Guide Widget] fetch from file:// blocked by local CORS policy, falling back to Adviser mock.");                await this.fetchAdviserDeals(query);                return;             }             console.warn("Hawk fetch failed", e);             this.deals = [];             this.render();             return;          }          if (!response.ok) {            throw new Error('Hawk API Response Error');          }          const rawData = await response.json();          // Safely locate data array from potentially wrapped response          let offers = [];          let modelInfoArray = [];                    let brandFilterData = null;          if (rawData && rawData.widget && rawData.widget.data && Array.isArray(rawData.widget.data.filters)) {             brandFilterData = rawData.widget.data.filters.find(f => f.type === 'label_text_brand');          } else if (rawData && rawData.data && Array.isArray(rawData.data.filters)) {             brandFilterData = rawData.data.filters.find(f => f.type === 'label_text_brand');          }          if (brandFilterData && Array.isArray(brandFilterData.values) && brandFilterData.values.length > 0) {             this.populateBrandDropdown(brandFilterData.values);          } else {             if (this.brandFilterWrapper && this.selectedBrands.length === 0) {                this.brandFilterWrapper.style.display = 'none';             }          }                    if (rawData && rawData.widget && rawData.widget.data) {            if (Array.isArray(rawData.widget.data.offers)) offers = rawData.widget.data.offers;            if (rawData.widget.data.model_info && typeof rawData.widget.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.widget.data.model_info) ? rawData.widget.data.model_info : Object.values(rawData.widget.data.model_info);            }          } else if (rawData && rawData.data) {            if (Array.isArray(rawData.data.offers)) offers = rawData.data.offers;            if (rawData.data.model_info && typeof rawData.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.data.model_info) ? rawData.data.model_info : Object.values(rawData.data.model_info);            }          } else {            if (Array.isArray(rawData)) offers = rawData;            else if (rawData && Array.isArray(rawData.offers)) offers = rawData.offers;            else if (rawData && rawData.offers && Array.isArray(rawData.offers.offer)) offers = rawData.offers.offer;            else if (rawData && rawData.offers) offers = [].concat(rawData.offers);                        if (rawData && rawData.model_info && typeof rawData.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.model_info) ? rawData.model_info : Object.values(rawData.model_info);            }          }          let modelDetails = {};          modelInfoArray.forEach(m => {            const mId = m.model_id || m.id;            if (mId) {              modelDetails[mId] = {                score: m.score != null ? parseFloat(m.score) : null,                brand: m.brand || null,                parent: (m.parents && Array.isArray(m.parents) && m.parents.length > 0) ? m.parents[0].name : null              };            }          });          offers.forEach(item => {            let data = { ...item };            const mId = data.model_id;            if (mId && modelDetails[mId]) {              data.review_score = modelDetails[mId].score;              data.model_brand = modelDetails[mId].brand;              data.model_parent = modelDetails[mId].parent;            } else {              data.review_score = null;            }                        let itemOffers = [];            if (Array.isArray(item.offers)) itemOffers = item.offers;            else if (Array.isArray(item.offer)) itemOffers = item.offer;            else if (item.offers && typeof item.offers === 'object') itemOffers = [item.offers];            else if (item.offer && typeof item.offer === 'object') itemOffers = [item.offer];            if (itemOffers.length > 0) {              itemOffers.forEach(subItem => {                let subData = { ...item, ...subItem };                const subId = subData.model_id;                if (subId && modelDetails[subId]) {                  subData.review_score = modelDetails[subId].score;                  subData.model_brand = modelDetails[subId].brand;                  subData.model_parent = modelDetails[subId].parent;                } else if (data.review_score != null) {                  subData.review_score = data.review_score;                }                if (subData.merchant && typeof subData.merchant === 'object') {                  subData.merchant_name = subData.merchant.name;                }                this.deals.push(this.extractDealData(subData));              });              return;            }                        if (item.merchant && typeof item.merchant === 'object') {              data.merchant_name = item.merchant.name;            }                        this.deals.push(this.extractDealData(data));          });                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        async fetchAdviserDeals(query) {          // ======================================================================          // TODO: ADVISER API REPLACEMENT          // The code below simulates the Adviser API response using mock data.          // Once the real endpoint is ready, remove getAdviserMockData() and           // perform an actual fetch() request similar to fetchHawkDeals().          // Example:          // const area = this.getAreaCode();          // let apiUrl = `https://your-adviser-api.com/search?q=${query}&area=${area}`;          // if (this.priceFilter && this.priceFilter.value !== 'all') {          //   const val = this.priceFilter.value;          //   if (val === 'under50') apiUrl += '&filter_max_price=50';          //   else if (val === '50_100') apiUrl += '&filter_max_price=100';          //   else if (val === '100_200') apiUrl += '&filter_max_price=200';          //   else if (val === '200_500') apiUrl += '&filter_max_price=500';          // }          // const res = await fetch(apiUrl);          // const rawData = await res.json();          // ======================================================================          // Simulating network latency          await new Promise(resolve => setTimeout(resolve, 400));                    const rawData = this.getAdviserMockData();          let offers = [];                    if (rawData && rawData.data && rawData.data.Get && Array.isArray(rawData.data.Get.Deal)) {            offers = rawData.data.Get.Deal;          }                    // Basic client-side filtering for the mock if we want it to react to the query          const q = query.toLowerCase();          const selectedRetailer = (this.retailerSelect && this.retailerSelect.value) ? this.retailerSelect.value.toLowerCase() : null;                    offers.forEach(item => {            const dataObj = item;                        // Apply retailer filter            const itemRetailer = (dataObj.dataRetailer || '').toLowerCase();            if (selectedRetailer && itemRetailer !== selectedRetailer && !itemRetailer.includes(selectedRetailer)) {              return;            }                        // Apply mock price filter            let price = dataObj.dataDiscountedPrice || 0;            if (typeof price === 'string') {              price = parseFloat(price.replace(/[^0-9.]/g, ''));            }            let priceVal = null;            const min = this.customPriceMin ? this.customPriceMin.value : '';            const max = this.customPriceMax ? this.customPriceMax.value : '';            if (min || max) {               priceVal = `${min}_${max}`;            } else if (this.priceFilter && this.priceFilter.value !== 'all') {               priceVal = this.priceFilter.value;            }            if (priceVal) {              if (priceVal === 'under50' && price >= 50) return;              if (priceVal === 'over50' && price <= 50) return;              if (priceVal === 'over30' && price <= 30) return;              if (priceVal === 'over500' && price <= 500) return;              if (priceVal.includes('_')) {                 const parts = priceVal.split('_');                 if (parts[0] && price < parseFloat(parts[0])) return;                 if (parts[1] && price > parseFloat(parts[1])) return;              }            }                        // Map Adviser schema to our widget's expected schema            const mappedData = {              url: dataObj.linkHREF || dataObj.dataLink || '#',              image: dataObj.imageURL || (dataObj.image && dataObj.image.src) || '',              title: dataObj.dataProduct || (dataObj.product && dataObj.product.name) || 'Product Deal',              merchant: dataObj.dataRetailer || 'Retailer',              price: dataObj.dataDiscountedPrice || 0,              currency: dataObj.dataCurrency === 'USD' ? '$' : (dataObj.dataCurrency || '$'),              msrp: dataObj.dataOriginalPrice || null            };                        const titleLow = mappedData.title.toLowerCase();            const merchLow = mappedData.merchant.toLowerCase();                        // Smarter mock filtering            let isMatch = false;            if (q === '' || this.isBroadQuery(q)) {              isMatch = true;            } else if (titleLow.includes(q) || merchLow.includes(q)) {              isMatch = true;            } else if ((q.includes('laptop') || q.includes('mac') || q.includes('pc')) && (titleLow.includes('macbook') || titleLow.includes('laptop'))) {              isMatch = true;            } else if ((q.includes('tv') || q.includes('television')) && (titleLow.includes('tv') || titleLow.includes('oled') || titleLow.includes('qled'))) {              isMatch = true;            } else if ((q.includes('phone') || q.includes('smartphone')) && (titleLow.includes('galaxy') || titleLow.includes('phone'))) {              isMatch = true;            } else if ((q.match(/watch|fitness|run|shoe/)) && (titleLow.includes('forerunner') || titleLow.includes('saucony') || titleLow.includes('watch'))) {              isMatch = true;            }                        if (isMatch) {               this.deals.push(this.extractDealData(mappedData));            }          });                    let rowLimit = 12;          if (this.rowsSelect && this.rowsSelect.value) {            rowLimit = parseInt(this.rowsSelect.value, 10) || 12;          }          // Intentionally omitting the slice here to allow "Load More" to work if the API returns more                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        getAdviserMockData() {          return {            "data": {              "Get": {                "Deal": [                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 300,                    "dataOriginalPrice": 399,                    "dataProduct": "Samsung Galaxy A36",                    "dataRetailer": "Samsung",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/MqDYsukV3JBG54te6dEs7j.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 14,                    "dataOriginalPrice": 24,                    "dataProduct": "Blink Mini",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/3JurmAjHsDa5tPdaHAwEV8.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 59,                    "dataOriginalPrice": 99,                    "dataProduct": "Ring Video Doorbell",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/rAh4uR7AsAsALCCLTXnLNJ.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 10,                    "dataOriginalPrice": 599,                    "dataProduct": "MacBook Neo",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/Lg4Dvg68j9SbB5CPNrTEpH.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 749,                    "dataOriginalPrice": 849,                    "dataProduct": "65\\\" Fire TV Omni 4K QLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/SG34ZWodUkLTxJvMTbjPYR.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 71,                    "dataOriginalPrice": 160,                    "dataProduct": "Saucony Hurricane 24",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/vxf7UD5T2Am7guVzFoFcZ4.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 649,                    "dataOriginalPrice": 749,                    "dataProduct": "Garmin Forerunner 970",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/3GKnEu7CdhtxPMfnPCMCiA.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1049,                    "dataOriginalPrice": 1499,                    "dataProduct": "LG 48\\\" C4 4K OLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/imvwZV9zoMD6fn9Afuge35.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1499,                    "dataOriginalPrice": 2199,                    "dataProduct": "Samsung 49\\\" Odyssey Neo G9 4K Gaming Monitor",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/XWDEJ5dUAE2nhK8k3Jk7k7.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 299,                    "dataOriginalPrice": 699,                    "dataProduct": "EGOHOME Black Memory Foam Mattress (queen)",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/hMUemtAejNETLVYxNrktzm.jpg"                  }                ]              }            }          };        }        decodeHTML(html) {          if (!html) return '';          const txt = document.createElement("textarea");          txt.innerHTML = String(html);          return txt.value;        }        extractDealData(item) {          const priceRawStr = String(item.price || item.current_price || '0');          const msrpRawStr = String(item.was_price || item.msrp || item.original_price || '0');          const rawPrice = parseFloat(priceRawStr.replace(/[^\d.]/g, '')) || 0;          const rawMsrp = parseFloat(msrpRawStr.replace(/[^\d.]/g, '')) || 0;          const isCheckPrice = rawPrice === 0 || priceRawStr === '0.00' || priceRawStr === '0';                    let originalImageUrl = item.image || item.image_url || item.product_image || '';          let imageUrl = originalImageUrl;          if ((!imageUrl || isCheckPrice) && item.model_image_url) {             imageUrl = item.model_image_url;             originalImageUrl = imageUrl;          } else if ((!imageUrl || isCheckPrice) && item.model_image) {             imageUrl = item.model_image;             originalImageUrl = imageUrl;          }                    if (imageUrl) {            imageUrl = imageUrl.replace(/-(\d+)-(\d+)(\.[a-z.]+)$/i, '$3');          }                    let fallbackImage = '';          if (originalImageUrl && originalImageUrl !== imageUrl) {             fallbackImage = originalImageUrl;          } else if (item.model_image && item.model_image !== imageUrl) {             fallbackImage = item.model_image;          } else if (item.model_image_url && item.model_image_url !== imageUrl) {             fallbackImage = item.model_image_url;          }                    const rawCurrency = item.currency || item.currency_symbol || '$';                    let savingLabel = item.percentage_saving_label || '';          if (!savingLabel && rawMsrp > rawPrice && rawPrice > 0) {            const pct = Math.round(((rawMsrp - rawPrice) / rawMsrp) * 100);            if (pct > 0) {              savingLabel = `${pct}% OFF`;            }          }                    const isPrime = item.shipping && item.shipping.prime === true;                    let scoreRaw = (item.review_score !== undefined && item.review_score !== null && item.review_score > 0) ? parseFloat(item.review_score) : null;          let starRating = 0;          if (scoreRaw !== null) {            starRating = Math.round((scoreRaw > 10 ? scoreRaw / 20 : scoreRaw / 2) * 2) / 2;          }                    return {            id: item.offer_id || item.link || item.url || item.offer_link || Math.random().toString(),            url: item.link || item.url || item.offer_link || '#',            image: imageUrl,            fallbackImage: fallbackImage,            title: item.name || item.title || item.model_name || item.product_name || 'Unknown Product',            brand: item.brand || '',            productName: item.model_name || item.product_name || item.name || '',            merchant: item.merchant_name || item.merchant || item.retailer || 'Retailer',            price: item.price !== undefined ? String(item.price) : '0.00',            currency: this.decodeHTML(rawCurrency),            msrp: item.was_price || item.msrp || item.original_price || null,            rawPrice: rawPrice,            rawMsrp: rawMsrp,            hasWasPrice: (item.was_price !== undefined && item.was_price !== null),            isCheckPrice: isCheckPrice,            savingLabel: savingLabel,            isPrime: isPrime,            starRating: starRating > 0 ? starRating : null,            modelId: item.model_id || '',            productKey: item.product_key || '',            merchantId: (item.merchant && typeof item.merchant === 'object') ? item.merchant.id || '' : '',            matchId: item.match_id || '',            merchantNetwork: (item.merchant && typeof item.merchant === 'object') ? item.merchant.an || '' : '',            merchantUrl: (item.merchant && typeof item.merchant === 'object') ? item.merchant.url || '' : '',            modelBrand: item.model_brand || item.brand || '',            modelParent: item.model_parent || ''          };        }        sortData() {          const sortVal = this.sortSelect ? this.sortSelect.value : (this.getViewMode() === 'savings_squad' ? 'date_desc' : 'discount_desc');          if (sortVal === 'price_asc') {            this.deals.sort((a, b) => a.rawPrice - b.rawPrice);          } else if (sortVal === 'price_desc') {            this.deals.sort((a, b) => b.rawPrice - a.rawPrice);          } else if (sortVal === 'discount_desc') {            this.deals.sort((a, b) => {              const aDiscount = a.rawMsrp > a.rawPrice ? (a.rawMsrp - a.rawPrice) : 0;              const bDiscount = b.rawMsrp > b.rawPrice ? (b.rawMsrp - b.rawPrice) : 0;              return bDiscount - aDiscount;            });          } else if (sortVal === 'date_desc') {             this.deals.sort((a, b) => {                let dateA = 0;                let dateB = 0;                if (a && a.modifiedDate) {                   const valA = Array.isArray(a.modifiedDate) ? a.modifiedDate[0] : a.modifiedDate;                   dateA = new Date(valA).getTime();                   if (isNaN(dateA)) dateA = 0;                }                if (b && b.modifiedDate) {                   const valB = Array.isArray(b.modifiedDate) ? b.modifiedDate[0] : b.modifiedDate;                   dateB = new Date(valB).getTime();                   if (isNaN(dateB)) dateB = 0;                }                return dateB - dateA;             });          }        }        getFilteredDeals() {          let filteredDeals = [...this.deals];                    if (this.dealModeToggle && this.dealModeToggle.checked) {            filteredDeals = filteredDeals.filter(d => d.hasWasPrice || (d.msrp && d.rawMsrp > d.rawPrice));          }                    return filteredDeals;        }        showLoading() {          const _div = '<' + '/div>';          const skeletonCardHtml = `            \x3Cdiv class="tg-df-card">              \x3Cdiv class="tg-df-card-image-box">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-img">${_div}              ${_div}              \x3Cdiv class="tg-df-card-body">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-card-footer mt-auto">                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="height:24px;">${_div}                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text" style="height:44px; margin-top:8px;">${_div}                ${_div}              ${_div}            ${_div}`;          this.grid.innerHTML = Array(4).fill(skeletonCardHtml).join('');        }        showError() {          const _div = '<' + '/div>';          this.grid.innerHTML = `\x3Cdiv class="tg-df-message">            An error occurred while finding deals. Please check your connection and try again.          ${_div}`;        }        escapeHTML(str) {          if (!str) return '';          return String(str).replace(/[&<>'"]/g, tag => ({              '&': '&', '<': '<', '>': '>', "'": ''', '"': '"'          }[tag] || tag));        }                bindCouponButtons() {          const btns = this.root.querySelectorAll('.tg-df-tag-coupons');          btns.forEach(btn => {            btn.addEventListener('click', (e) => {              e.preventDefault();              e.stopPropagation();              const merchant = btn.getAttribute('data-merchant');              this.openVouchersModal(merchant);            });          });                    const closeBtn = this.root.querySelector('#tg-df-vouchers-close');          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (closeBtn) {            closeBtn.onclick = () => this.closeVouchersModal();          }          if (backdrop) {            backdrop.onclick = (e) => {              if (e.target === backdrop) this.closeVouchersModal();            };          }        }                closeVouchersModal() {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (backdrop) backdrop.classList.remove('active');        }                async checkMerchantsCouponsBulk(merchants) {          if (!merchants || merchants.length === 0) return {};          const controller = new AbortController();          const timeoutId = setTimeout(() => controller.abort(), 4000);          try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchants.join(','));            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '120');            url.searchParams.append('origin', 'widgets-clientside');                        let res; try { res = await fetch(url.toString(), { signal: controller.signal }); } catch (e) { return {}; }            clearTimeout(timeoutId);            if (!res.ok) return {};            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        const foundMerchants = new Set();            offers.forEach(o => {              let mName = o.merchant_name || o.merchant || o.retailer;              if (mName && typeof mName === 'object') mName = mName.name;              if (mName) foundMerchants.add(String(mName).toLowerCase());            });            const resultMap = {};            merchants.forEach(m => {              if (m) resultMap[m] = foundMerchants.has(String(m).toLowerCase());            });            return resultMap;          } catch (e) {            return {};          }        }                async openVouchersModal(merchantName) {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          const title = this.root.querySelector('#tg-df-vouchers-title');          const content = this.root.querySelector('#tg-df-vouchers-content');                    if (!backdrop || !content) return;                    // HACK: Hide closing tags          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h4 = '<' + '/h4>';          const _svg = '<' + '/svg>';          const _circle = '<' + '/circle>';          const _polyline = '<' + '/polyline>';          const _rect = '<' + '/rect>';          const _path = '<' + '/path>';                    title.innerText = `${merchantName} Coupons & Deals`;          content.innerHTML = `\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}                               \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}`;          backdrop.classList.add('active');                    try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchantName);            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '50');            url.searchParams.append('origin', 'widgets-clientside');                        const res = await fetch(url.toString());            if (!res.ok) throw new Error('API Error');            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        if (offers.length === 0) {              content.innerHTML = `\x3Cdiv class="tg-df-message">No vouchers currently available for ${this.escapeHTML(merchantName)}.${_div}`;              return;            }                        content.innerHTML = offers.map((v, idx) => {              let offerObj = v;              if (v.offers && v.offers.offer) {                offerObj = Array.isArray(v.offers.offer) ? v.offers.offer[0] : v.offers.offer;              } else if (v.offer) {                offerObj = Array.isArray(v.offer) ? v.offer[0] : v.offer;              }              let logoUrl = v.logo_url || offerObj.logo_url || '';              if (!logoUrl && v.merchant) {                if (Array.isArray(v.merchant) && v.merchant.length > 0) logoUrl = v.merchant[0].logo_url || '';                else logoUrl = v.merchant.logo_url || '';              }                            const offerName = offerObj.name || offerObj.title || v.name || v.title || 'Special Offer';              const endTime = offerObj.end_time || v.end_time || '';              const linkUrl = offerObj.link || offerObj.url || v.link || v.url || '#';                            let foundVoucherCode = '';              const findVoucherCode = (obj) => {                if (!obj || typeof obj !== 'object') return;                if (obj.type === 'voucher_code' && obj.display_value) {                  foundVoucherCode = obj.display_value;                  return;                }                if (Array.isArray(obj)) {                  for (const item of obj) {                    findVoucherCode(item);                    if (foundVoucherCode) return;                  }                } else {                  for (const k in obj) {                    if (Object.prototype.hasOwnProperty.call(obj, k)) {                      findVoucherCode(obj[k]);                      if (foundVoucherCode) return;                    }                  }                }              };              findVoucherCode(offerObj);              if (!foundVoucherCode) findVoucherCode(v);                            const voucherCode = foundVoucherCode || offerObj.voucher_code || v.voucher_code || '';              const codeHtml = voucherCode ? `\x3Cspan class="tg-df-voucher-code" data-action="copy-code" data-code="${this.escapeHTML(voucherCode)}" title="Copy to clipboard">                \x3Cspan class="tg-df-voucher-code-text">${this.escapeHTML(voucherCode)}${_span}                \x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-left:6px;flex-shrink:0;" class="tg-df-voucher-copy-icon">                  \x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">${_rect}                  \x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">${_path}                ${_svg}              ${_span}` : '';                            const logoHtml = logoUrl                 ? `\x3Cimg src="${this.escapeHTML(logoUrl)}" alt="${this.escapeHTML(offerName)}" class="tg-df-voucher-logo" />`                 : `\x3Cdiv class="tg-df-voucher-logo" style="background:#e2e8f0;">${_div}`;                            let expiryHtml = '';              if (endTime) {                let dStr = endTime;                if (!isNaN(dStr) && String(dStr).length === 10) dStr = Number(dStr) * 1000;                const d = new Date(dStr);                if (!isNaN(d.getTime())) {                  const options = { year: 'numeric', month: 'short', day: 'numeric' };                  expiryHtml = `                    \x3Cdiv class="tg-df-voucher-expiry">                      \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                        \x3Ccircle cx="12" cy="12" r="10">${_circle}                        \x3Cpolyline points="12 6 12 12 16 14">${_polyline}                      ${_svg}                      Expires ${d.toLocaleDateString(undefined, options)}                    ${_div}`;                }              }              const revenueIdVal = generateRevenueId(linkUrl, offerName, merchantName, null);              const rewrittenLinkUrl = rewriteAffiliateLink(linkUrl, area, revenueIdVal);              return `                \x3Ca href="${this.escapeHTML(rewrittenLinkUrl)}" target="_blank" rel="noopener nofollow" class="tg-df-voucher-item"                  data-action="voucher-click"                  data-product-name="${this.escapeHTML(offerName)}"                  data-merchant-name="${this.escapeHTML(merchantName)}"                  data-analytics-id="${this.escapeHTML(offerObj.offer_id || offerObj.id || v.id || '')}"                  data-price=""                  data-previous-price=""                  data-original-link="${this.escapeHTML(linkUrl)}"                  data-revenue-id="${revenueIdVal}"                  data-index="${idx}"                  data-total="${offers.length}"                  data-in-stock="true"                  data-currency="USD"                  data-model-id="${this.escapeHTML(offerObj.model_id || v.model_id || offerObj.id || v.id || '')}"                  data-merchant-id="${this.escapeHTML(offerObj.merchant_id || offerObj.merchant?.id || '')}"                >                  ${logoHtml}                  \x3Cdiv class="tg-df-voucher-content">                    \x3Ch4 class="tg-df-voucher-title">${this.escapeHTML(offerName)}${_h4}                    ${codeHtml}                    ${expiryHtml}                  ${_div}                ${_a}              `;            }).join('');                        // Attach copy functionality            const copyBtns = content.querySelectorAll('[data-action="copy-code"]');            copyBtns.forEach(btn => {              btn.addEventListener('click', async (e) => {                e.preventDefault();                e.stopPropagation();                                const code = btn.getAttribute('data-code');                if (!code) return;                                try {                  const copyToClipboard = async (text) => {                     if (window.navigator.clipboard && window.isSecureContext) {                        try { await window.navigator.clipboard.writeText(text); return; } catch (e) {}                     }                     const textArea = document.createElement("textarea");                     textArea.value = text;                     textArea.style.position = "fixed";                     document.body.appendChild(textArea);                     textArea.focus();                     textArea.select();                     document.execCommand('copy');                     textArea.remove();                  };                  await copyToClipboard(code);                                    // Visual feedback                  btn.classList.add('copied');                  const textSpan = btn.querySelector('.tg-df-voucher-code-text');                  const iconSvg = btn.querySelector('.tg-df-voucher-copy-icon');                                    const origText = textSpan.innerText;                  const origIcon = iconSvg.innerHTML;                                    textSpan.innerText = 'Copied!';                  iconSvg.innerHTML = `\x3Cpolyline points="20 6 9 17 4 12">${_polyline}`;                                    setTimeout(() => {                    if (btn) {                      btn.classList.remove('copied');                      if (textSpan) textSpan.innerText = origText;                      if (iconSvg) iconSvg.innerHTML = origIcon;                    }                  }, 2000);                                    trackElementInteraction({                    id: 'voucher-code-copy',                    name: 'Copy Voucher Code',                    label: `Copied ${code} for ${merchantName}`                  });                } catch (err) {                  console.warn('Failed to copy text: ', err);                }              });            });            // Attach voucher click tracking            const voucherBtns = content.querySelectorAll('[data-action="voucher-click"]');            voucherBtns.forEach(btn => {              btn.addEventListener('click', (e) => {                if (e.target.closest('[data-action="copy-code"]')) return;                                const productName = btn.getAttribute('data-product-name');                const merchantNameAttr = btn.getAttribute('data-merchant-name');                const productId = btn.getAttribute('data-analytics-id');                const price = parseFloat(btn.getAttribute('data-price')) || null;                const prevPriceStr = btn.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = btn.getAttribute('data-original-link');                const rewrittenLink = btn.getAttribute('href');                const revenueId = btn.getAttribute('data-revenue-id');                const index = parseInt(btn.getAttribute('data-index'), 10) || 0;                const inStock = btn.getAttribute('data-in-stock') === 'true';                const totalText = btn.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: btn.getAttribute('data-model-id') || null,                    matchId: btn.getAttribute('data-match-id') || null,                    brand: btn.getAttribute('data-model-brand') || null,                    parent: btn.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: btn.getAttribute('data-merchant-id') || null,                    network: btn.getAttribute('data-merchant-network') || null,                    url: btn.getAttribute('data-merchant-url') || null,                    name: merchantNameAttr                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: btn.getAttribute('data-currency') || 'USD'                };                if (typeof trackDealClick === 'function') {                  trackDealClick(trackingParams);                }              });            });                                  } catch (e) {            console.warn(e);            content.innerHTML = `\x3Cdiv class="tg-df-message">Failed to load vouchers.${_div}`;          }        }        render() {          try {            if (this.getViewMode() === 'savings_squad' && this.airedaleTags.length > 0) {              if (this.categoryFilterWrapper) {                 this.categoryFilterWrapper.style.display = 'flex';              }              if (this.categoryFilter) {                 const _option = '<' + '/option>';                 let optionsHtml = `\x3Coption value="all">All Categories${_option}`;                 this.airedaleTags.forEach(tag => {                    const isSelected = this.activeDealTag === tag ? 'selected' : '';                    optionsHtml += `\x3Coption value="${this.escapeHTML(tag)}" ${isSelected}>${this.escapeHTML(tag)} (${this.airedaleTagCounts[tag] || 0})${_option}`;                 });                 this.categoryFilter.innerHTML = optionsHtml;                 this.categoryFilter.value = this.activeDealTag || 'all';              }            } else {               if (this.categoryFilterWrapper) {                  this.categoryFilterWrapper.style.display = 'none';               }            }            const displayDeals = this.getFilteredDeals();          // HACK: Hide closing tags from the CMS HTML sanitizer so it doesn't strip them during in-page injection          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h3 = '<' + '/h3>';          const _p = '<' + '/p>';          const _strong = '<' + '/strong>';          const _sup = '<' + '/sup>';          const _button = '<' + '/button>';          if (displayDeals.length === 0) {            if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {              if (this.deals.length > 0) {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No deals match your selected filters.                ${_div}`;              } else if (this.getViewMode() === 'savings_squad' && this.currentQuery.length <= 2) {                 // Do not show "no exact matches" if query is empty for savings_squad                 this.grid.innerHTML = '';              } else {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No exact matches found for "\x3Cstrong>${this.escapeHTML(this.currentQuery)}${_strong}". Try adjusting your search term.                ${_div}`;              }            } else {              this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                Search product or category names to discover the best deals from across the web.              ${_div}`;            }            return;          }          let dealsHtml = displayDeals.slice(0, this.displayLimit).map((deal, index) => {            try {               const currencySym = this.escapeHTML(deal.currency);               const isoCurrencyCode = normalizeCurrency(currencySym);               const escapedPrice = this.escapeHTML(deal.price);               const escapedMsrp = this.escapeHTML(deal.msrp);               const areaCode = this.getAreaCode();                              const revenueId = generateRevenueId(deal.url, deal.title, deal.merchant, null);               const originalLink = deal.url;               const rewrittenLink = rewriteAffiliateLink(deal.url, areaCode, revenueId);                        const productCategoryName = 'deals';            const dataAttr = `              data-action="${deal.isCheckPrice ? 'view-similar-click' : 'deal-click'}"              data-analytics-id="${this.escapeHTML(deal.externalProductId || deal.id || '')}"              data-product-name="${this.escapeHTML(deal.title)}"              data-merchant-name="${this.escapeHTML(deal.merchant)}"              data-price="${deal.rawPrice || ''}"              data-previous-price="${deal.rawMsrp || ''}"              data-original-link="${this.escapeHTML(originalLink)}"              data-revenue-id="${revenueId}"              data-index="${index}"              data-total="${displayDeals.length}"              data-in-stock="${deal.inStock !== false}"              data-currency="${this.escapeHTML(isoCurrencyCode)}"              data-model-id="${this.escapeHTML(deal.modelId || '')}"              data-product-key="${this.escapeHTML(deal.productKey || '')}"              data-merchant-id="${this.escapeHTML(deal.merchantId || '')}"            `;                        let priceGroupHtml = '';            let isSavingsSquadMode = this.getViewMode() === 'savings_squad';            let ctaText = 'View Deal';            let formattedPrice = '';            let msrpHtml = '';                        if (deal.isCheckPrice) {              ctaText = isSavingsSquadMode ? 'View Deal' : 'Check Price';              if (isSavingsSquadMode) {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                  ${_div}                `;              } else {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                    \x3Cspan class="tg-df-card-price" style="font-size: 15px; font-weight: 500; font-style: italic;">See price at retailer${_span}                  ${_div}                `;              }            } else {              // Format Price              formattedPrice = escapedPrice.includes(currencySym)                 ? escapedPrice                 : `${currencySym}${escapedPrice}`;                              // Format MSRP              msrpHtml = deal.msrp && deal.rawMsrp > deal.rawPrice                ? `\x3Cspan class="tg-df-card-msrp">${escapedMsrp.includes(currencySym) ? escapedMsrp : currencySym + escapedMsrp}${_span}`                : '';                              priceGroupHtml = `                \x3Cdiv class="tg-df-card-merchant-wrapper">                  \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                ${_div}                \x3Cdiv class="tg-df-card-price-group">                  ${isSavingsSquadMode ? '' : `                  \x3Cspan class="tg-df-card-price">${formattedPrice}${_span}                  ${msrpHtml}                  `}                ${_div}              `;            }                        const discountBadgeHtml = deal.savingLabel && !deal.isCheckPrice              ? `\x3Cspan class="tg-df-card-discount-badge">${this.escapeHTML(deal.savingLabel)}${_span}`              : '';                          // HACK for CMS            const _button = '<' + '/button>';            const _svg = '<' + '/svg>';            const _path = '<' + '/path>';            const _rect = '<' + '/rect>';            const _circle = '<' + '/circle>';            const _polyline = '<' + '/polyline>';            const _line = '<' + '/line>';                        let badgesHtml = '';            const primeBadge = deal.isPrime ? `              \x3Cspan class="tg-df-tag tg-df-tag-prime">                \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="currentColor">                  \x3Cpath d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z">${_path}                ${_svg} Prime              ${_span}            ` : '';                        const couponsBadge = deal.merchant && deal.merchant.toLowerCase().includes('amazon') ? '' : `              \x3Cdiv class="tg-df-coupon-wrapper" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:inline-flex; align-items:center;">                \x3Cdiv class="tg-df-coupon-spinner">${_div}                \x3Cbutton type="button" class="tg-df-tag tg-df-tag-coupons" data-action="coupons-click" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:none;">                  \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                    \x3Cpath d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z">${_path}                    \x3Cline x1="7" y1="7" x2="7.01" y2="7">${_line}                  ${_svg} Coupons                ${_button}              ${_div}            `;                        // Note: We always add coupons badge if there's a chance, but to allow 3-line titles we check wrapper display state            badgesHtml = `              \x3Cdiv class="tg-df-card-badges">                ${primeBadge}                ${couponsBadge}              ${_div}            `;            const _linearGradient = '<' + '/linearGradient>';            const _polygon = '<' + '/polygon>';            const _stop = '<' + '/stop>';            const _defs = '<' + '/defs>';                        let starHtml = '';            if (deal.starRating) {              let rating = deal.starRating;                            if (rating > 0) {                const fullStars = Math.floor(rating);                const halfStar = (rating - fullStars) >= 0.5 ? 1 : 0;                const emptyStars = Math.max(0, 5 - fullStars - halfStar);                const blue = '#1f69ff'; // Tom's guide brand color from VIEW DEAL button                const gray = '#cbd5e1';                                const starSvgFull = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="${blue}" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                const gradId = 'half_grad_' + Math.floor(Math.random()*1000000);                const starSvgHalf = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cdefs>\x3ClinearGradient id="${gradId}" x1="0" x2="1" y1="0" y2="0">\x3Cstop offset="50%" stop-color="${blue}">${_stop}\x3Cstop offset="50%" stop-color="transparent">${_stop}${_linearGradient}${_defs}                  \x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26" fill="url(#${gradId})">${_polygon}${_svg}`;                                  const starSvgEmpty = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="${gray}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                let stars = [];                for (let i=0; i<fullStars; i++) stars.push(starSvgFull);                if (halfStar) stars.push(starSvgHalf);                for (let i=0; i<emptyStars; i++) stars.push(starSvgEmpty);                                starHtml = `\x3Cdiv class="tg-df-card-stars" style="display:flex;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--tg-df-text-muted);">                  \x3Cspan style="margin-right:6px;">Tom's Guide:${_span}                  \x3Cdiv style="display:flex;gap:2px;">                    ${stars.join('')}                  ${_div}                ${_div}`;              }            }            let htmlOutput = '';            if (isSavingsSquadMode) {              htmlOutput += `              \x3Cdiv class="hawk-deal-widget-container tg-df-mobile-only" data-collapsible="true">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''} style="margin-bottom: 10px;">` : ''}                \x3Cdiv class="hawk-deal-widget-wrap">                  \x3Cdiv class="hawk-deal-widget-image-container">                    \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" rel="sponsored noopener" target="_blank" class="hawk-affiliate-link-deal-widget" ${dataAttr}>                      \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="hawk-lazy-image-deal-widget" loading="lazy" width="140" height="160" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                    ${_a}                  ${_div}                  \x3Cdiv class="hawk-deal-widget-text-cta-container">                    \x3Cdiv class="hawk-deal-widget-text-body-container">                      \x3Cdiv class="hawk-deal-widget-text-body-main">                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          ${deal.isCheckPrice ? `                            \x3Cspan class="hawk-deal-widget-title-product-title">${this.escapeHTML(deal.title)}${_span}                          ` : `                            \x3Cspan class="hawk-deal-widget-title-product-title">${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_span}                          `}                        ${_a}                        ${!deal.isCheckPrice && deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan class="hawk-deal-widget-title-was-price">was ${currencySym}${escapedMsrp}${_span}                          ${_a}                        ` : ''}                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          \x3Cspan class="hawk-deal-widget-title-retailer-price">                            ${!deal.isCheckPrice ? `                              \x3Cspan class="hawk-deal-widget-title-price">now ${formattedPrice}${_span}                              \x3Cspan class="hawk-deal-widget-title-retailer"> at ${this.escapeHTML(deal.merchant)}${_span}                            ` : `                              \x3Cspan class="hawk-deal-widget-title-price">See price at ${this.escapeHTML(deal.merchant)}${_span}                            `}                          ${_span}                        ${_a}                        ${deal.description ? `\x3Cdiv class="hawk-deal-widget-text-body-description">\x3Cp>${this.escapeHTML(deal.description)}${_p}${_div}` : ''}                      ${_div}                    ${_div}                    \x3Cdiv class="hawk-deal-widget-footer">                      \x3Cdiv class="hawk-deal-widget-button-wrapper">                        \x3Cdiv class="hawk-deal-widget-preferred-partner-wrapper">                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-deal-button" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan>${deal.isCheckPrice ? 'Check Price' : 'View Deal'}${_span}                          ${_a}                        ${_div}                      ${_div}                    ${_div}                  ${_div}                ${_div}              ${_div}              `;            }            htmlOutput += `              \x3Cdiv class="tg-df-card ${isSavingsSquadMode ? 'tg-df-desktop-only' : ''}">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''}>` : ''}                \x3Cdiv class="tg-df-card-image-box">                  ${discountBadgeHtml}                  \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">                    \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="tg-df-card-image" loading="lazy" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                  ${_a}                ${_div}                \x3Cdiv class="tg-df-card-body">                  ${starHtml}                  ${badgesHtml}                  \x3Ch3 class="tg-df-card-title tg-df-custom-savings-squad-title" title="${this.escapeHTML(deal.title)}">                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" disable-tracking="true" target="_blank" rel="noopener nofollow" style="text-decoration: none; color: inherit;">                      ${isSavingsSquadMode                         ? (deal.isCheckPrice                             ? (deal.title && deal.title.includes(':')                                 ? `\x3Cstrong>${this.escapeHTML(deal.title.substring(0, deal.title.indexOf(':') + 1))}${_strong}\x3Cspan style="color: #1f69ff; font-weight: normal;">${this.escapeHTML(deal.title.substring(deal.title.indexOf(':') + 1))}${_span}`                                : this.escapeHTML(deal.title)                              )                             : `\x3Cstrong>${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_strong} ${deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `\x3Cspan style="color: #d0021b; text-decoration: line-through; font-weight: normal; margin-right: 4px;">was ${currencySym}${escapedMsrp}${_span} ` : ''}\x3Cspan style="color: #1f69ff; font-weight: normal;">now ${formattedPrice} at ${this.escapeHTML(deal.merchant)}${_span}`                          )                        : this.escapeHTML(deal.title)                      }                    ${_a}                  ${_h3}                  ${deal.description ? `\x3Cp style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 12px; line-height: 1.4;">${this.escapeHTML(deal.description)}${_p}` : ''}                  \x3Cdiv class="tg-df-card-footer">                    ${priceGroupHtml}                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" class="tg-df-card-cta ${isSavingsSquadMode ? 'tg-df-cta-savings-squad' : ''}" style="text-decoration: none;">${ctaText}${_a}                  ${_div}                ${_div}              ${_div}            `;                        return htmlOutput;            } catch (e) {               console.log("Error rendering deal in map for index", index, typeof deal === 'object' ? JSON.stringify(deal) : deal, "MSG:", e.message);               return '';            }          }).join('');                    if (displayDeals.length > this.displayLimit || ((this.getViewMode() === 'carousel' || this.getViewMode() === 'auto') && displayDeals.length > 0 && displayDeals.length % ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12) === 0)) {            if (this.getViewMode() === 'carousel') {               dealsHtml += `                 \x3Cbutton type="button" class="tg-df-load-more-card tg-df-load-more">                   \x3Csvg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 8px;">\x3Cpath d="M5 12h14">\x3C/path>\x3Cpath d="m12 5 7 7-7 7">\x3C/path>\x3C/svg>                   Load More                 ${_button}               `;            } else {               dealsHtml += `                 \x3Cdiv style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1;">                   \x3Cbutton type="button" class="tg-df-tag-outline tg-df-load-more" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer; display: flex; align-items: center;">Load More${_button}                 ${_div}               `;            }          }                    this.grid.innerHTML = dealsHtml;          // Inject JSON-LD          try {            let targetNode = this.hostContainer || document.head;            let jsonLdScript = targetNode.querySelector('#tg-df-json-ld-' + this.widgetId);            if (!jsonLdScript) {                jsonLdScript = document.createElement('script');                jsonLdScript.type = 'application/ld+json';                jsonLdScript.id = 'tg-df-json-ld-' + this.widgetId;                targetNode.appendChild(jsonLdScript);            }            const jsonLdData = {              "@context": "https://schema.org",              "@type": "ItemList",              "itemListElement": displayDeals.slice(0, this.displayLimit).map((deal, index) => {                 let isoCurrency = "USD";                 if (deal.currency === '£') isoCurrency = "GBP";                 else if (deal.currency === '€') isoCurrency = "EUR";                 else if (deal.currency === 'A$') isoCurrency = "AUD";                 else if (deal.currency === 'CA$') isoCurrency = "CAD";                 const areaCode = typeof this.getAreaCode === 'function' ? this.getAreaCode() : 'US';                 const revenueId = typeof generateRevenueId === 'function' ? generateRevenueId(deal.url, deal.title, deal.merchant, null) : '';                 const rewrittenLink = typeof rewriteAffiliateLink === 'function' ? rewriteAffiliateLink(deal.url, areaCode, revenueId) : deal.url;                 return {                   "@type": "ListItem",                   "position": index + 1,                   "item": {                     "@type": "Product",                     "name": deal.title,                     "image": deal.image || "",                     "description": deal.description || "",                     "brand": {                       "@type": "Brand",                       "name": deal.brand || ""                     },                     "offers": {                       "@type": "Offer",                       "priceCurrency": isoCurrency,                       "price": deal.rawPrice || 0,                       "url": rewrittenLink,                       "seller": {                         "@type": "Organization",                         "name": deal.merchant || ""                       }                     }                   }                 };              }).filter(item => item.item.name)            };            jsonLdScript.textContent = JSON.stringify(jsonLdData);          } catch(e) { console.warn("JSON-LD generation failed", e); }                    let gridWrapper = this.grid.parentElement;          if (gridWrapper && gridWrapper.classList.contains('tg-df-grid-wrapper')) {             let rightChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-right');             let leftChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-left');             if (this.getViewMode() === 'carousel') {                 // The observer set up in setupScrollListeners handles visibility.                 if (rightChevron) rightChevron.style.display = 'flex';                 if (leftChevron) leftChevron.style.display = 'none'; // reset correctly             } else {                 if (rightChevron) rightChevron.style.display = 'none';                 if (leftChevron) leftChevron.style.display = 'none';             }          }                    const loadMoreBtn = this.grid.querySelector('.tg-df-load-more');          if (loadMoreBtn) {            loadMoreBtn.addEventListener('click', async () => {              if (typeof trackElementInteraction === 'function') {                trackElementInteraction({ id: 'load-more', name: 'Load more', label: 'Load More Results' });              }              if (displayDeals.length <= this.displayLimit) {                 loadMoreBtn.innerHTML = `                  <svg class="tg-df-spinner" style="width: 16px; height: 16px; display: inline-block; vertical-align: middle; margin-right: 8px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83"/></svg>                  Loading...                 `;                 loadMoreBtn.disabled = true;                 await this.fetchDeals(this.currentQuery, true);              } else {                 this.displayLimit += ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12);                 this.render();              }            });          }                      this.bindCouponButtons();            this.checkAndUpdateCoupons();                        // Allow hawklinks.js to discover and rewrite our widget links             // by appending the .article-body class and manually triggering processArticle.            let container = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (container && !container.classList.contains('article-body')) {               container.classList.add('article-body');            }            setTimeout(() => {               if (this.grid && !this.grid.classList.contains('article-body')) this.grid.classList.add('article-body');            if (!this.processArticleFired) {                  this.processArticleFired = true;                  document.dispatchEvent(new CustomEvent('processArticle', { detail: { element: this.root } }));               }            }, 50);          } catch(e) {            console.warn("Widget render error", e);          }        }                async checkAndUpdateCoupons() {          const wrappers = Array.from(this.root.querySelectorAll('.tg-df-coupon-wrapper'));          if (wrappers.length === 0) return;                    const merchants = [...new Set(wrappers.map(w => w.getAttribute('data-merchant')).filter(Boolean))];          if (merchants.length === 0) return;          const couponResultsMap = await this.checkMerchantsCouponsBulk(merchants);                    for (const merchant of merchants) {            const hasCoupons = !!couponResultsMap[merchant];            const merchantWrappers = wrappers.filter(w => w.getAttribute('data-merchant') === merchant);            merchantWrappers.forEach(wrapper => {              const spinner = wrapper.querySelector('.tg-df-coupon-spinner');              const btn = wrapper.querySelector('.tg-df-tag-coupons');                            if (spinner) spinner.style.display = 'none';                            if (hasCoupons && btn) {                btn.style.display = 'inline-flex';              } else if (!hasCoupons) {                wrapper.style.display = 'none';              }            });          }        }        updateFloatingCopyBar() {          if (!this.editorBar || !this.editorSelectedCount) return;          if (this.editorMode && this.selectedDeals.size > 0) {            this.editorBar.style.display = 'flex';            this.editorSelectedCount.innerText = this.selectedDeals.size;          } else {            this.editorBar.style.display = 'none';          }        }        async copySelectedDealsToCMS() {           function htmlToSlate(htmlString) {              if (!htmlString) return [{ type: 'paragraph', children: [{ text: '' }] }];              let doc;              if (typeof window !== 'undefined' && window.DOMParser) {                 doc = new DOMParser().parseFromString(htmlString, 'text/html');              } else {                 doc = document.implementation.createHTMLDocument('');                 doc.body.innerHTML = htmlString;              }                            function parseNode(node, marks = {}) {                  if (node.nodeType === 3) {                      const text = node.textContent;                      if (!text) return null;                      return { text: text, ...marks };                  }                  if (node.nodeType === 1) {                      const tagName = node.tagName.toLowerCase();                      if (tagName === 'br') {                          return { type: 'line-break', children: [{ text: '' }] };                      }                      if (tagName === 'p') {                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return { type: 'paragraph', children };                      }                      if (tagName === 'strong' || tagName === 'b') {                          const newMarks = { ...marks, bold: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'em' || tagName === 'i') {                          const newMarks = { ...marks, italic: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'a') {                          const href = node.getAttribute('href') || '';                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return {                              type: 'link',                              url: href,                              isNoFollow: (node.getAttribute('rel') || '').includes('nofollow'),                              isSponsored: (node.getAttribute('rel') || '').includes('sponsored'),                              isOpenNewTab: node.getAttribute('target') === '_blank',                              isPreventDataRewrite: false,                              children: children                          };                      }                      return Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                  }                  return null;              }                            let blocksArray = [];              let currentParagraphChildren = [];              function flushParagraph() {                  if (currentParagraphChildren.length > 0) {                      blocksArray.push({ type: 'paragraph', children: currentParagraphChildren });                      currentParagraphChildren = [];                  }              }              Array.from(doc.body.childNodes).forEach(node => {                  const parsed = parseNode(node, {});                  const parsedItems = Array.isArray(parsed) ? parsed : (parsed ? [parsed] : []);                  parsedItems.forEach(item => {                      if (item.type === 'paragraph') {                          flushParagraph();                          blocksArray.push(item);                      } else {                          currentParagraphChildren.push(item);                      }                  });              });              flushParagraph();              if (blocksArray.length === 0) {                  blocksArray = [{ type: 'paragraph', children: [{ text: '' }] }];              }              return blocksArray;           }           const blocks = [];                      this.editorCopyBtn.innerHTML = '\x3Cspan class="tg-df-coupon-spinner" style="display:inline-block; margin-right:8px; border-top-color:#fff;">' + '<' + '/span> Copying...';           for (const deal of Array.from(this.selectedDeals.values())) {              const url = deal.url;              const merchant = deal.merchant;              const title = deal.title;              const image = deal.image;              const currentPrice = deal.currency + deal.rawPrice;              const wasPrice = deal.hasWasPrice && deal.rawMsrp > deal.rawPrice ? deal.currency + deal.rawMsrp : '';                            let couponsChildren = [];              try {                  const area = this.getAreaCode();                  const apiUrl = new URL('https://search-api.fie.future.net.uk/widget.php');                  apiUrl.searchParams.append('model_name', 'Everything');                  apiUrl.searchParams.append('language', 'en-GB');                  apiUrl.searchParams.append('area', area);                  apiUrl.searchParams.append('combine_product_types', '1');                  apiUrl.searchParams.append('filter_merchant_name', merchant);                  apiUrl.searchParams.append('all_filters', 'false');                  apiUrl.searchParams.append('exclude_unlabelled', 'false');                  apiUrl.searchParams.append('include_specs', 'false');                  apiUrl.searchParams.append('sort', 'voucher');                  apiUrl.searchParams.append('distinct_merchants', 'natural');                  apiUrl.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');                  apiUrl.searchParams.append('rows', '3');                  apiUrl.searchParams.append('origin', 'widgets-clientside');                                    let res; try { res = await fetch(apiUrl.toString()); } catch (e) { return; }                  if (res.ok) {                      const data = await res.json();                      let offers = [];                      if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {                        offers = data.widget.data.offers;                      } else if (data && data.data && Array.isArray(data.data.offers)) {                        offers = data.data.offers;                      }                                            if (offers.length > 0) {                          couponsChildren.push({ text: "Also check out these coupons: ", bold: true });                          offers.slice(0, 3).forEach((offer, idx) => {                              const actualOffer = offer.offer || offer;                              const offerName = actualOffer.name || actualOffer.title || offer.model_name || offer.title || offer.name || 'Coupon';                              const linkUrl = actualOffer.link || actualOffer.url || actualOffer.offer_link || '#';                              couponsChildren.push({ type: "line-break", children: [{ text: "" }] });                              couponsChildren.push({ text: "🎟️ " });                              couponsChildren.push({                                  type: "link",                                  url: linkUrl,                                  isNoFollow: true,                                  isSponsored: false,                                  isOpenNewTab: true,                                  isPreventDataRewrite: false,                                  children: [{ text: offerName, bold: true }]                              });                          });                      }                  }              } catch (err) {                  console.warn('Failed to fetch coupons for', merchant, err);              }              let descriptionValue = [];              if (deal.text) {                 descriptionValue = htmlToSlate(deal.text);              } else {                 const dealDescriptions = [                   `Don't miss out on this fantastic deal for the ${title}. It is currently available at ${merchant} for a highly competitive price.`,                   `We've spotted an excellent price drop on the ${title}. Grab it now at ${merchant} before it's gone.`,                   `The ${title} is currently seeing a generous discount over at ${merchant}. This is a perfect time to buy if you've been holding out.`,                   `If you're in the market for the ${title}, ${merchant} has just the deal for you.`,                   `Score the ${title} for less at ${merchant} right now. This is a rare chance to save big.`,                   `Upgrade your setup with the ${title}, now available at a stellar price via ${merchant}.`                 ];                 const randomDescription = dealDescriptions[Math.floor(Math.random() * dealDescriptions.length)];                 descriptionValue = [                    { type: "paragraph", children: [{ text: randomDescription }] }                 ];              }                            if (couponsChildren.length > 0) {                 let lastBlock = descriptionValue[descriptionValue.length - 1];                 if (lastBlock && lastBlock.type === 'paragraph') {                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ text: "Also check out these coupons: ", bold: true });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children = lastBlock.children.concat(couponsChildren);                 } else {                     descriptionValue.push({                         type: "paragraph",                         children: [                             { type: "line-break", children: [{ text: "" }] },                             { type: "line-break", children: [{ text: "" }] },                             { text: "Also check out these coupons: ", bold: true },                             { type: "line-break", children: [{ text: "" }] },                             ...couponsChildren                         ]                     });                 }              }              function normalizeCurrencyToISO(symbol) {                const map = { '£': 'GBP', '$': 'USD', 'A$': 'AUD', 'CA$': 'CAD', '€': 'EUR' };                return map[symbol] || symbol;              }              const isoCurrency = normalizeCurrencyToISO(deal.currency);              blocks.push({                 id: (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'cms-' + Date.now() + Math.random(),                 blockTypeName: "deal",                 excludeFrom: [],                 collapsible: false,                 props: {                    description: {                       value: descriptionValue,                       touched: false,                       validationMessage: ""                    },                    image: {                       value: {                          credit: [{ type: "paragraph", children: [{ text: merchant }] }],                          dateCreated: Date.now(),                          dateModified: Date.now(),                          distribution: [],                          fileSize: 0,                          height: 1000,                          id: deal.id,                          imageRights: "",                          src: image,                          name: title + ".jpg",                          tags: [],                          width: 1000                       },                       touched: false,                       validationMessage: ""                    },                    showDealButton: { value: true, touched: false, validationMessage: "" },                    isPreferredPartner: { value: false, touched: false, validationMessage: "" },                    linkHref: { value: url, touched: false, validationMessage: "" },                    linkLabel: { value: "", touched: false, validationMessage: "" },                    linkIsNoFollow: { value: true, touched: false, validationMessage: "" },                    linkIsSponsored: { value: false, touched: false, validationMessage: "" },                    linkIsOpenNewWindow: { value: true, touched: false, validationMessage: "" },                    customPromoFlags: { value: [], touched: false, validationMessage: "" },                    showStarDeal: { value: false, touched: false, validationMessage: "" },                    savingType: { value: "none", touched: false, validationMessage: "" },                    starDealPromoFlag: { value: "", touched: false, validationMessage: "" },                    showEditorsChoice: { value: false, touched: false, validationMessage: "" },                    editorsChoiceTitle: { value: "", touched: false, validationMessage: "" },                    hawkPriceCurrency: { value: { value: isoCurrency, label: isoCurrency }, touched: false, validationMessage: "" },                    hawkPrice: { value: deal.hasWasPrice ? String(deal.rawMsrp) : String(deal.rawPrice), touched: false, validationMessage: "" },                    hawkSalePrice: { value: String(deal.rawPrice), touched: false, validationMessage: "" },                    lastCheckedPriceDate: { value: "", touched: false, validationMessage: "" },                    hawkModel: { touched: false, validationMessage: "" },                    productId: { value: "", touched: false, validationMessage: "" },                    voucherId: { value: "", touched: false, validationMessage: "" },                    brand: { value: deal.brand || merchant, touched: false, validationMessage: "" },                    productName: { value: title, touched: false, validationMessage: "" },                    label: { value: "", touched: false, validationMessage: "" },                    retailer: { value: merchant, touched: false, validationMessage: "" },                    priceCheckError: false                 },                 failedFetchError: ""              });           }           const payload = {              type: "articleBuilderPages",              data: blocks           };           const jsonStr = JSON.stringify(payload);                      if (navigator.clipboard && navigator.clipboard.writeText) {              navigator.clipboard.writeText(jsonStr).then(() => {                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              }).catch(err => {                 console.warn('Failed to copy text: ', err);                 alert('Failed to copy deals to clipboard. See console.');              });           } else {              // Fallback              const textArea = document.createElement("textarea");              textArea.value = jsonStr;              document.body.appendChild(textArea);              textArea.focus();              textArea.select();              try {                 document.execCommand('copy');                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              } catch (err) {                 console.warn('Fallback: Oops, unable to copy', err);                 alert('Fallback: Failed to copy deals to clipboard.');              }              document.body.removeChild(textArea);           }        }      }      // Initialize the Widget      if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', () => new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer }));      } else {        new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer });      }    })();  </script></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/tablets/i-ditched-my-ipad-and-kindle-for-this-tablet-with-a-paper-like-display-and-its-up-to-39-percent-off-for-prime-day</link>
                                                                            <description>
                            <![CDATA[ TCL’s NXTPAPER tablets let you instantly switch from full color to black and white for a more eye-friendly reading experience and they’re great for drawing too. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">BRsCF8MBfMYrWFSKVHBeDP</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/e3sgMvTkAqaAnRG9eFJemV-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 24 Jun 2026 22:06:02 +0000</pubDate>                                                                                                                                <updated>Thu, 25 Jun 2026 18:28:16 +0000</updated>
                                                                                                                                            <category><![CDATA[Tablets]]></category>
                                                    <category><![CDATA[E-Readers]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                                                                <author><![CDATA[ anthony.spadafora@futurenet.com (Anthony Spadafora) ]]></author>                    <dc:creator><![CDATA[ Anthony Spadafora ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/z73LEoj7FkUjNG85GcWHtH.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Anthony Spadafora is the managing editor for security and home office furniture at Tom’s Guide where he covers everything from data breaches and malware to password managers and the best way to cover your whole home or business with a strong Wi-Fi signal.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Before joining the team, he spent three years covering cybersecurity and B2B tech for ITProPortal while living in South Korea. After moving back to the US. Anthony joined the TechRadar Pro team where he covered these topics along with VPNs, web hosting, online collaboration software and video conferencing for four years. Anthony also has his ears to the ground and is on the lookout for the next major cyberattack or data breach.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Based in Houston, Texas, Anthony also handles VPN testing for both Tom’s Guide and TechRadar. As someone who has worked from home exclusively since 2018, he has reviewed dozens of standing desks as well as office chairs and has taken a closer look at other essential remote working accessories. As part of these reviews, Anthony frequently builds intricate desk setups which is why he’s such a big advocate for cable management and keeping things organized. When he’s not writing, he can be found tinkering with PCs and game consoles, managing cables and making upgrades to his smart home.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/e3sgMvTkAqaAnRG9eFJemV-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A person holding a TCL NXTPAPER 11 Plus tablet at a table with a Tom&#039;s Guide Savings Squad deals badge]]></media:description>                                                            <media:text><![CDATA[A person holding a TCL NXTPAPER 11 Plus tablet at a table with a Tom&#039;s Guide Savings Squad deals badge]]></media:text>
                                <media:title type="plain"><![CDATA[A person holding a TCL NXTPAPER 11 Plus tablet at a table with a Tom&#039;s Guide Savings Squad deals badge]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/e3sgMvTkAqaAnRG9eFJemV-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I still remember the first time I laid eyes on one of TCL’s NXTPAPER tablets at a mall in Taiwan. What caught me off guard was that despite the bright overhead lighting, its screen was completely glare free. However, it wasn’t until I pressed the NXTPAPER button on the side that I realized what made this tablet truly unique.</p><p>Unlike one of the <a href="https://www.tomsguide.com/best-picks/best-ipad">best iPads</a>, TCL’s NXPAPER tablets are designed to prevent eye-strain while giving you an improved reading experience. With the push of a button on the side, you can switch between three viewing modes: Regular Mode, Color Paper Mode and Ink Paper Mode. <br><br>With Ink Paper Mode enabled, the device transforms from a standard Android tablet into a black and white slate with a reading experience on par with one of the <a href="https://www.tomsguide.com/us/best-e-readers,review-2766.html">best Kindles</a>. This also extends the tablet’s battery so you can keep reading even longer.</p><div class="product"><a data-dimension112="f1d5710b-c91d-4f39-8cb8-a2e8af8170c7" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$223" href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1376px;"><p class="vanilla-image-block" style="padding-top:86.70%;"><img id="2rmQkEzhXCeVzcYeLEFNn9" name="NXTPAPER 11 Plus" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/2rmQkEzhXCeVzcYeLEFNn9.jpg" mos="" align="middle" fullscreen="" width="1376" height="1193" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow" data-dimension112="f1d5710b-c91d-4f39-8cb8-a2e8af8170c7" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$223">NXTPAPER 11 Plus: was $369 now $223</a></strong><br>This 11-inch tablet feels snappier thanks to its upgraded processor, 120 Hz display and 8GB of RAM. It comes with 256GB of storage and an 8,000 mAh battery which you can quickly recharge thanks to 33W fast charging. You also get a stylus and case in the box too. If you have the budget, I’d recommend spending a bit more on this tablet over the NXTPAPER 11 Gen 2 for a smoother overall experience.<a class="view-deal button" href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow" data-dimension112="f1d5710b-c91d-4f39-8cb8-a2e8af8170c7" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$223">View Deal</a></p></div><p>I’ve been using both the <a href="https://www.tomsguide.com/computing/tablets/i-tried-the-tcl-nxtpaper-11-plus-and-this-budget-tablet-is-easily-my-ipad-killer-heres-why">TCL NXTPAPER 11 Gen 2</a> and the much larger <a href="https://www.tomsguide.com/computing/android-tablets/i-thought-smaller-was-better-until-i-tried-a-massive-14-inch-tablet-that-feels-like-a-clipboard">TCL NXTPAPER 14</a> since the beginning of the year. While I love them both, the 11-inch one is great for slipping in a bag while the 14-inch one is perfect when you want a bigger screen at home. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="cbwTk6SN3SzVTCRFYKXCP6" name="TCL NXTPAPER 11 Plus-5" alt="A person using the included stylus to scroll through stories in Google Discover on the TCL NXTPAPER 11 Plus" src="https://cdn.mos.cms.futurecdn.net/cbwTk6SN3SzVTCRFYKXCP6.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>These tablets aren’t just for reading though, as they also come with a stylus in the box for drawing or taking handwritten notes. Likewise, I’ve heard that many musicians like using the larger NXTPAPER 14 for reading sheet music while they practice.</p><p>Right now, you can save up to 39% on TCL’s NXTPAPER tablets thanks to <a href="https://www.tomsguide.com/news/best-prime-day-deals-and-sales">Prime Day</a>. If you’ve been looking for a more budget-friendly iPad alternative or don’t want to be bothered keeping a separate e-reader charged, they’re definitely worth checking out. And at this price, there’s never been a better time to give NXTPAPER a try for yourself.</p><h3 class="article-body__section" id="section-quick-links"><span>Quick Links</span></h3><ul><li><strong>TCL NXTPAPER 11 Gen 2: </strong><a href="https://www.amazon.com/gp/aw/d/B0H2HFT4KP" target="_blank" rel="nofollow"><strong>was $249 now $169 @ Amazon</strong></a><strong></strong></li><li><strong>TCL NXTPAPER 11 Plus: </strong><a href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow"><strong>was $369 now $223 @ Amazon</strong></a><strong></strong></li><li><strong>TCL NXTPAPER 14: </strong><a href="https://www.amazon.com/gp/aw/d/B0FLP554CZ" target="_blank" rel="nofollow"><strong>was $459 now $312 @ Amazon</strong></a><strong></strong></li><li><strong>TCL Note A1: </strong><a href="https://www.amazon.com/TCL-NXTPAPER-Notebook-Paper-Like-Creativity/dp/B0H5K8NBZS" target="_blank" rel="nofollow"><strong>was $599 now $449 @ Amazon</strong></a></li></ul><h3 class="article-body__section" id="section-prime-day-nxtpaper-tablet-deals"><span>Prime Day NXTPAPER Tablet Deals</span></h3><div class="product"><a data-dimension112="8eb686a9-7da8-43ed-896c-170f4094682e" data-action="Deal Block" data-label="NXTPAPER 11 Gen 2" data-dimension48="NXTPAPER 11 Gen 2" data-dimension25="$169" href="https://www.amazon.com/gp/aw/d/B0H2HFT4KP" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1417px;"><p class="vanilla-image-block" style="padding-top:83.63%;"><img id="suZwzwtqgKWXxsHid5XdRM" name="NXTPAPER 11 Gen 2" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/suZwzwtqgKWXxsHid5XdRM.jpg" mos="" align="middle" fullscreen="" width="1417" height="1185" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/gp/aw/d/B0H2HFT4KP" target="_blank" rel="nofollow" data-dimension112="8eb686a9-7da8-43ed-896c-170f4094682e" data-action="Deal Block" data-label="NXTPAPER 11 Gen 2" data-dimension48="NXTPAPER 11 Gen 2" data-dimension25="$169">NXTPAPER 11 Gen 2: was $249 now $169</a></strong><br>This 11-inch tablet comes with 6GB of RAM, 64GB of storage, an 8,000 mAh battery and runs Android 15. It features TCL’s NXTPAPER 4.0 tech so you can switch from full color to color paper or black and white. You also get a stylus with over 4,000 pressure levels which is great for drawing and note taking. Likewise, you don’t have to worry about picking up a case as one comes in the box. You can even expand its storage further with a microSD card.<a class="view-deal button" href="https://www.amazon.com/gp/aw/d/B0H2HFT4KP" target="_blank" rel="nofollow" data-dimension112="8eb686a9-7da8-43ed-896c-170f4094682e" data-action="Deal Block" data-label="NXTPAPER 11 Gen 2" data-dimension48="NXTPAPER 11 Gen 2" data-dimension25="$169">View Deal</a></p></div><div class="product"><a data-dimension112="ecbe449c-2acd-4ba4-957d-657dda09ecab" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$223" href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1376px;"><p class="vanilla-image-block" style="padding-top:86.70%;"><img id="2rmQkEzhXCeVzcYeLEFNn9" name="NXTPAPER 11 Plus" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/2rmQkEzhXCeVzcYeLEFNn9.jpg" mos="" align="middle" fullscreen="" width="1376" height="1193" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow" data-dimension112="ecbe449c-2acd-4ba4-957d-657dda09ecab" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$223">NXTPAPER 11 Plus: was $369 now $223</a></strong><br>This 11-inch tablet feels snappier thanks to its upgraded processor, 120 Hz display and 8GB of RAM. It comes with 256GB of storage and an 8,000 mAh battery which you can quickly recharge thanks to 33W fast charging. You also get a stylus and case in the box too. If you have the budget, I’d recommend spending a bit more on this tablet over the NXTPAPER 11 Gen 2 for a smoother overall experience.<a class="view-deal button" href="https://www.amazon.com/gp/aw/d/B0GVRS9G4P" target="_blank" rel="nofollow" data-dimension112="ecbe449c-2acd-4ba4-957d-657dda09ecab" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$223">View Deal</a></p></div><div class="product"><a data-dimension112="022d188b-47fd-4eb3-9359-aae22964188a" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$312" href="https://www.amazon.com/gp/aw/d/B0FLP554CZ" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1479px;"><p class="vanilla-image-block" style="padding-top:78.23%;"><img id="RieyhMD4q8Qys2uDrwLwWP" name="NXTPAPER 14" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/RieyhMD4q8Qys2uDrwLwWP.jpg" mos="" align="middle" fullscreen="" width="1479" height="1157" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/gp/aw/d/B0FLP554CZ" target="_blank" rel="nofollow" data-dimension112="022d188b-47fd-4eb3-9359-aae22964188a" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$312">NXTPAPER 14: was $459 now $312</a></strong><br>This tablet comes equipped with a massive 14.3-inch, 2.4k display that gives you plenty of screen space for both reading and drawing. It comes equipped with TCL’s NXTPAPER 3.0 tech but I found it works just as well as the newer version for the most part. You get 256GB of storage, 8GB of RAM and the best part, an equally massive 10,000 mAh battery which also features fast and reverse charging. It too comes with a stylus and a case included.<a class="view-deal button" href="https://www.amazon.com/gp/aw/d/B0FLP554CZ" target="_blank" rel="nofollow" data-dimension112="022d188b-47fd-4eb3-9359-aae22964188a" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$312">View Deal</a></p></div><div class="product"><a data-dimension112="fcf75034-3555-46e5-ab5d-53ad7835074c" data-action="Deal Block" data-label="Note A1" data-dimension48="Note A1" data-dimension25="$449" href="https://www.amazon.com/TCL-NXTPAPER-Notebook-Paper-Like-Creativity/dp/B0H5K8NBZS" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:71.80%;"><img id="jfCsVsX5bNYT4AHmsneJQc" name="Note A1" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/jfCsVsX5bNYT4AHmsneJQc.jpg" mos="" align="middle" fullscreen="" width="1500" height="1077" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/TCL-NXTPAPER-Notebook-Paper-Like-Creativity/dp/B0H5K8NBZS" target="_blank" rel="nofollow" data-dimension112="fcf75034-3555-46e5-ab5d-53ad7835074c" data-action="Deal Block" data-label="Note A1" data-dimension48="Note A1" data-dimension25="$449">Note A1: was $599 now $449</a></strong><br>This productivity-focused device is a bit different than the rest as it’s more like a digital notebook than a traditional tablet. It features an 11.5-inch, 2.2K display with a 120 Hz refresh rate. Given it’s made for drawing and taking notes, you get TCL’s T-Pen Pro with 8,192 pressure sensitivity as opposed to the standard styluses you get with the rest of its NXTPAPER tablets. To keep all your notes and ideas organized, it comes pre-loaded with AI apps which can turn your scribbling into clean, editable text. <a class="view-deal button" href="https://www.amazon.com/TCL-NXTPAPER-Notebook-Paper-Like-Creativity/dp/B0H5K8NBZS" target="_blank" rel="nofollow" data-dimension112="fcf75034-3555-46e5-ab5d-53ad7835074c" data-action="Deal Block" data-label="Note A1" data-dimension48="Note A1" data-dimension25="$449">View Deal</a></p></div><div class="vizualizer-embed"><div class="tg-df-widget-host" data-widget-config="?search=tablets&brands=Amazon%2CApple%2CGoogle%2CLenovo%2CSamsung%2CTCL&price=165_&min_discount_ratio=0.95&sort=best_match&retailer=Amazon&widget_title=Top+Deals+Handpicked+by+Our+Editors&widget_subtitle=Discover+the+best+discounts+currently+available%2C+curated+daily+by+the+Tom%27s+Guide+Savings+Squad.&bg_color=transparent" data-vizualizer-embed="true"></div>    <script>    /**     * Tom's Guide Deals Finder - Vanilla JS Encapsulated Engine     */    (function() {      // --- Freyr Analytics Adapter ---      function initAnalytics() {        window.dataLayer = window.dataLayer || [];        window.googletag = window.googletag || {};        window.googletag.cmd = window.googletag.cmd || [];        window.hawk = window.hawk || { analytics: { freyr: [] } };        window.hawk.analytics = window.hawk.analytics || { freyr: [] };        window.hawk.analytics.freyr = window.hawk.analytics.freyr || [];        window.freyr = window.freyr || { cmd: [] };        const scriptSrc = 'https://freyr.futurecdn.net/freyr.js';        const hostname = typeof window !== 'undefined' ? window.location.hostname : '';        const isTestEnv = typeof window.navigator !== 'undefined' && (window.navigator.webdriver || window.navigator.userAgent.includes('Headless'));        const shouldSendRealAnalytics = !isTestEnv && hostname && hostname !== 'localhost' && hostname !== '127.0.0.1' && !hostname.includes('run.app');        if (shouldSendRealAnalytics && !document.querySelector(`script[src="${scriptSrc}"]`)) {          const script = document.createElement('script');          script.src = scriptSrc;          script.async = true;          document.head.appendChild(script);        }      }      function storeEventForDebug(name, data) {        if (!window.hawk || !window.hawk.analytics || !window.hawk.analytics.freyr) return;        window.hawk.analytics.freyr.push({ name, data });        try {          if (typeof window !== 'undefined' && window.localStorage) {            window.localStorage.setItem("hawk", JSON.stringify(window.hawk));          }        } catch (e) {          // Ignore storage issues        }        try {          window.dispatchEvent(new CustomEvent("hawk-analytics-update"));        } catch (e) {}      }      function sendToFreyr(eventName, data) {        if (typeof window === 'undefined') return;        window.freyr = window.freyr || { cmd: [] };        window.freyr.cmd.push(() => {          if (window.freyr && window.freyr.pushAndUpdate) {            window.freyr.pushAndUpdate(eventName, data);          }        });      }      function sendEvent(event, skip = false) {        try {          storeEventForDebug(event.name, event.data);          if (!skip) {            sendToFreyr(event.name, event.data);          }        } catch (e) {          // Ensure tracking errors don't surface to the user        }      }      function getCookie(name) {        try {          const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));          return match ? match[2] : null;        } catch (e) {          return null;        }      }      function normalizeCurrency(symbol) {        const map = {          '£': 'GBP',          '$': 'USD',          'A$': 'AUD',          'CA$': 'CAD',          '€': 'EUR'        };        return map[symbol] || symbol;      }      function trackElementInteraction(props) {        sendEvent({          name: 'elementInteraction',          data: {            element: {              action: props.action || "click",              id: props.id || undefined,              class: props.class || undefined,              name: props.name || undefined,              text: props.text || undefined,              label: props.label || undefined,              container: props.container || undefined,              url: props.url || undefined,              articleId: props.articleId || undefined            }          }        });      }      function generateRevenueId(url, productName, merchantName, modelId) {        const str = `${window.location.href}|${productName}|${merchantName}|${modelId || ''}|${new Date().toDateString()}|tomsguide`;        let hash = 0;        for (let i = 0; i < str.length; i++) {          const char = str.charCodeAt(i);          hash = ((hash << 5) - hash) + char;          hash = hash & hash;        }        let numericStr = Math.abs(hash).toString();        while (numericStr.length < 19) {          numericStr += Math.floor(Math.random() * 10).toString();        }        return numericStr.substring(0, 19);      }      function rewriteAffiliateLink(url, territory, revenueId) {        if (!url) return url;        const t = (territory || 'gb').toLowerCase();        return url.replace(/hawk-custom-tracking/g, `tomsguide-${t}-${revenueId}`);      }      function trackHawkEvent(params) {        const { clickType, widgetId, productCategoryName, product, productsArray, zeroBasedProductIndexOrNull, totalDealsOrProducts, areaClicked, merchant, revenueId, isoCurrencyCode, queryName, widgetTypeName } = params;        const data = {          event: "hawkEvent",          category: "Affiliates",          affiliate: {            action: {              type: clickType,              id: widgetId,              event: clickType === "appeared" ? "viewed" : "Click from",              timestamp: Date.now()            },            component: {              flag: "Editor",              product: productCategoryName || "deals",              category: `Signal Deal Finder ${widgetTypeName || "Carousel"} widget`,              type: clickType === "appeared" ? "review" : "signal product",              label: queryName || (product ? (product.name || "") : ""),              index: zeroBasedProductIndexOrNull === null || zeroBasedProductIndexOrNull === undefined ? -1 : zeroBasedProductIndexOrNull,              linkCount: totalDealsOrProducts || 0,              blockLayout: "",              areaClicked: areaClicked || ""            }          },          products: productsArray || (product && merchant ? [            {              product: {                primary: {                  id: product.id || product.matchId || null,                  name: product.name,                  type: "deal",                  price: product.price,                  previousPrice: product.previousPrice || null,                  currency: isoCurrencyCode || "USD",                  preorder: false,                  labels: [],                  link: product.link,                  originalLink: product.originalLink || null,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: null,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: product.globalId || null,                  inStock: product.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: isoCurrencyCode || "USD"                }              },              merchant: {                id: merchant.id || null,                name: merchant.name,                url: merchant.url || null,                network: merchant.network || null              },              model: {                id: product.modelId || null,                brand: product.brand || null,                name: product.name,                parent: product.parent || null              }            }          ] : []),          reviews: [],          _clear: true,          "gtm.uniqueEventId": Date.now() % 10000        };        sendEvent({ name: 'hawkEvent', data });      }      function trackDealClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card" });      }      function trackViewSimilarClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card View Similar" });      }      function trackPriceComparisonClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Price Comparison" });      }      function trackReviewClick(params) {        trackHawkEvent({ ...params, clickType: "review", areaClicked: "Signal Product Card Review Link" });      }      function trackShare(params) {        trackHawkEvent({ ...params, clickType: "share", areaClicked: "Signal Product Card Share" });      }      function trackDealsAppeared(widgetId, deals, revenueId, currency, queryName, widgetTypeName) {         if (!deals || deals.length === 0) return;                  const productsArray = deals.slice(0, 50).map((deal) => {            let voucherPct = null;            let rawPrice = parseFloat(deal.rawPrice) || parseFloat(deal.price) || null;            let rawMsrp = parseFloat(deal.rawMsrp) || parseFloat(deal.msrp) || null;            if (rawMsrp > rawPrice && rawPrice > 0) {              voucherPct = Math.round((1 - (rawPrice / rawMsrp)) * 100);            }            let numId = null;            if (deal.externalProductId && !isNaN(parseInt(deal.externalProductId))) {              numId = parseInt(deal.externalProductId);            } else if (deal.id && !isNaN(parseInt(deal.id))) {              numId = parseInt(deal.id);            } else {              numId = deal.matchId || null;            }            return {              product: {                primary: {                  id: numId,                  name: deal.productName || deal.title || "",                  type: "deal",                  price: rawPrice,                  previousPrice: rawMsrp,                  currency: currency || 'USD',                  preorder: false,                  labels: deal.modelBrand || deal.brand ? [                     { type: "brand", value: deal.modelBrand || deal.brand }                  ] : [],                  link: deal.url,                  originalLink: deal.url,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: voucherPct,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: deal.productKey || null,                  inStock: deal.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: currency || 'USD'                }              },              merchant: {                id: deal.merchantId ? parseInt(deal.merchantId) : null,                name: deal.merchant || "Retailer",                url: deal.merchantUrl || null,                network: deal.merchantNetwork || null              },              model: {                id: deal.modelId ? parseInt(deal.modelId) : null,                brand: deal.modelBrand || deal.brand || null,                name: deal.productName || deal.title || "",                parent: deal.modelParent || null              }            };         });                  trackHawkEvent({             clickType: "appeared",             widgetId: widgetId,             productCategoryName: "deals",             zeroBasedProductIndexOrNull: null,             totalDealsOrProducts: deals.length,             productsArray: productsArray,             queryName: queryName,             widgetTypeName: widgetTypeName         });      }      // 1. Setup Shadow DOM Sandbox      const currentScript = document.currentScript;      let hostContainer = null;      let template = null;            if (currentScript) {        let prev = currentScript.previousElementSibling;        while (prev) {          if (prev.tagName === 'TEMPLATE' && prev.classList.contains('tg-df-widget-template')) {            template = prev;          } else if (prev.tagName === 'DIV' && prev.classList.contains('tg-df-widget-host') && !prev.hasAttribute('data-initialized')) {            hostContainer = prev;            break;          }          prev = prev.previousElementSibling;        }      }            // Fallbacks in case script is deferred      if (!hostContainer) {        const hosts = document.querySelectorAll('.tg-df-widget-host:not([data-initialized])');        if (hosts.length > 0) hostContainer = hosts[0];      }            // Safely embedded template for CMS environments      const rawTemplate = `  \x3Cstyle>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with \`tg-df-\` to prevent CMS style leakage.    */    .tg-df-container {      container-type: inline-size;      container-name: tg-df;      --tg-df-blue: #1F69FF;      --tg-df-blue-hover: #004d8c;      --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: #1F69FF;    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters {      display: flex;      gap: 12px;      justify-content: center;      flex-wrap: wrap;    }    .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-price-input::-webkit-outer-spin-button,    .tg-df-price-input::-webkit-inner-spin-button {      -webkit-appearance: none;      margin: 0;    }    .tg-df-price-input {      -moz-appearance: textfield;    }    .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: 100%;      max-width: 200px;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges {      display: flex;      flex-wrap: wrap;      gap: 6px;      margin-bottom: 8px;    }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);      display: -webkit-box;      -webkit-line-clamp: 2;      -webkit-box-orient: vertical;      overflow: hidden;    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: 100%;      box-sizing: border-box;      background-color: #1f69ff;      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      background-color: #1555cc;    }    .tg-df-container .tg-df-card-cta.tg-df-cta-savings-squad {      background-color: #3c8d0d;    }    .tg-df-card:hover .tg-df-card-cta.tg-df-cta-savings-squad,    .tg-df-card-cta.tg-df-cta-savings-squad:hover {      background-color: #2b6509;    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 0;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-controls {        padding: 0 16px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }            .tg-df-filters {        width: calc(100% + 32px);        margin: 0 -16px;        padding: 0 16px 4px 16px;        display: flex;        justify-content: flex-start;        gap: 8px;        flex-wrap: nowrap;        overflow-x: auto;        -webkit-overflow-scrolling: touch;        scrollbar-width: none;      }      .tg-df-filters::after {        content: "";        display: block;        flex: 0 0 8px;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }            .tg-df-sort-wrapper {        flex: 0 0 max(42%, 130px);        min-width: 0;      }      .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 12px;        -webkit-line-clamp: 3;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        -webkit-line-clamp: 3;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 8px 16px;        font-size: 12px;        flex: 0 0 auto;        text-align: center;        white-space: normal;        line-height: 1.2;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }    .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: #1F69FF;          position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }    .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 16px;      text-align: center;      width: 100%;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }    .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;            scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }        .tg-df-container .tg-df-carousel-scroll-left,    .tg-df-container .tg-df-carousel-scroll-right {      position: absolute;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: #ffffff;      border: 1px solid #e2e8f0;      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);      color: #1F69FF;      cursor: pointer;      transition: all 0.2s;      margin-top: -4px;      z-index: 20;    }    .tg-df-container .tg-df-carousel-scroll-left { left: 8px; }    .tg-df-container .tg-df-carousel-scroll-right { right: 8px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left { left: 0px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right { right: 0px; }    .tg-df-carousel-filters-outer { margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }    @container tg-df (max-width: 599px) { .tg-df-carousel-filters-outer { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; } }        .tg-df-container .tg-df-carousel-scroll-left:hover,    .tg-df-container .tg-df-carousel-scroll-right:hover {      background-color: #f8fafc;      border-color: #cbd5e1;    }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right {      background-color: rgba(255, 255, 255, 0.4);      border: none;      box-shadow: none;      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right { right: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-right { right: 0; }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left:hover,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right:hover {      background-color: rgba(255, 255, 255, 0.6);      border: none;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-carousel-roundels::after {      content: "";      flex: 0 0 32px;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;      transition: font-weight 0.2s;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-label {      font-weight: 700;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }        .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;      display: inline-flex;      align-items: center;      justify-content: center;      min-height: 36px;      box-sizing: border-box;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn:hover {      background: #1e293b;      color: white;      border-color: #1e293b;    }    .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::after {      content: "";      flex: 0 0 32px;    }    .tg-df-grid-wrapper {      position: relative;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card {      flex: 0 0 auto;      width: 100px;      border-radius: 15px;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      border: 2px solid #1e293b;      background: white;      color: #1e293b;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      font-weight: 600;      font-size: 14px;      cursor: pointer;      padding: 16px;      text-align: center;      transition: all 0.2s;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card:hover {      background: #1e293b;      color: white;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      border-radius: 5px;      padding: 8px 10px;      margin-top: 4px;      background-color: #1F69FF;    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.45);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: block; }      .tg-df-container .hawk-deal-widget-image-container { display: block; float: left; margin: 0 16px 8px 0; width: 120px; max-width: 120px; height: auto; align-items: normal; justify-content: normal; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: block; text-align: left; }      .tg-df-container .hawk-deal-widget-footer { display: block; margin-top: 16px; clear: both; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; max-width: none !important; width: 100% !important; margin: 0 !important; }    }        .tg-df-container .hawk-affiliate-link-deal-button {       align-items: center; background-color: #5aaf0b; box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;     }    .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a9109; text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }  \x3C/style>  \x3C!-- Widget Container --\x3E  \x3Cdiv class="tg-df-container" id="signal-deals-finder-root">    \x3C!-- Editor Floating Bar --\x3E    \x3Cdiv class="tg-df-editor-bar" id="tg-df-editor-bar" style="display:none;">      \x3Cdiv class="tg-df-editor-bar-text" style="display: flex; align-items: center;">        \x3Cspan id="tg-df-selected-count">0\x3C/span>\x26nbsp;Deals Selected        \x3Cbutton class="tg-df-editor-clear-btn" id="tg-df-editor-clear" type="button" style="margin-left: 12px; font-size: 13px; color: #9ca3af; background: none; border: none; cursor: pointer; text-decoration: underline;">Clear All\x3C/button>      \x3C/div>      \x3Cbutton class="tg-df-editor-copy-btn" id="tg-df-editor-copy" type="button">        \x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">\x3C/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">\x3C/path>\x3C/svg>        Copy to CMS      \x3C/button>    \x3C/div>    \x3Cdiv class="tg-df-carousel-host" id="tg-df-carousel-host" style="display: none;">      \x3Cdiv class="tg-df-carousel-eyebrow">DEAL FINDER\x3C/div>      \x3Cdiv class="tg-df-carousel-query-title" id="tg-df-carousel-title-label">Best Deals\x3C/div>            \x3Cdiv class="tg-df-carousel-blue-box">        \x3Cdiv class="tg-df-carousel-bg-circle-1" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-2" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-3" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-box-content">          \x3Cdiv class="tg-df-countdown-wrapper" id="tg-df-countdown-wrapper" style="display:none;">            \x3Cdiv class="tg-df-countdown-title" id="tg-df-countdown-title">Prime Day starts in\x3C/div>            \x3Cdiv class="tg-df-countdown-blocks">              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-days">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">DAYS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-hrs">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">HRS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-min">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">MIN\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-sec">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">SEC\x3C/div>\x3C/div>            \x3C/div>          \x3C/div>          \x3Cdiv class="tg-df-carousel-box-eyebrow">DEAL FINDER\x3C/div>          \x3Cdiv class="tg-df-carousel-box-title">Find Deals Fast\x3C/div>          \x3Cdiv class="tg-df-carousel-box-subtitle">The latest deals from the biggest retailers, all in one place\x3C/div>                    \x3Cdiv class="tg-df-carousel-roundels-wrapper">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-roundels">            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>          \x3C/div>          \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-carousel-filters-outer" style="position: relative;">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-filters-wrap">                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="0">All\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_lightning">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_prime">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-d="10">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 10% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="15">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 15% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="25">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 25% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-pr="under50">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>            Under $50\x3C/button>        \x3C/div>        \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3C/div>    \x3C/div>    \x3C/div>      \x3C!-- Search & Filter Controls --\x3E    \x3Cdiv class="tg-df-controls" id="tg-df-controls" style="display:flex;">      \x3Cdiv class="tg-df-top-bar">        \x3Cdiv class="tg-df-search-wrapper">          \x3Cinput type="text" class="tg-df-search-input" placeholder="Search for deals, products, or brands...">          \x3Cbutton type="button" class="tg-df-search-btn" aria-label="Search">              \x3Csvg class="tg-df-search-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">                \x3Cpath d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>              \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-autocomplete-dropdown" id="tg-df-autocomplete">\x3C/div>        \x3C/div>                \x3Cdiv class="tg-df-settings-wrapper">          \x3Cbutton type="button" class="tg-df-settings-btn" aria-label="Settings" id="tg-df-settings-toggle">            \x3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20">                \x3Cpath d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.73 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .43-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.49-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>            \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-settings-dropdown-backdrop" id="tg-df-settings-backdrop">\x3C/div>          \x3Cdiv class="tg-df-settings-dropdown" id="tg-df-settings-panel">            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Search Region\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-region-select">                \x3Coption value="auto">🌍 Auto-detect\x3C/option>                \x3Coption value="US">🇺🇸 United States (US)\x3C/option>                \x3Coption value="GB">🇬🇧 United Kingdom (UK)\x3C/option>                \x3Coption value="CA">🇨🇦 Canada (CA)\x3C/option>                \x3Coption value="AU">🇦🇺 Australia (AU)\x3C/option>                \x3Coption value="DE">🇩🇪 Germany (DE)\x3C/option>                \x3Coption value="FR">🇫🇷 France (FR)\x3C/option>                \x3Coption value="IT">🇮🇹 Italy (IT)\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Retailer\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-retailer-select">                \x3Coption value="">All Retailers\x3C/option>                \x3Coption value="Amazon">Amazon\x3C/option>                \x3Coption value="Walmart">Walmart\x3C/option>                \x3Coption value="Best Buy">Best Buy\x3C/option>                \x3Coption value="Target">Target\x3C/option>                \x3Coption value="John Lewis">John Lewis\x3C/option>                \x3Coption value="Currys">Currys\x3C/option>                \x3Coption value="Argos">Argos\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Offer Type\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-offer-type-select">                \x3Coption value="">All Offers\x3C/option>                \x3Coption value="amazon_prime">Amazon Prime\x3C/option>                \x3Coption value="recommended_promo">Recommended Promo\x3C/option>                \x3Coption value="amazon_lightning">Amazon Lightning Deal\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Result Count\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-rows-select">                \x3Coption value="3">3 Items\x3C/option>                \x3Coption value="4">4 Items\x3C/option>                \x3Coption value="6">6 Items\x3C/option>                \x3Coption value="12" selected>12 Items\x3C/option>                \x3Coption value="24">24 Items\x3C/option>                \x3Coption value="48">48 Items\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Deal Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Only show products with active offers or previous prices (was_price)\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-deal-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Editor Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Enable multi-select to copy deals to CMS\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-editor-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">View Mode\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-view-mode-select">                \x3Coption value="auto">Auto Collection\x3C/option>                \x3Coption value="carousel">Carousel\x3C/option>                \x3Coption value="savings_squad">Savings Squad\x3C/option>                \x3Coption value="grid">Grid (Columns)\x3C/option>                \x3Coption value="row">Row (List)\x3C/option>              \x3C/select>            \x3C/div>          \x3C/div>        \x3C/div>      \x3C/div>      \x3Cdiv class="tg-df-filters">        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-category-filter-wrapper" style="display: none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-category-filter" aria-label="Category">            \x3Coption value="all">All Categories\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-multiselect-container" id="tg-df-brand-filter-wrapper" style="display:none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/>          \x3C/svg>          \x3Cdiv class="tg-df-filter-select tg-df-multiselect-trigger" id="tg-df-brand-trigger" tabindex="0">            Any Brand          \x3C/div>          \x3Cdiv class="tg-df-multiselect-dropdown" id="tg-df-brand-dropdown">            \x3C!-- Populated via script --\x3E          \x3C/div>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/>          \x3C/svg>          \x3Cselect class="tg-df-sort-select" aria-label="Sort Deals">            \x3Coption value="date_desc">Newest First\x3C/option>            \x3Coption value="best_match">Sort by: Match\x3C/option>            \x3Coption value="price_asc">Price Low to High\x3C/option>            \x3Coption value="price_desc">Price High to Low\x3C/option>            \x3Coption value="discount_desc">Biggest Discount\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-price-range-wrapper" id="tg-df-custom-price-wrapper" style="display: flex; align-items:center; justify-content:center; padding: 10px 20px; gap: 8px; border: 1px solid var(--tg-df-border); border-radius: 100px; background-color: var(--tg-df-bg);">          \x3Cspan style="font-size:14px; font-weight:500; color:var(--tg-df-text-primary);">Price\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-min" placeholder="Min" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">          \x3Cspan style="color:var(--tg-df-text-muted)">-\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-max" placeholder="Max" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices">            \x3Coption value="all">All Prices\x3C/option>            \x3Coption value="under50">Under $50\x3C/option>            \x3Coption value="50_100">$50 - $100\x3C/option>            \x3Coption value="100_200">$100 - $200\x3C/option>            \x3Coption value="200_500">$200 - $500\x3C/option>            \x3Coption value="over500">Over $500\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount">            \x3Coption value="all">Any discount\x3C/option>            \x3Coption value="5">Min 5%\x3C/option>            \x3Coption value="10">Min 10%\x3C/option>            \x3Coption value="15">Min 15%\x3C/option>            \x3Coption value="20">Min 20%\x3C/option>            \x3Coption value="25">Min 25%\x3C/option>            \x3Coption value="30">Min 30%\x3C/option>            \x3Coption value="40">Min 40%\x3C/option>            \x3Coption value="50">Min 50%\x3C/option>            \x3Coption value="60">Min 60%\x3C/option>            \x3Coption value="70">Min 70%\x3C/option>          \x3C/select>        \x3C/div>      \x3C/div>    \x3C/div>    \x3C!-- Deals Grid Wrapper --\x3E    \x3Cdiv class="tg-df-grid-wrapper tg-df-carousel-cards-wrapper" id="tg-df-grid-wrapper">      \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3Cdiv class="tg-df-grid" id="tg-df-grid">        \x3C!-- Content populated by JavaScript --\x3E      \x3C/div>      \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>    \x3C/div>        \x3C!-- Vouchers Modal --\x3E    \x3Cdiv class="tg-df-modal-backdrop" id="tg-df-vouchers-modal">      \x3Cdiv class="tg-df-modal">        \x3Cdiv class="tg-df-modal-header">          \x3Ch3 class="tg-df-modal-title" id="tg-df-vouchers-title">Available Coupons & Deals\x3C/h3>          \x3Cbutton class="tg-df-modal-close" id="tg-df-vouchers-close">            \x3Csvg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">              \x3Cline x1="18" y1="6" x2="6" y2="18">\x3C/line>              \x3Cline x1="6" y1="6" x2="18" y2="18">\x3C/line>            \x3C/svg>          \x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-modal-body" id="tg-df-vouchers-content">          \x3C!-- Vouchers injected here --\x3E        \x3C/div>      \x3C/div>    \x3C/div>  \x3C/div>`;      if (!template) {        template = document.createElement('template');        template.innerHTML = rawTemplate;      }      let shadowRoot = null;      if (hostContainer && template) {        hostContainer.setAttribute('data-initialized', 'true');        shadowRoot = hostContainer.attachShadow({ mode: 'open' });        shadowRoot.appendChild(template.content.cloneNode(true));      }      class DealsFinderWidget {        constructor(config) {          this.rootNode = config.rootNode || document;          this.hostContainer = config.hostContainer || null;          this.rootId = config.rootId || 'signal-deals-finder-root';          this.root = this.rootNode.querySelector('#' + this.rootId);          if (!this.root) return;          this.widgetId = (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'widget-' + Date.now() + '-' + Math.random().toString(36).slice(2);          this.grid = this.root.querySelector('#tg-df-grid');          this.tagsContainer = this.root.querySelector('#tg-df-tags-container');          this.categoryFilter = this.root.querySelector('#tg-df-category-filter');          this.categoryFilterWrapper = this.root.querySelector('#tg-df-category-filter-wrapper');          this.searchInput = this.root.querySelector('.tg-df-search-input');          this.autocompleteDropdown = this.root.querySelector('#tg-df-autocomplete');          this.sortSelect = this.root.querySelector('.tg-df-sort-select');          this.searchBtn = this.root.querySelector('.tg-df-search-btn');                    this.settingsToggle = this.root.querySelector('#tg-df-settings-toggle');          this.settingsPanel = this.root.querySelector('#tg-df-settings-panel');          this.settingsBackdrop = this.root.querySelector('#tg-df-settings-backdrop');          this.regionSelect = this.root.querySelector('#tg-df-region-select');          this.retailerSelect = this.root.querySelector('#tg-df-retailer-select');          this.offerTypeSelect = this.root.querySelector('#tg-df-offer-type-select');          this.viewModeSelect = this.root.querySelector('#tg-df-view-mode-select');          this.rowsSelect = this.root.querySelector('#tg-df-rows-select');          this.dealModeToggle = this.root.querySelector('#tg-df-deal-mode');          this.editorModeToggle = this.root.querySelector('#tg-df-editor-mode');          this.priceFilter = this.root.querySelector('#tg-df-price-filter');          this.discountFilter = this.root.querySelector('#tg-df-discount-filter');                    this.editorBar = this.root.querySelector('#tg-df-editor-bar');          this.editorSelectedCount = this.root.querySelector('#tg-df-selected-count');          this.editorCopyBtn = this.root.querySelector('#tg-df-editor-copy');          this.editorClearBtn = this.root.querySelector('#tg-df-editor-clear');                    this.apiUrl = 'https://search-api.fie.future.net.uk/widget.php';          this.deals = [];          this.displayLimit = 12;          this.airedaleArticles = null;          this.airedaleTags = [];          this.airedaleTagCounts = {};          this.activeDealTag = null;          this.selectedBrands = [];          this.currentQuery = '';          this.editorMode = this.hostContainer ? this.hostContainer.hasAttribute('data-editor-mode') : false;          this.viewModeOverride = this.hostContainer ? this.hostContainer.getAttribute('data-view-mode') : null;          this.selectedDeals = new Map();                    this.brandFilterWrapper = this.root.querySelector('#tg-df-brand-filter-wrapper');          this.brandTrigger = this.root.querySelector('#tg-df-brand-trigger');          this.brandDropdown = this.root.querySelector('#tg-df-brand-dropdown');                    this.customPriceWrapper = this.root.querySelector('#tg-df-custom-price-wrapper');          this.customPriceMin = this.root.querySelector('#tg-df-custom-price-min');          this.customPriceMax = this.root.querySelector('#tg-df-custom-price-max');          this.legacyPriceWrapper = this.root.querySelector('#tg-df-legacy-price-wrapper');          this.discountFilterWrapper = this.root.querySelector('#tg-df-discount-filter-wrapper');          this.initResizeObserver();          this.init();            if (['carousel', 'carousel-compact', 'auto', 'grid', 'row'].includes(this.getViewMode())) { this.loadCarouselSpreadsheet(); }        }        getViewMode() {          if (this.viewModeOverride && (!this.editorMode || !this.viewModeSelect)) {            return this.viewModeOverride;          }          return (this.viewModeSelect && this.viewModeSelect.value) ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');        }        applyLayoutMode() {          if (!this.grid) return;          const mode = this.getViewMode();          this.grid.classList.remove('layout-row', 'layout-grid', 'tg-df-grid-auto', 'carousel-compact', 'layout-replica-1', 'layout-replica-2');                    const carouselHost = this.root.querySelector('#tg-df-carousel-host');          const controlsDiv = this.root.querySelector('#tg-df-controls');          if (mode === 'carousel' || mode === 'auto' || mode === 'grid' || mode === 'row') {             if (mode === 'carousel') this.grid.classList.add('carousel-compact');             if (carouselHost) carouselHost.style.display = 'block';             if (controlsDiv) controlsDiv.style.display = 'none';             if (this.root.classList.contains('tg-df-container') && mode === 'carousel') {               this.root.classList.add('is-carousel');             } else if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          } else {             if (carouselHost) carouselHost.style.display = 'none';             if (controlsDiv) controlsDiv.style.display = 'flex';             if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          }          if (mode === 'grid') {            this.grid.classList.add('layout-grid');          } else if (mode === 'row') {            this.grid.classList.add('layout-row');          } else if (mode === 'savings_squad') {            this.grid.classList.add('tg-df-grid-auto', 'savings-squad-cards');          } else if (mode !== 'carousel') {            this.grid.classList.add('tg-df-grid-auto');          }                    const settingsWrapper = this.root.querySelector('.tg-df-settings-wrapper');          if (settingsWrapper) {            settingsWrapper.style.display = mode === 'auto' ? 'none' : 'block';          }          if (this.customPriceWrapper) {             this.customPriceWrapper.style.display = mode === 'auto' ? 'flex' : 'none';          }          if (this.legacyPriceWrapper) {             this.legacyPriceWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }          if (this.discountFilterWrapper) {             this.discountFilterWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }        }        initResizeObserver() {          try {            if (window.parent === window) return;          } catch (e) {            // cross origin frame check threw          }          const emitHeight = () => {            try {              const height = document.documentElement.scrollHeight || document.body.scrollHeight;              const msg = { type: 'embed-size', height: height };              if (window.parent && window.parent !== window) {                window.parent.postMessage(msg, '*');                window.parent.postMessage(JSON.stringify({ ...msg, sentinel: 'amp' }), '*');              }            } catch (e) {}          };                    if (window.ResizeObserver) {            try {              const ro = new ResizeObserver(() => emitHeight());              ro.observe(document.body);              if (this.root) ro.observe(this.root);            } catch(e){ console.warn(e); }          }          window.addEventListener('resize', emitHeight);          setTimeout(emitHeight, 300);        }        initCountdown() {          this.cdWrapper = this.root.querySelector('#tg-df-countdown-wrapper');                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          this.showCountdown = params.get('show_countdown') === 'true';          const showHeaderDetails = params.get('show_header_details') !== 'false';          const eyebrow = this.root.querySelector('.tg-df-carousel-box-eyebrow');          const title = this.root.querySelector('.tg-df-carousel-box-title');          const subtitle = this.root.querySelector('.tg-df-carousel-box-subtitle');          if (!showHeaderDetails) {            let containerElement = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (containerElement) containerElement.classList.add('hide-header-details');            if (eyebrow) eyebrow.style.display = 'none';            if (title) title.style.display = 'none';            if (subtitle) subtitle.style.display = 'none';          }          if (!this.cdWrapper) return;          this.cdTitle = this.root.querySelector('#tg-df-countdown-title');          this.cdDays = this.root.querySelector('#tg-df-cd-days');          this.cdHrs = this.root.querySelector('#tg-df-cd-hrs');          this.cdMin = this.root.querySelector('#tg-df-cd-min');          this.cdSec = this.root.querySelector('#tg-df-cd-sec');          this.updateCountdown();          this.cdInterval = setInterval(() => this.updateCountdown(), 1000);        }        updateCountdown() {          if (!this.cdWrapper) return;          if (!this.showCountdown) {            this.cdWrapper.style.display = 'none';            return;          }          const area = this.getAreaCode();          let offset = '-04:00';          if (['DE', 'FR', 'IT', 'ES', 'NL'].includes(area)) {             offset = '+02:00';          } else if (['GB', 'IE', 'UK'].includes(area)) {             offset = '+01:00';          }          const startTime = new Date('2026-06-23T00:00:00' + offset).getTime();          const endTime = new Date('2026-06-26T00:00:00' + offset).getTime();          const now = Date.now();          let targetTime = 0;          if (now < startTime) {             targetTime = startTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day starts in';             this.cdWrapper.style.display = 'flex';          } else if (now < endTime) {             targetTime = endTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day ends in';             this.cdWrapper.style.display = 'flex';          } else {             this.cdWrapper.style.display = 'none';             if (this.cdInterval) clearInterval(this.cdInterval);             return;          }          const diff = Math.max(0, targetTime - now);          const d = Math.floor(diff / (1000 * 60 * 60 * 24));          const h = Math.floor((diff / (1000 * 60 * 60)) % 24);          const m = Math.floor((diff / 1000 / 60) % 60);          const s = Math.floor((diff / 1000) % 60);          if (this.cdDays) this.cdDays.textContent = d;          if (this.cdHrs) this.cdHrs.textContent = h;          if (this.cdMin) this.cdMin.textContent = m;          if (this.cdSec) this.cdSec.textContent = s;        }        init() {          this.initCountdown();          try {            initAnalytics();          } catch (e) {            console.warn('Deals Widget Analytics Error:', e);          }                    this.bindEvents();                    let initialQuery = '';                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          let initialViewMode = params.get('view_mode');          if (!params.has('search') && !params.has('q') && !params.has('query') && initialViewMode !== 'savings_squad') {             initialQuery = 'Everything';             if (this.discountFilter && !params.has('min_discount_ratio')) {               this.discountFilter.value = '5';             }          }          const website = params.get('website') || 'tomsguide';          this.website = website;          if (website === 'techradar') {            const squadHeader = this.root.querySelector('.tg-df-savings-squad-header');            if (squadHeader) {               const pic = squadHeader.querySelector('picture');               if (pic) pic.style.display = 'none';            }            const style = document.createElement('style');            style.innerHTML = `              .tg-df-container .hawk-affiliate-link-deal-button { background-color: #5DAF08 !important; }              .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a8c06 !important; }            `;            this.root.appendChild(style);          }                    if (this.regionSelect) {            this.regionSelect.value = params.get('region') || 'auto';            this.updatePriceDropdownCurrency();          }                    if (this.retailerSelect && params.has('retailer')) {            this.retailerSelect.value = params.get('retailer');          }                    if (params.has('brands')) {            const b = params.get('brands');            if (b) {              this.selectedBrands = b.split(',');            }          }                    if (this.offerTypeSelect && params.has('offer_type')) {            this.offerTypeSelect.value = params.get('offer_type');          }          if (params.has('bg_color')) {            const bg = params.get('bg_color');            if (bg === 'white') {              this.root.style.setProperty('background-color', '#ffffff', 'important');            } else if (bg === 'transparent') {              this.root.style.setProperty('background-color', 'transparent', 'important');            } else if (bg === 'light_blue') {              this.root.style.setProperty('background-color', '#E7F0FF', 'important');            }          } else {             this.root.style.removeProperty('background-color');          }                    if (params.has('view_mode')) {            if (this.viewModeSelect) {              this.viewModeSelect.value = params.get('view_mode');            } else {              this.viewModeOverride = params.get('view_mode');            }          }          if (this.rowsSelect && params.has('rows')) {            this.rowsSelect.value = params.get('rows');          }          if (params.has('price')) {            const priceVal = params.get('price');            if (this.priceFilter) {               // Try assigning it directly to select. If it's not present implicitly ignores               this.priceFilter.value = priceVal;            }            if (priceVal.includes('_')) {               const parts = priceVal.split('_');               if (this.customPriceMin && parts[0]) this.customPriceMin.value = parts[0];               if (this.customPriceMax && parts[1]) this.customPriceMax.value = parts[1];            }          }          if (this.discountFilter && params.has('min_discount_ratio')) {            // Need to convert back from ratio (e.g. 0.8) to select value (e.g. "20")            const ratioStr = params.get('min_discount_ratio');            const ratioFloat = parseFloat(ratioStr);            if (!isNaN(ratioFloat)) {               const percentage = Math.round((1 - ratioFloat) * 100);               this.discountFilter.value = percentage.toString();            }          }          if (this.sortSelect) {            this.sortSelect.value = params.get('sort') || 'discount_desc';          }          if (this.dealModeToggle && params.has('deal_mode')) {            this.dealModeToggle.checked = params.get('deal_mode') === 'true' || params.get('deal_mode') === '1';          }                    // Re-apply layout after params have updated control values          this.applyLayoutMode();                    if (params.get('search')) {            initialQuery = params.get('search');          } else if (params.get('q')) {            initialQuery = params.get('q');          } else if (params.get('query')) {            initialQuery = params.get('query');          }                    this.currentQuery = initialQuery;          if (this.searchInput) {            this.searchInput.value = this.currentQuery;          }                    if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {            this.fetchDeals(this.currentQuery);          } else {            this.render();          }        }        updatePriceDropdownCurrency() {          if (!this.priceFilter || !this.regionSelect) return;          const currencySymbols = {            'US': '$',            'GB': '£',            'CA': '$CA',            'AU': '$AU',            'DE': '€',            'FR': '€',            'IT': '€',          };          const area = this.getAreaCode();          const cur = currencySymbols[area || 'US'] || '$';                    const options = this.priceFilter.options;          for (let i = 0; i < options.length; i++) {            const opt = options[i];            if (opt.value === 'all') {              opt.innerText = 'All Prices';            } else if (opt.value === 'under50') {              opt.innerText = `Under ${cur}50`;            } else if (opt.value === '50_100') {              opt.innerText = `${cur}50 - ${cur}100`;            } else if (opt.value === '100_200') {              opt.innerText = `${cur}100 - ${cur}200`;            } else if (opt.value === '200_500') {              opt.innerText = `${cur}200 - ${cur}500`;            } else if (opt.value === 'over500') {              opt.innerText = `Over ${cur}500`;            }          }        }        populateBrandDropdown(values) {          if (!this.brandDropdown || !this.brandFilterWrapper) return;          this.brandFilterWrapper.style.display = 'flex'; // show the wrapper                    let html = '';          const allChecked = this.selectedBrands.length === 0 ? 'checked' : '';          const _div = '<' + '/div>';          const _span = '<' + '/span>';          html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="" ${allChecked} class="tg-df-brand-chk"> Any Brand${_div}`;                    values.forEach(v => {             if (!v.formatted_value || v.formatted_value === 'Any Brand') return;             const isChecked = this.selectedBrands.includes(v.formatted_value) ? 'checked' : '';             html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="${this.escapeHTML(v.formatted_value)}" ${isChecked} class="tg-df-brand-chk"> ${this.escapeHTML(v.formatted_value)} \x3Cspan style="color:var(--tg-df-text-muted);font-size:12px">(${v.count || 0})${_span}${_div}`;          });                    this.brandDropdown.innerHTML = html;                    // Re-bind listeners          const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');          chks.forEach(chk => {            chk.addEventListener('change', (e) => {              const val = e.target.value;              if (val === '') {                this.selectedBrands = [];              } else {                if (e.target.checked) {                   if (!this.selectedBrands.includes(val)) this.selectedBrands.push(val);                } else {                   this.selectedBrands = this.selectedBrands.filter(b => b !== val);                }              }                            if (this.selectedBrands.length === 0) {                 this.brandTrigger.innerText = 'Any Brand';              } else if (this.selectedBrands.length === 1) {                 this.brandTrigger.innerText = this.selectedBrands[0];              } else {                 this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;              }                            // Only call API if changed from UI interactions              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.updateURLParams();                 this.fetchDeals(this.currentQuery);              }            });          });                    // Update button text on load          if (this.selectedBrands.length === 0) {             this.brandTrigger.innerText = 'Any Brand';          } else if (this.selectedBrands.length === 1) {             this.brandTrigger.innerText = this.selectedBrands[0];          } else {             this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;          }        }        updateURLParams() {          const url = new URL(window.location);          if (this.currentQuery && this.currentQuery !== 'Gaming laptops') {            url.searchParams.set('q', this.currentQuery);          } else {            url.searchParams.delete('q');            url.searchParams.delete('search');            url.searchParams.delete('query');          }                    if (this.regionSelect && this.regionSelect.value !== 'auto') {            url.searchParams.set('region', this.regionSelect.value);          } else {            url.searchParams.delete('region');          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.set('retailer', this.retailerSelect.value);          } else {            url.searchParams.delete('retailer');          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.set('brands', this.selectedBrands.join(','));          } else {            url.searchParams.delete('brands');          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.set('offer_type', this.offerTypeSelect.value);          } else {            url.searchParams.delete('offer_type');          }                    if (this.viewModeSelect && this.viewModeSelect.value !== 'auto') {            url.searchParams.set('view_mode', this.viewModeSelect.value);          } else {            url.searchParams.delete('view_mode');          }                    if (this.rowsSelect && this.rowsSelect.value !== '12') {            url.searchParams.set('rows', this.rowsSelect.value);          } else {            url.searchParams.delete('rows');          }                    const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             url.searchParams.set('price', `${min}_${max}`);          } else if (this.priceFilter && this.priceFilter.value !== 'all') {            url.searchParams.set('price', this.priceFilter.value);          } else {            url.searchParams.delete('price');          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {               const ratio = (100 - v) / 100;               url.searchParams.set('min_discount_ratio', ratio.toString());            }          } else {            url.searchParams.delete('min_discount_ratio');          }                    if (this.sortSelect && this.sortSelect.value !== 'discount_desc') {            url.searchParams.set('sort', this.sortSelect.value);          } else {            url.searchParams.delete('sort');          }                    if (this.dealModeToggle && this.dealModeToggle.checked) {            url.searchParams.set('deal_mode', 'true');          } else {            url.searchParams.delete('deal_mode');          }                    window.history.replaceState({}, '', url);        }        bindEvents() {          const roundels = this.root.querySelectorAll('.tg-df-carousel-cat.original-hardcoded');          roundels.forEach(r => {             r.addEventListener('click', () => {                const q = r.getAttribute('data-query');                const pr = r.getAttribute('data-pr');                if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: q,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = q;                const label = this.root.querySelector('#tg-df-carousel-title-label');                if (label) label.textContent = 'Best ' + q;                if (this.priceFilter) this.priceFilter.value = pr || 'all';                if (this.discountFilter) this.discountFilter.value = '5';                if (this.searchInput) this.searchInput.value = q;                                roundels.forEach(ro => ro.classList.remove('active'));                r.classList.add('active');                this.fetchDeals(this.currentQuery);             });          });          const discBtns = this.root.querySelectorAll('.tg-df-carousel-filter-btn');          discBtns.forEach(b => {             b.addEventListener('click', () => {                const d = b.getAttribute('data-d');                const pr = b.getAttribute('data-pr');                const ot = b.getAttribute('data-ot');                let label = b.innerText ? b.innerText.trim() : '';                let filterType = 'unknown';                let filterVal = 'unknown';                if (d !== null) { filterType = 'discount'; filterVal = d; }                else if (pr !== null) { filterType = 'price'; filterVal = pr; }                else if (ot !== null) { filterType = 'offertype'; filterVal = ot; }                if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-${filterType}-${filterVal}`, name: 'Filter Button', label: label });                                if (d !== null) {                   if (this.discountFilter) this.discountFilter.value = this.discountFilter.value === d ? '0' : d;                } else if (pr !== null) {                   if (this.priceFilter) this.priceFilter.value = this.priceFilter.value === pr ? 'all' : pr;                } else if (ot !== null) {                   if (this.offerTypeSelect) this.offerTypeSelect.value = this.offerTypeSelect.value === ot ? 'all' : ot;                } else {                   if (this.discountFilter) this.discountFilter.value = '0';                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.offerTypeSelect) this.offerTypeSelect.value = 'all';                }                if (d === null && pr === null && ot === null && b.getAttribute("data-type") !== "custom") {                   discBtns.forEach(ro => ro.classList.remove('active'));                   b.classList.add('active');                } else if (b.getAttribute("data-type") !== "custom") {                   // Only operate on hardcoded buttons (those without data-type)                   discBtns.forEach(ro => {                      if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active');                   });                                      let makeActive = true;                   if (d !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-d') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (pr !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-pr') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (ot !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-ot') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   }                                      if (makeActive) b.classList.add('active');                                      // Check if anything is active, if not activate "All"                   let anyActive = false;                   discBtns.forEach(ro => { if (ro.classList.contains('active') && ro.getAttribute('data-type') !== 'custom') anyActive = true; });                   if (!anyActive) {                       discBtns.forEach(ro => { if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.add('active'); });                   }                }                                this.fetchDeals(this.currentQuery);             });          });          if (this.brandTrigger && this.brandDropdown) {            this.brandTrigger.addEventListener('click', () => {              this.brandDropdown.classList.toggle('active');            });            document.addEventListener('click', (e) => {              if (this.brandFilterWrapper && !e.composedPath().includes(this.brandFilterWrapper)) {                this.brandDropdown.classList.remove('active');              }            });          }          let debounceTimer;          if(this.searchInput) {            this.searchInput.addEventListener('input', (e) => {              clearTimeout(debounceTimer);              const query = e.target.value.trim();              this.currentQuery = query;              if (this.getViewMode() === 'savings_squad' && this.autocompleteDropdown && this.airedaleTags && query.length > 0) {                 const matches = this.airedaleTags.filter(t => t.toLowerCase().includes(query.toLowerCase()) && t.toLowerCase() !== query.toLowerCase()).slice(0, 5);                 if (matches.length > 0) {                    this.autocompleteDropdown.innerHTML = matches.map(m => `\x3Cdiv class="tg-df-autocomplete-item" data-tag="${this.escapeHTML(m)}">${this.escapeHTML(m)}<` + `/div>`).join('');                    this.autocompleteDropdown.classList.add('active');                 } else {                    this.autocompleteDropdown.classList.remove('active');                 }              } else if (this.autocompleteDropdown) {                 this.autocompleteDropdown.classList.remove('active');              }              debounceTimer = setTimeout(() => {                this.updateURLParams();                if (query.length > 2) {                  this.fetchDeals(query);                } else if (query.length === 0) {                  this.deals = [];                  this.render();                }              }, 400);            });            this.searchInput.addEventListener('keypress', (e) => {              if (e.key === 'Enter') {                if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');                clearTimeout(debounceTimer);                const query = e.target.value.trim();                this.currentQuery = query;                this.activeDealTag = null;                trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });                this.updateURLParams();                if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                   this.fetchDeals(query);                }              }            });          }          if (this.autocompleteDropdown) {             this.autocompleteDropdown.addEventListener('click', (e) => {                const item = e.target.closest('.tg-df-autocomplete-item');                if (item) {                   const tag = item.getAttribute('data-tag');                   this.currentQuery = tag;                   if (this.searchInput) this.searchInput.value = tag;                   this.activeDealTag = tag;                   this.autocompleteDropdown.classList.remove('active');                   this.updateURLParams();                   this.fetchDeals(tag);                }             });             document.addEventListener('click', (e) => {               if (this.autocompleteDropdown && this.searchInput && !e.composedPath().includes(this.searchInput) && !e.composedPath().includes(this.autocompleteDropdown)) {                 this.autocompleteDropdown.classList.remove('active');               }             });          }          if (this.searchBtn) {            this.searchBtn.addEventListener('click', () => {              if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');              clearTimeout(debounceTimer);              const query = this.searchInput.value.trim();              trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });              this.activeDealTag = null;              this.currentQuery = query;              this.updateURLParams();              if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.fetchDeals(query);              }            });          }          if(this.sortSelect) this.sortSelect.addEventListener('change', () => {            trackElementInteraction({ id: `sort-option-${this.sortSelect.value}`, name: 'Sort', label: `Sort: ${this.sortSelect.options[this.sortSelect.selectedIndex].text}` });            this.updateURLParams();            if (this.deals.length > 0) {              this.sortData();              this.render();            }          });                    const priceFilter = this.root.querySelector('#tg-df-price-filter');          if (priceFilter) {            this.priceFilter = priceFilter;            this.priceFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-price-${this.priceFilter.value}`, name: 'Price', label: this.priceFilter.options[this.priceFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          const updateCustomPrice = () => {             this.updateURLParams();             if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);             } else {                this.render();             }          };          if (this.customPriceMin) {             this.customPriceMin.addEventListener('change', updateCustomPrice);             this.customPriceMin.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          if (this.customPriceMax) {             this.customPriceMax.addEventListener('change', updateCustomPrice);             this.customPriceMax.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          const discountFilter = this.root.querySelector('#tg-df-discount-filter');          if (discountFilter) {            this.discountFilter = discountFilter;            this.discountFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-discount-${this.discountFilter.value}`, name: 'Discount', label: this.discountFilter.options[this.discountFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          if (this.categoryFilter) {            this.categoryFilter.addEventListener('change', (e) => {               const val = e.target.value === 'all' ? null : e.target.value;               this.activeDealTag = val;               this.fetchSavingsSquad();            });          }                    if (this.settingsToggle) {            this.settingsToggle.addEventListener('click', () => {              const o = this.settingsPanel.classList.toggle('active');              this.settingsBackdrop.classList.toggle('active');              if (o) trackElementInteraction({ id: 'filter-open', name: 'Filters', label: 'Open filters' });            });          }                    if (this.settingsBackdrop) {            this.settingsBackdrop.addEventListener('click', () => {              this.settingsPanel.classList.remove('active');              this.settingsBackdrop.classList.remove('active');            });          }                    if (this.regionSelect) {            this.regionSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-region-${this.regionSelect.value}`, name: 'Region', label: this.regionSelect.options[this.regionSelect.selectedIndex].text });              this.updateURLParams();              this.updatePriceDropdownCurrency();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.retailerSelect) {            this.retailerSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-merchant-${this.retailerSelect.value}`, name: 'Retailer', label: this.retailerSelect.options[this.retailerSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.offerTypeSelect) {            this.offerTypeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-offertype-${this.offerTypeSelect.value}`, name: 'Offer Type', label: this.offerTypeSelect.options[this.offerTypeSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.viewModeSelect) {            this._prevViewMode = this.viewModeSelect.value;            this.viewModeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-viewmode-${this.viewModeSelect.value}`, name: 'View Mode', label: this.viewModeSelect.options[this.viewModeSelect.selectedIndex].text });                            // Reset all active toggles and filters to prevent config carry-over              this.selectedBrands = [];              if (this.brandTrigger) this.brandTrigger.innerText = 'Select Brands';              if (this.brandDropdown) {                const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                chks.forEach(chk => { chk.checked = false; });              }              if (this.priceFilter) this.priceFilter.value = 'all';              if (this.customPriceMin) this.customPriceMin.value = '';              if (this.customPriceMax) this.customPriceMax.value = '';              if (this.sortSelect) this.sortSelect.value = this.viewModeSelect.value === 'savings_squad' ? 'date_desc' : 'discount_desc';              if (this.discountFilter) this.discountFilter.value = '0';              if (this.retailerSelect) this.retailerSelect.value = '';              if (this.offerTypeSelect) this.offerTypeSelect.value = '';              if (this.rowsSelect) this.rowsSelect.value = '12';              if (this.categoryFilter) this.categoryFilter.value = 'all';              this.activeDealTag = null;              this.updateURLParams();              this.applyLayoutMode();                            if (this.getViewMode() === 'savings_squad' || this._prevViewMode === 'savings_squad') {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }              this._prevViewMode = this.viewModeSelect.value;            });          }                    if (this.rowsSelect) {            this.rowsSelect.addEventListener('change', () => {              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.dealModeToggle) {            this.dealModeToggle.addEventListener('change', () => {              this.updateURLParams();              this.render();            });          }          if (this.editorModeToggle) {             this.editorModeToggle.addEventListener('change', (e) => {                this.editorMode = e.target.checked;                this.render();                this.updateFloatingCopyBar();             });          }          if (this.editorCopyBtn) {             this.editorCopyBtn.addEventListener('click', () => {                this.copySelectedDealsToCMS();             });          }          if (this.editorClearBtn) {             this.editorClearBtn.addEventListener('click', () => {                this.selectedDeals.clear();                this.render();                this.updateFloatingCopyBar();             });          }          if (this.grid) {            this.grid.addEventListener('change', (e) => {               if (e.target.classList.contains('tg-df-deal-checkbox')) {                  const dealId = e.target.getAttribute('data-id');                  if (e.target.checked) {                     const dealObj = this.deals.find(d => d.id === dealId);                     if (dealObj) this.selectedDeals.set(dealId, dealObj);                  } else {                     this.selectedDeals.delete(dealId);                  }                  this.updateFloatingCopyBar();               }            });            this.grid.addEventListener('click', (e) => {              const dealCard = e.target.closest('[data-action="deal-click"]');              const similarCard = e.target.closest('[data-action="view-similar-click"]');              const cardLink = dealCard || similarCard;              if (cardLink) {                const productName = cardLink.getAttribute('data-product-name');                const merchantName = cardLink.getAttribute('data-merchant-name');                const productId = cardLink.getAttribute('data-analytics-id');                const price = parseFloat(cardLink.getAttribute('data-price')) || null;                const prevPriceStr = cardLink.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = cardLink.getAttribute('data-original-link');                const rewrittenLink = cardLink.getAttribute('href');                const revenueId = cardLink.getAttribute('data-revenue-id');                const index = parseInt(cardLink.getAttribute('data-index'), 10) || 0;                const inStock = cardLink.getAttribute('data-in-stock') === 'true';                const totalText = cardLink.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: cardLink.getAttribute('data-model-id') || null,                    matchId: cardLink.getAttribute('data-match-id') || null,                    brand: cardLink.getAttribute('data-model-brand') || null,                    parent: cardLink.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: cardLink.getAttribute('data-merchant-id') || null,                    network: cardLink.getAttribute('data-merchant-network') || null,                    url: cardLink.getAttribute('data-merchant-url') || null,                    name: merchantName                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: normalizeCurrency(this.escapeHTML(cardLink.getAttribute('data-currency') || '$'))                };                if (dealCard) {                  trackDealClick(trackingParams);                } else {                  trackViewSimilarClick(trackingParams);                }              }              const couponsBtn = e.target.closest('[data-action="coupons-click"]');              if (couponsBtn) {                trackElementInteraction({                  id: 'product-card-show-coupons',                  name: 'Coupons',                  label: `Product card coupons: ${couponsBtn.getAttribute('data-merchant')}`                });              }            });          }          this.setupScrollListeners();        }        setupScrollListeners() {          const containers = [             this.root.querySelector('.tg-df-carousel-roundels'),             this.root.querySelector('.tg-df-carousel-filters-wrap'),             this.root.querySelector('#tg-df-grid')          ];                    containers.forEach(container => {             if (!container) return;                          const checkScroll = () => {                if (!container.parentElement) return;                const leftBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-left');                const rightBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-right');                                if (leftBtn) {                   if (container.scrollLeft <= 5) leftBtn.style.display = 'none';                   else leftBtn.style.display = 'flex';                }                                if (rightBtn) {                   if (container.scrollWidth <= container.clientWidth) {                       rightBtn.style.display = 'none';                   } else if (container.scrollLeft >= container.scrollWidth - container.clientWidth - 5) {                       rightBtn.style.display = 'none';                   } else {                       rightBtn.style.display = 'flex';                   }                }             };                          container.addEventListener('scroll', checkScroll);             checkScroll();                          window.addEventListener('resize', checkScroll);                          const observer = new MutationObserver(checkScroll);             observer.observe(container, { childList: true, subtree: true, characterData: false });          });        }        get widgetTypeName() {          const mode = this.viewModeSelect ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');          switch(mode) {              case 'carousel': return 'Carousel';              case 'savings_squad': return 'Savings Squad';              case 'grid': return 'Grid';              case 'row': return 'Row';              default: return 'Auto Collection';          }        }        getAreaCode() {          if (this.regionSelect && this.regionSelect.value) {            if (this.regionSelect.value === 'auto') return null;            return this.regionSelect.value;          }          let area = null;          try {            const locale = window.navigator.language || window.navigator.userLanguage;            if (locale && locale.includes('-')) {              area = locale.split('-')[1].toUpperCase();            } else if (locale && locale.length === 2) {              if (locale.toUpperCase() === 'EN') { area = 'US'; }              else { area = locale.toUpperCase(); }            }          } catch (e) { /* Ignore */ }                    // Map to known valid options or fallback to US          const valid = ['US', 'GB', 'CA', 'AU', 'DE', 'FR', 'IT'];          if (area === 'UK') area = 'GB';          if (valid.includes(area)) {             return area;          }          return 'US';        }                async loadCarouselSpreadsheet() {          try {              const parseCSVRow = (str) => {                  let result = [], cur = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (inQuotes) {                          if (char === '"') {                              if (str[i + 1] === '"') { cur += '"'; i++; }                              else { inQuotes = false; }                          } else { cur += char; }                      } else {                          if (char === '"') { inQuotes = true; }                          else if (char === ',') { result.push(cur); cur = ''; }                          else { cur += char; }                      }                  }                  result.push(cur); return result;              };              const parseCSV = (str) => {                  const rows = []; let curRow = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (char === '"') inQuotes = !inQuotes;                      if ((char === '\n' || char === '\r') && !inQuotes) {                          if (char === '\r' && str[i+1] === '\n') i++;                          if (curRow) rows.push(parseCSVRow(curRow));                          curRow = '';                      } else { curRow += char; }                  }                  if (curRow) rows.push(parseCSVRow(curRow));                  return rows;              };              const preloadedCSV = decodeURIComponent(escape(atob("LCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNQ0KUm91bmRlbCB0ZXh0LEFsbCxUVnMsRm9vdHdlYXIsQXBwYXJlbCxNYXR0cmVzZXMsQXBwbGlhbmNlcyxXZWFyYWJsZSB0ZWNoLEhlYWRwaG9uZXMsU21hcnQgSG9tZSxTcGVha2VycyxMYXB0b3BzLFRhYmxldHMsQ29tcHV0aW5nLFBob25lcyxHYW1pbmcsTGVnbw0KUm91bmRlbCBpbWFnZSxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL2FpLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3R2cy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvN2IzYTIyNGIwNzk2M2M2MjdiNmI5MDliZDc4MzM4MzZlMDJmZjgxOS5qcGcud2VicCxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy84NGRhYzVkNDhlZDJkNDQ4NTU5ZWJhNjdhY2U4MzE0Y2M2N2NjZDk0LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vcHJvZHVjdHMvY2Fyb3VzZWwvbWF0dHJlc3Nlcy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvNzY4ZTk3Y2ViMDcxODAxZmFlMjA5MTBkMDgyMGIxNmY3NDdhZjkzOS5qcGcud2VicCxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3dlbGxuZXNzLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL2hlYWRwaG9uZXMuanBnLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzg5NTM1YmVlYmUyMGRiYmQ0YTM0NmQ2ZDZiZGZlOTFkOGE4ODRhMjEuanBnLndlYnAsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9hdWRpby5qcGcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9sYXB0b3BzLmpwZyxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy8yMzk3NTY0ZWQ3YTVmZjk0N2U5YjZiMzBlNTRmNDc0OTRiODQxZjg5LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vcHJvZHVjdHMvY2Fyb3VzZWwvY29tcHV0aW5nLmpwZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3Bob25lcy5wbmcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9nYW1pbmcucG5nLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzRmNmM2MjFjYWMwYmMxYTg1ZDU5M2UzNTk0YmE1YjM0OWVmZmQyOTIuanBnLndlYnANClNlYXJjaCBRdWVyeSxFdmVyeXRoaW5nLFRlbGV2aXNpb25zLCJTbmVha2VycywgcnVubmluZyBzaG9lcywgc2FuZGFscyIsQ2xvdGhpbmcsTWF0dHJlc3NlcyxIb21lIEFwcGxpYW5jZXMsV2VhcmFibGVzICYgRml0bmVzcyBUZWNoLEhlYWRwaG9uZXMsSG9tZSBUZWNoLFNwZWFrZXJzLExhcHRvcHMsVGFibGV0cyxDb21wdXRpbmcsUGhvbmVzLEdhbWluZyxDb25zdHJ1Y3Rpb24gVG95cw0KRGlzY291bnQgQW1vdW50LG1pbiA1JSxtaW4gMTAlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUNClByaWNlIFJhbmdlLCwsLCxtaW4gJDQwMCwsLCxtaW4gJDI1LCxtaW4gJDMwMCwsLG1pbiAkMTAwLCwNCkJyYW5kIFNlbGVjdGlvbiwsLCwsLCwsLCwsLCwsLCwNCkZpbHRlciBidXR0b25zLCwsLCwsLCwsLCwsLCwsLA0KMSxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMNCjIsQW1hem9uIGRlYWxzLFVuZGVyICQxMDAwLDUwJSBvZmYsQWRpZGFzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsNTAlIG9mZixBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscw0KMyxPdmVyICQ0MDAsVW5kZXIgJDUwMCxIb2thLE5pa2UsU2FhdHZhLE5pbmphLDQwJSBvZmYsSkxhYiwsSkJMLERlbGwsLEFzdXMsQXBwbGUsQ29uc29sZXMsU3RhciBXYXJzDQo0LFVuZGVyICQxMDAwLDUwJSBvZmYsU2tlY2hlcnMsVW5kZXIgQXJtb3VyLEhlbGl4LFNoYXJrLEdhcm1pbixBbmtlciBTb3VuZGNvcmUsUmluZyxTb25vcyxBcHBsZSxBcHBsZSxUUC1saW5rLFNhbXN1bmcsQWNjZXNzb3JpZXMsVW5kZXIgJDI1DQo1LFVuZGVyICQ1MDAsTEcsQXNpY3MsQ29sdW1iaWEsRHJlYW1DbG91ZCxLZXVyaWcsQXBwbGUsU29ueSxHb3ZlZSxUcmliaXQsTGVub3ZvLFNhbXN1bmcsRWVybyxHb29nbGUsR2FtZXMsVW5kZXIgJDUwDQo2LDUwJSBvZmYsU2Ftc3VuZyxOaWtlLFBhdGFnb25pYSxOZWN0YXIsRGUnTG9uZ2hpLEFtYXpmaXQsQXBwbGUsS2FzYSBzbWFydCxTb255LEFsaWVud2FyZSxUQ0wsTmV0Z2VhcixNb3Rvcm9sYSxOaW50ZW5kbyxCb3RhbmljYWxzDQo3LEFtYXpvbixIaXNlbnNlLE5ldyBCYWxhbmNlLEFyYyd0ZXJ5eCxUZW1wdXItcGVkaWMsRHlzb24sRml0Yml0LEJlYXRzLFBoaWxpcHMgSHVlLEFua2VyLEFjZXIsT25lUGx1cyxEZWxsLE9uZVBsdXMsU29ueSxEaXNuZXkNCjgsQXBwbGUsVENMLEFkaWRhcyxDYXJoYXJ0dCxCZWFyLEJpc3NlbGwsU2Ftc3VuZyxFYXJmdW4sQmxpbmssQmVhdHMsTVNJLE1pY3Jvc29mdCxBY2VyLE5vdGhpbmcsWGJveCxNYXJ2ZWwNCjksLFNvbnksU2F1Y29ueSxUaGUgTm9ydGggRmFjZSxTaWVuYSxOdXRyaWJ1bGxldCxPdXJhLFNhbXN1bmcsR29vZ2xlIE5lc3QgLE1hcnNoYWxsLFNhbXN1bmcsTGVub3ZvLExlbm92bywsLFBva2Vtb24NCjEwLCxSb2t1LEJpcmtlbnN0b2NrLENSWiBZb2dhLFdpbmtCZWRzLEJsYWNrIGFuZCBEZWNrZXIsUmluZ2Nvbm4sQ01GLEV1ZnksU2Ftc3VuZyxNaWNyb3NvZnQsUmVNYXJrYWJsZSxBbGllbndhcmUsLCwNCjExLCwsQnJvb2tzLFRoZSBHeW0gUGVvcGxlLEJyb29rbHluIGJlZGRpbmcsTmVzcHJlc3NvLCwxTW9yZSxBcmxvLCxSYXplciwsQ29yc2FpciwsLA0KMTIsLCxDcm9jcywsRWlnaHQgU2xlZXAsQ3Vpc2luYXJ0LCxKQkwsLCwsLEhQLCwsDQpOb3RlcywsLCwsLCwsLCwsLCwsLCwNCiwsIlByaW9yaXRpc2UgYmlnZ2VzdCAlLyQgZGlzY291bnQsIFR2cyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiB0aGUgbW9zdCBwb3B1bGFyIGV2ZW4gaWYgdGhleSBhcmUgc3RpbGwgZXhwZW5zaXZlIiwiTm8gcGF0dGVybiB0byBwcmljaW5nL2Rpc2NvdW50LCByZWFkZXJzIG1haW5seSBzaG9wIGJ5IGJyYW5kL3JlY29nbmlzYWJsZSBzaG9lcyIsIk5vIHBhdHRlcm4gdG8gcHJpY2luZy9kaXNjb3VudCwgcmVhZGVycyBtYWlubHkgc2hvcCBieSBicmFuZCIsIkEgbGFiZWwgd2lsbCBkZWZpbml0ZWx5IGhlbHAgaGVyZSBlLmcuIGJlc3QgZm9yIHNpZGUgc2xlZXBlciwgYmVzdCBtZW1vcnkgZm9hbSIsIkFwcGxpYW5jZXMgaXMgYSBiaWcgY2F0ZWdvcnksIGlzIGl0IHBvc3NpYmxlIHRvIHNwbGl0IGludG8ga2l0Y2hlbiBhcHBsaWFuY2VzLCBmbG9vcmNhcmUsIGFpciBoZWFsdGgvY29vbGluZz8gT3Igc2ltaWxhciIsIkZvY3VzIG9uIHZhbHVlIGZvciBtb25leSwgR2FybWlucyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiBwb3B1bGFyIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIHN0aWxsICQ1MDAiLCwsLCxJbmNsdWRlIEtpbmRsZXMsSSB3b3VsZCBpbmNsdWRlIHdpZmkgcm91dGVycyBoZXJlIGluc3RlYWQgb2Ygc21hcnQgaG9tZSxDYW4gd2Ugc3VyZmFjZSBwaG9uZSBwcm92aWRlciBkZWFscz8gVC1tb2JpbGUgYW5kIHZlcml6b24gd291bGQgbWFrZSBhIGxvdCBtb3JlIG1vbmV5IHRoYW4gQW1hem9uLCwNCiwsaGF2aW5nIGEgJ2Jlc3QgZm9yJyBsYWJlbCB3b3VsZCBiZSBoZWxwZnVsIGUuZy4gYmVzdCBmb3IgYnJpZ2h0IHJvb20sQ2FuIHdlIHN0b3Aga2lkcyBzaG9lcyBmcm9tIHB1bGxpbmcgdGhyb3VnaD8sIldpbGwgdGhpcyBpbmNsdWRlIGFjY2Vzc29yaWVzIGUuZy4gY2FwcywgYmFncywgaWYgc28gbWFrZSBzdXJlIHRoZXNlIGFyZSBtaXhlZCB0aHJvdWdob3V0IGNsb3RoaW5nIGRlYWxzIixXaWxsIHRoaXMgaW5jbHVkZSB0b3BwZXJzIGFuZCBwaWxsb3dzPyBTZWVpbmcgbW9yZSBtb21lbnR1bSB3aXRoIHRoaXMgY2F0ZWdvcnkgcmVjZW50bHkgc28gYSBiZWRkaW5nIHRhYiBtaWdodCB3b3JrLCwiTmVlZCB0byBtYWtlIHN1cmUgYmFuZHMsIHNjcmVlbiBwcm90ZWN0b3JzIGV0Yy4gZG9uJ3QgcHVsbCBpbnRvIGhlcmUiLCwsLCwsLCwsDQosLCJQcmlvcml0aXNlIDY1JycgYW5kIDU1JyBpbmNoIFRWcywgdGhlbiBiaWdnZXIgc2NyZWVucyBiZWZvcmUgdGhlIHNtYWxsZXIgc2l6ZXMiLCwsUXVlZW4gaXMgdGhlIG1vc3QgcG9wdWxhciBzaXplIGluIHRoZSBVUyAtIHByaW9yaXRpc2UgZGVhbHMgZm9yIHRoaXMgc2l6ZSwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpDYXRlZ29yaWVzIHRvIGNvbnNpZGVyLCxQcm9kdWN0cyBpbmNsdWRlZCwsLCwsLCwsLCwsLCwsDQpVbmRlciAkNTA/LCxBaXIgdGFncywsLCwsLCwsLCwsLCwsDQosLFBvcnRhYmxlIGNoYXJnZXJzL3dpcmVsZXNzIGNoYXJnZXJzLCwsLCwsLCwsLCwsLCwNCiwsIldhdGVyIGJvdHRsZXMgKHN0YW5sZXlzLCBPd2FsYSwgSHlkcm8gZmxhc2ssIFlldGkpIiwsLCwsLCwsLCwsLCwsDQosLEhhbmQgaGVsZCBmYW5zLCwsLCwsLCwsLCwsLCwNCiwsLCwsLCwsLCwsLCwsLCwNCmhvbWUgb2ZmaWNlLCxvZmZpY2UgY2hhaXJzLCwsLCwsLCwsLCwsLCwNCiwsc3RhbmRpbmcgZGVza3MsLCwsLCwsLCwsLCwsLA0KLCxtb25pdG9ycywsLCwsLCwsLCwsLCwsDQosLEtleWJvYXJkcywsLCwsLCwsLCwsLCwsDQosLGRvY2tpbmcgc3RhdGlvbiwsLCwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpHYW1pbmcsLENvbnNvbGVzLCwsLCwsLCwsLCwsLCwNCiwsQWNjZXNzb3JpZXMsLCwsLCwsLCwsLCwsLA0KLCxHYW1lcywsLCwsLCwsLCwsLCwsDQosLENvdWxkIGluY2x1ZGUgTGVnbz8sLCwsLCwsLCwsLCwsLA==")));              const text = preloadedCSV;              const parsed = parseCSV(text);                            const rowsByName = {};              let filterStart = -1;              parsed.forEach((rc, i) => {                 if (rc && rc.length > 0 && rc[0]) rowsByName[rc[0]] = rc;                 if (rc && rc.length > 0 && rc[0] === 'Filter buttons') filterStart = i;              });                            const cols = [];              if(rowsByName['Roundel text']) {                const headerRow = rowsByName['Roundel text'];                for(let col = 1; col < headerRow.length; col++) {                   let label = headerRow[col];                   if (!label) continue;                                      let q = rowsByName['Search Query'] && rowsByName['Search Query'][col] ? rowsByName['Search Query'][col] : '';                   let img = rowsByName['Roundel image'] && rowsByName['Roundel image'][col] ? rowsByName['Roundel image'][col] : '';                   let ds = rowsByName['Discount Amount'] && rowsByName['Discount Amount'][col] ? rowsByName['Discount Amount'][col] : '';                   let pr = rowsByName['Price Range'] && rowsByName['Price Range'][col] ? rowsByName['Price Range'][col] : '';                   let rt = rowsByName['Retailer'] && rowsByName['Retailer'][col] ? rowsByName['Retailer'][col] : '';                   let ot = rowsByName['Offer Type'] && rowsByName['Offer Type'][col] ? rowsByName['Offer Type'][col] : '';                                      let filters = [];                   if(filterStart > 0) {                     for(let r = filterStart + 1; r < parsed.length; r++) {                         if(!parsed[r] || parsed[r][0] === 'Notes' || parsed[r][0] === 'Categories to consider') break;                         let f = parsed[r][col];                         if(f) filters.push(f);                     }                   }                   cols.push({ label, img, q, ds, pr, rt, ot, filters });                }              }              this.carouselData = cols;              if (this.carouselData && this.carouselData.length > 0) {                 const isMatched = this.carouselData.some(c => c.q === this.currentQuery || c.label === this.currentQuery);                 if (!isMatched) {                    const first = this.carouselData[0];                    this.currentQuery = first.q || first.label;                    if (this.priceFilter) this.priceFilter.value = 'all';                    if (this.customPriceMin) this.customPriceMin.value = '';                    if (this.customPriceMax) this.customPriceMax.value = '';                    let dPr = first.pr || 'all';                    if (typeof dPr === 'string' && dPr !== 'all') {                       let prLower = dPr.toLowerCase();                       if (prLower.includes('min') || prLower.includes('over')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else if (prLower.includes('max') || prLower.includes('under')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       }                    }                    let dAm = '0';                    if(first.ds && typeof first.ds === 'string') {                       let m = first.ds.match(/(\d+)/);                       if(m) dAm = m[1];                    }                    if (this.discountFilter) this.discountFilter.value = dAm;                    if (this.offerTypeSelect) this.offerTypeSelect.value = first.ot || '';                    if (this.retailerSelect) this.retailerSelect.value = first.rt || '';                    this.selectedBrands = [];                    if (this.brandDropdown) {                        const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                        chks.forEach(chk => chk.checked = false);                    }                    if (this.searchInput) this.searchInput.value = this.currentQuery;                 }              }              this.renderCarouselUI();          } catch(e){ console.warn(e); }        }                renderCarouselUI() {           const roundelWrapper = this.root.querySelector('.tg-df-carousel-roundels');           if(!roundelWrapper || !this.carouselData) return;                      let html = '';           this.carouselData.forEach(r => {              const q = r.q || r.label;              const isActive = (this.currentQuery === q || this.currentQuery === r.label) ? 'active' : '';              const imgHtml = r.img ? `\x3Cimg src="${r.img}" alt="${r.label}" />` : `\x3Csvg width="32" height="32" fill="#1F69FF" viewBox="0 0 24 24">\x3Cpath d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\x3C/svg>`;              html += `                \x3Cdiv class="tg-df-roundel tg-df-carousel-cat ${isActive}" data-label="${this.escapeHTML(r.label)}">                  \x3Cdiv class="tg-df-roundel-img-box">${imgHtml}\x3C/div>                  \x3Cspan class="tg-df-roundel-label">${this.escapeHTML(r.label)}\x3C/span>                \x3C/div>              `;           });           roundelWrapper.innerHTML = html;                      // Rebind clicks           const roundels = this.root.querySelectorAll('.tg-df-carousel-cat');           roundels.forEach(rNode => {             rNode.addEventListener('click', () => {                const r = this.carouselData.find(c => c.label === rNode.getAttribute('data-label'));                 if(!r) return;                                  if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: r.label,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = r.q || r.label;                const labelTitle = this.root.querySelector('#tg-df-carousel-title-label');                if (labelTitle) labelTitle.textContent = 'Best ' + this.currentQuery;                if (this.priceFilter) this.priceFilter.value = 'all';                if (this.customPriceMin) this.customPriceMin.value = '';                if (this.customPriceMax) this.customPriceMax.value = '';                let dPr = r.pr || 'all';                if (typeof dPr === 'string' && dPr !== 'all') {                   let prLower = dPr.toLowerCase();                   if (prLower.includes('min') || prLower.includes('over')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMin) this.customPriceMin.value = m[1];                   } else if (prLower.includes('max') || prLower.includes('under')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMax) this.customPriceMax.value = m[1];                   }                }                                let discountAmount = '0';                if(r.ds && typeof r.ds === 'string') {                   let m = r.ds.match(/(\d+)/);                   if(m) discountAmount = m[1];                }                if (this.discountFilter) this.discountFilter.value = discountAmount;                if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                                // Clear brands                    this.selectedBrands = [];                    if (this.brandDropdown) {                    const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                    chks.forEach(chk => chk.checked = false);                }                                if (this.searchInput) this.searchInput.value = this.currentQuery;                                roundels.forEach(ro => ro.classList.remove('active'));                if (rNode) rNode.classList.add('active');                                this.renderCarouselFilters(r);                this.fetchDeals(this.currentQuery);             });           });                      // Auto-highlight active           const activeR = this.carouselData.find(c => c.q === this.currentQuery || c.label === this.currentQuery);           if(activeR) this.renderCarouselFilters(activeR);        }                renderCarouselFilters(r) {           const filtersWrap = this.root.querySelector('.tg-df-carousel-filters-wrap');           if(!filtersWrap) return;                      let html = `\x3Cbutton class="tg-df-carousel-filter-btn" data-type="all">All\x3C/button>`;                      r.filters.forEach(f => {              let fL = f.toLowerCase();              let icon = '';              let logic = `data-type="custom" data-v="${this.escapeHTML(f)}"`;              if (fL === 'amazon deals' || fL === 'prime deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>`;              } else if (fL === 'lightning deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>`;              } else {                 if (fL.includes('lightning')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap">\x3Cpolygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2">\x3C/polygon>\x3C/svg>`;                 } else if (fL.includes('% off')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>`;                 } else if (fL.includes('under') || fL.includes('min ')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>`;                 }                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>${icon} ${this.escapeHTML(f)}\x3C/button>`;              }           });                      filtersWrap.innerHTML = html;                      const btns = filtersWrap.querySelectorAll('button');           btns.forEach(b => {             b.addEventListener('click', () => {                const type = b.getAttribute('data-type');                if (type === 'custom') {                   const v = b.getAttribute('data-v');                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-custom-${(v||'').toLowerCase().replace(/[^a-z0-9]+/g, '-')}`, name: 'Custom Filter', label: v });                }                if (type === 'all') {                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: 'filter-clear-all', name: 'Clear all', label: 'Clear all filters' });                   // reset everything                   btns.forEach(btn => btn.classList.remove('active'));                   b.classList.add('active');                                      // Reset prices                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   if (this.brandDropdown) {                     const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                     chks.forEach(chk => chk.checked = false);                   }                } else {                   const v = b.getAttribute('data-v');                   const fL = v.toLowerCase();                                      let mapRet = ['amazon', 'walmart', 'best buy', 'target', 'john lewis', 'currys', 'argos'];                   const getCategory = (s) => {                      if (s === 'lightning deals' || s === 'amazon deals' || s === 'prime deals') return 'offer';                      if (s.includes('% off')) return 'discount';                      if (s.includes('under') || s.includes('over') || s.includes('min') || s.includes('max')) return 'price';                      if (mapRet.includes(s)) return 'retailer';                      return 'brand';                   };                   const cat = getCategory(fL);                   const wasActive = b.classList.contains('active');                   if (cat !== 'brand') {                      btns.forEach(btn => {                          if (btn === b) return;                          if (btn.getAttribute('data-type') === 'all') return;                          const bV = btn.getAttribute('data-v');                          if (!bV) return;                          if (getCategory(bV.toLowerCase()) === cat) btn.classList.remove('active');                      });                   }                   if (wasActive) b.classList.remove('active');                   else b.classList.add('active');                   let anyActive = Array.from(btns).some(btn => btn !== btns[0] && btn.classList.contains('active'));                   if (!anyActive) {                       btns[0].click();                       return;                   } else {                       btns[0].classList.remove('active');                   }                                      if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   btns.forEach(btn => {                       if (!btn.classList.contains('active') || btn.getAttribute('data-type') === 'all') return;                       const vv = btn.getAttribute('data-v');                       const vl = vv.toLowerCase();                                              if (vl === 'lightning deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_lightning';                       } else if (vl === 'amazon deals' || vl === 'prime deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_prime';                       } else if (vl.includes('% off')) {                          let m = vl.match(/(\d+)%/);                          if (m && this.discountFilter) this.discountFilter.value = m[1];                       } else if (vl.includes('under') || vl.includes('max')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       } else if (vl.includes('min') || vl.includes('over')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else {                          let foundR = mapRet.find(x => x === vl);                          if (foundR) {                             let realR = ['Amazon', 'Walmart', 'Best Buy', 'Target', 'John Lewis', 'Currys', 'Argos'].find(x => x.toLowerCase() === vl);                             if (this.retailerSelect) this.retailerSelect.value = realR;                          } else {                             this.selectedBrands.push(vv);                          }                       }                   });                                      if (this.brandDropdown) {                       const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                       chks.forEach(c => c.checked = this.selectedBrands.includes(c.value));                   }                                      if (r.pr && typeof r.pr === 'string') {                       let prL = r.pr.toLowerCase();                       if (prL.includes('under $')) {                           let m = prL.match(/under \$(\d+)/i);                           if (m && this.customPriceMax && !this.customPriceMax.value) this.customPriceMax.value = m[1];                       }                   }                }                                this.fetchDeals(this.currentQuery);             });           });                      // default to highlighting first           btns[0].classList.add('active');        }async fetchDeals(query, append = false) {          if (!append) {             this.showLoading();             this.deals = [];             this.displayLimit = (this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12;          } else {             this.displayLimit += (this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12;          }                    try {            if (this.getViewMode() === 'savings_squad') {               await this.fetchSavingsSquad(append);            } else {               if (this.isBroadQuery(query)) {                 await this.fetchAdviserDeals(query, append);               } else {                 await this.fetchHawkDeals(query, append);                 if (this.deals.length === 0) {                   await this.fetchAdviserDeals(query, append);                 }               }            }          } catch (error) {            console.warn("[Tom's Guide Widget] Fetch error:", error);            this.showError();          }        }        async fetchSavingsSquad() {          let topArticles = this.airedaleArticles;          if (!topArticles) {            const airedaleUrl = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`;            let res;            try {               res = await fetch(airedaleUrl);            } catch(e) {               try { res = await fetch(`https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`); } catch (err) { console.warn("Fallback fetch failed", err); return; }            }            if (!res.ok) throw new Error('Airedale API Error');            const articles = await res.json();            topArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);            this.airedaleArticles = topArticles;                        let tagCounts = {};            topArticles.forEach((a) => {              let articleTags = new Set();              if (a.articlecategory && Array.isArray(a.articlecategory)) {                 a.articlecategory.forEach((t) => articleTags.add(t));              }              articleTags.forEach(t => {                 tagCounts[t] = (tagCounts[t] || 0) + 1;              });            });                        this.airedaleTags = Object.keys(tagCounts).sort((a, b) => tagCounts[b] - tagCounts[a]);            this.airedaleTagCounts = tagCounts;          }                    let targetArticles = topArticles;          if (this.activeDealTag) {             const cleanTag = this.activeDealTag.toLowerCase().replace(/&/g, '').replace(/[^a-z0-9]+/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');             const encodedTag = encodeURIComponent(cleanTag);             const url = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50&articleCategoryHandle=${encodedTag}`;             try {                const res = await fetch(url);                if (res.ok) {                   const articles = await res.json();                   targetArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);                }             } catch(e) {                console.warn("Failed to fetch by activeDealTag", e);             }          }          let extractedDeals = [];          let dynamicBrandsCounts = {};                    targetArticles.forEach((article) => {             if (!article.articlepage) return;                          let pageData = [];             try {                pageData = JSON.parse(article.articlepage[0]);             } catch(e){ console.warn(e); }                          const savingsSquad = pageData.filter((p) => p.type === 'deal' || p.type === 'featured-product');                          savingsSquad.forEach((block, idx) => {                const data = block.data || {};                const isFeatured = block.type === 'featured-product';                                const link = data.link || {};                const priceObj = data.price || {};                const image = data.image || {};                                if (data.brand) {                   data.brand = data.brand.replace(/^\d+\.\s*/, '').trim();                   dynamicBrandsCounts[data.brand] = (dynamicBrandsCounts[data.brand] || 0) + 1;                }                const externalUrl = isFeatured ? data.url : (link.href || null);                let summaryTitle = isFeatured ? (data.name || data.brand) : (data.productName || link.label || article.articlename);                let description = isFeatured ? (data.strapline || '') : (data.text || '');                                if (!isFeatured && !data.productName && data.text) {                   const brSplit = data.text.split(new RegExp('\x3Cbr\\s*\\/?\\x3E', 'i'));                   if (brSplit.length > 1) {                     summaryTitle = brSplit[0].replace(/<[^>]+>/g, '').trim();                     description = brSplit.slice(1).join(' ').replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').trim();                   } else {                     const match = data.text.match(/\x3Cstrong>(.*?)<\/strong>/);                     if (match) {                       summaryTitle = match[1].replace(/<[^>]+>/g, '').trim();                       if (summaryTitle.endsWith(':')) summaryTitle = summaryTitle.slice(0, -1);                     }                   }                }                                let imageUrl = isFeatured ? image.mos : (image.src || null);                if (imageUrl && imageUrl.startsWith('//')) imageUrl = 'https:' + imageUrl;                                description = description.replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').replace(/View Deal$/i, '').trim();                                let merchantName = data.retailer || '';                if (!merchantName && externalUrl) {                   try {                     merchantName = new URL(externalUrl).hostname.replace('www.', '').split('.')[0];                     merchantName = merchantName.charAt(0).toUpperCase() + merchantName.slice(1);                   }catch(e){ console.warn(e); }                }                if (!merchantName) merchantName = 'Retailer';                const q = (this.currentQuery || '').toLowerCase();                const activeTagLogic = (this.activeDealTag || '').toLowerCase();                if (q.length > 2 && q !== activeTagLogic) {                   const searchTarget = `${summaryTitle || ''} ${description || ''}`.toLowerCase();                   if (!searchTarget.includes(q)) return;                }                let rawPrice = 0;                let rawMsrp = 0;                let currencyStr = '$';                if (isFeatured) {                   rawPrice = typeof data.salePrice === 'number' && data.salePrice > 0 ? data.salePrice : (typeof data.price === 'number' ? data.price : 0);                   rawMsrp = typeof data.salePrice === 'number' && typeof data.price === 'number' && data.price > data.salePrice ? data.price : 0;                   currencyStr = data.currency === 'GBP' ? '£' : '$';                } else {                   rawPrice = priceObj.amount ? parseFloat(priceObj.amount) : 0;                   rawMsrp = priceObj.amountWas ? parseFloat(priceObj.amountWas) : 0;                   currencyStr = priceObj.currency === 'GBP' ? '£' : '$';                }                                let savingAmt = 0;                let savingLabel = '';                if (rawPrice > 0 && rawMsrp > rawPrice) {                   savingAmt = parseFloat((rawMsrp - rawPrice).toFixed(2));                   savingLabel = `Save ${currencyStr}${savingAmt}`;                }                                // Apply Brand filter                if (this.selectedBrands && this.selectedBrands.length > 0) {                   const itemBrand = (data.brand || '').toLowerCase();                   const hasMatch = this.selectedBrands.some(sb => sb.toLowerCase() === itemBrand);                   if (!hasMatch) return;                }                // Apply Price filter                let priceFilterVal = null;                const min = this.customPriceMin ? this.customPriceMin.value : '';                const max = this.customPriceMax ? this.customPriceMax.value : '';                if (min || max) {                   priceFilterVal = `${min}_${max}`;                } else if (this.priceFilter && this.priceFilter.value !== 'all') {                   priceFilterVal = this.priceFilter.value;                }                if (priceFilterVal && rawPrice > 0) {                   if (priceFilterVal === 'under50' && rawPrice >= 50) return;                   if (priceFilterVal === 'over50' && rawPrice <= 50) return;                   if (priceFilterVal === 'over30' && rawPrice <= 30) return;                   if (priceFilterVal === 'over500' && rawPrice <= 500) return;                   if (priceFilterVal.includes('_')) {                      const parts = priceFilterVal.split('_');                      const min = parseFloat(parts[0]);                      const max = parseFloat(parts[1]);                      if (!isNaN(min) && rawPrice < min) return;                      if (!isNaN(max) && rawPrice > max) return;                   }                }                // Apply Discount filter                if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {                   const requiredDiscount = parseInt(this.discountFilter.value);                   if (!isNaN(requiredDiscount) && requiredDiscount > 0) {                      if (!rawMsrp || rawMsrp <= rawPrice) return;                      const ratio = Math.round((1 - (rawPrice / rawMsrp)) * 100);                      if (ratio < requiredDiscount) return;                   }                }                                extractedDeals.push({                   id: `airedale-${article.id || Math.random()}-${idx}`,                   url: externalUrl,                   image: imageUrl,                   fallbackImage: imageUrl,                   title: summaryTitle,                   brand: data.brand || '',                   productName: data.productName || '',                   merchant: merchantName,                   rawPrice: rawPrice,                   rawMsrp: rawMsrp,                   price: rawPrice > 0 ? rawPrice.toString() : '',                   msrp: rawMsrp > 0 ? rawMsrp.toString() : '',                   currency: currencyStr,                   isCheckPrice: !rawPrice,                   savingLabel: savingLabel,                   savingType: rawMsrp > rawPrice ? 'amount' : 'none',                   isPrime: false,                   starRating: null,                   description: description,                   text: data.text || ''                });             });          });                    const airedaleBrandsList = Object.keys(dynamicBrandsCounts).map(b => ({              formatted_value: b,              count: dynamicBrandsCounts[b]          })).sort((a,b) => b.count - a.count);                    if (this.getViewMode() === 'savings_squad') {             this.populateBrandDropdown(airedaleBrandsList.slice(0, 15));             if (this.brandFilterWrapper) {                if (airedaleBrandsList.length === 0) {                    this.brandFilterWrapper.style.display = 'none';                } else {                    this.brandFilterWrapper.style.display = 'flex';                }             }          }                    this.deals = extractedDeals;          this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        isBroadQuery(query) {          const q = query.toLowerCase();          const intentModifiers = ['deals', 'best', 'sale', 'under', 'cheap', 'offers', 'discount'];          return intentModifiers.some(term => q.includes(term));        }        async fetchHawkDeals(query, append = false) {          const url = new URL(this.apiUrl);          url.searchParams.append('model_name', query);          const areaCode = this.getAreaCode();          if (areaCode) {            url.searchParams.append('area', areaCode);          }                    if (append && this.deals.length > 0) {            url.searchParams.append('offset', this.deals.length.toString());          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.append('filter_merchant_name', this.retailerSelect.value);          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.append('filter_label[text_brand]', this.selectedBrands.join(','));          }                    let priceVal = null;          const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             priceVal = `${min}_${max}`;          } else if (this.priceFilter && this.priceFilter.value !== 'all') {             priceVal = this.priceFilter.value;          }          if (priceVal) {            if (priceVal === 'under50') {              url.searchParams.append('filter_max_price', '50');            } else if (priceVal === 'over50') {              url.searchParams.append('filter_min_price', '50');            } else if (priceVal === 'over30') {              url.searchParams.append('filter_min_price', '30');            } else if (priceVal === 'over500') {              url.searchParams.append('filter_min_price', '500');            } else if (priceVal.includes('_')) {              const parts = priceVal.split('_');              if (parts[0]) url.searchParams.append('filter_min_price', parts[0]);              if (parts[1]) url.searchParams.append('filter_max_price', parts[1]);            }          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {              const ratio = (100 - v) / 100;              url.searchParams.append('min_discount_ratio', ratio.toString());            }          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.append('offer', this.offerTypeSelect.value);          }                    url.searchParams.append('filter_product_types', 'deals');                    if (this.rowsSelect && this.rowsSelect.value) {            url.searchParams.append('rows', this.rowsSelect.value);          } else {             url.searchParams.append('rows', '12'); // default          }          let response;          try {             response = await fetch(url.toString());          } catch(e) {             if (window.location.protocol === 'file:') {                console.warn("[Tom's Guide Widget] fetch from file:// blocked by local CORS policy, falling back to Adviser mock.");                await this.fetchAdviserDeals(query);                return;             }             console.warn("Hawk fetch failed", e);             this.deals = [];             this.render();             return;          }          if (!response.ok) {            throw new Error('Hawk API Response Error');          }          const rawData = await response.json();          // Safely locate data array from potentially wrapped response          let offers = [];          let modelInfoArray = [];                    let brandFilterData = null;          if (rawData && rawData.widget && rawData.widget.data && Array.isArray(rawData.widget.data.filters)) {             brandFilterData = rawData.widget.data.filters.find(f => f.type === 'label_text_brand');          } else if (rawData && rawData.data && Array.isArray(rawData.data.filters)) {             brandFilterData = rawData.data.filters.find(f => f.type === 'label_text_brand');          }          if (brandFilterData && Array.isArray(brandFilterData.values) && brandFilterData.values.length > 0) {             this.populateBrandDropdown(brandFilterData.values);          } else {             if (this.brandFilterWrapper && this.selectedBrands.length === 0) {                this.brandFilterWrapper.style.display = 'none';             }          }                    if (rawData && rawData.widget && rawData.widget.data) {            if (Array.isArray(rawData.widget.data.offers)) offers = rawData.widget.data.offers;            if (rawData.widget.data.model_info && typeof rawData.widget.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.widget.data.model_info) ? rawData.widget.data.model_info : Object.values(rawData.widget.data.model_info);            }          } else if (rawData && rawData.data) {            if (Array.isArray(rawData.data.offers)) offers = rawData.data.offers;            if (rawData.data.model_info && typeof rawData.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.data.model_info) ? rawData.data.model_info : Object.values(rawData.data.model_info);            }          } else {            if (Array.isArray(rawData)) offers = rawData;            else if (rawData && Array.isArray(rawData.offers)) offers = rawData.offers;            else if (rawData && rawData.offers && Array.isArray(rawData.offers.offer)) offers = rawData.offers.offer;            else if (rawData && rawData.offers) offers = [].concat(rawData.offers);                        if (rawData && rawData.model_info && typeof rawData.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.model_info) ? rawData.model_info : Object.values(rawData.model_info);            }          }          let modelDetails = {};          modelInfoArray.forEach(m => {            const mId = m.model_id || m.id;            if (mId) {              modelDetails[mId] = {                score: m.score != null ? parseFloat(m.score) : null,                brand: m.brand || null,                parent: (m.parents && Array.isArray(m.parents) && m.parents.length > 0) ? m.parents[0].name : null              };            }          });          offers.forEach(item => {            let data = { ...item };            const mId = data.model_id;            if (mId && modelDetails[mId]) {              data.review_score = modelDetails[mId].score;              data.model_brand = modelDetails[mId].brand;              data.model_parent = modelDetails[mId].parent;            } else {              data.review_score = null;            }                        let itemOffers = [];            if (Array.isArray(item.offers)) itemOffers = item.offers;            else if (Array.isArray(item.offer)) itemOffers = item.offer;            else if (item.offers && typeof item.offers === 'object') itemOffers = [item.offers];            else if (item.offer && typeof item.offer === 'object') itemOffers = [item.offer];            if (itemOffers.length > 0) {              itemOffers.forEach(subItem => {                let subData = { ...item, ...subItem };                const subId = subData.model_id;                if (subId && modelDetails[subId]) {                  subData.review_score = modelDetails[subId].score;                  subData.model_brand = modelDetails[subId].brand;                  subData.model_parent = modelDetails[subId].parent;                } else if (data.review_score != null) {                  subData.review_score = data.review_score;                }                if (subData.merchant && typeof subData.merchant === 'object') {                  subData.merchant_name = subData.merchant.name;                }                this.deals.push(this.extractDealData(subData));              });              return;            }                        if (item.merchant && typeof item.merchant === 'object') {              data.merchant_name = item.merchant.name;            }                        this.deals.push(this.extractDealData(data));          });                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        async fetchAdviserDeals(query) {          // ======================================================================          // TODO: ADVISER API REPLACEMENT          // The code below simulates the Adviser API response using mock data.          // Once the real endpoint is ready, remove getAdviserMockData() and           // perform an actual fetch() request similar to fetchHawkDeals().          // Example:          // const area = this.getAreaCode();          // let apiUrl = `https://your-adviser-api.com/search?q=${query}&area=${area}`;          // if (this.priceFilter && this.priceFilter.value !== 'all') {          //   const val = this.priceFilter.value;          //   if (val === 'under50') apiUrl += '&filter_max_price=50';          //   else if (val === '50_100') apiUrl += '&filter_max_price=100';          //   else if (val === '100_200') apiUrl += '&filter_max_price=200';          //   else if (val === '200_500') apiUrl += '&filter_max_price=500';          // }          // const res = await fetch(apiUrl);          // const rawData = await res.json();          // ======================================================================          // Simulating network latency          await new Promise(resolve => setTimeout(resolve, 400));                    const rawData = this.getAdviserMockData();          let offers = [];                    if (rawData && rawData.data && rawData.data.Get && Array.isArray(rawData.data.Get.Deal)) {            offers = rawData.data.Get.Deal;          }                    // Basic client-side filtering for the mock if we want it to react to the query          const q = query.toLowerCase();          const selectedRetailer = (this.retailerSelect && this.retailerSelect.value) ? this.retailerSelect.value.toLowerCase() : null;                    offers.forEach(item => {            const dataObj = item;                        // Apply retailer filter            const itemRetailer = (dataObj.dataRetailer || '').toLowerCase();            if (selectedRetailer && itemRetailer !== selectedRetailer && !itemRetailer.includes(selectedRetailer)) {              return;            }                        // Apply mock price filter            let price = dataObj.dataDiscountedPrice || 0;            if (typeof price === 'string') {              price = parseFloat(price.replace(/[^0-9.]/g, ''));            }            let priceVal = null;            const min = this.customPriceMin ? this.customPriceMin.value : '';            const max = this.customPriceMax ? this.customPriceMax.value : '';            if (min || max) {               priceVal = `${min}_${max}`;            } else if (this.priceFilter && this.priceFilter.value !== 'all') {               priceVal = this.priceFilter.value;            }            if (priceVal) {              if (priceVal === 'under50' && price >= 50) return;              if (priceVal === 'over50' && price <= 50) return;              if (priceVal === 'over30' && price <= 30) return;              if (priceVal === 'over500' && price <= 500) return;              if (priceVal.includes('_')) {                 const parts = priceVal.split('_');                 if (parts[0] && price < parseFloat(parts[0])) return;                 if (parts[1] && price > parseFloat(parts[1])) return;              }            }                        // Map Adviser schema to our widget's expected schema            const mappedData = {              url: dataObj.linkHREF || dataObj.dataLink || '#',              image: dataObj.imageURL || (dataObj.image && dataObj.image.src) || '',              title: dataObj.dataProduct || (dataObj.product && dataObj.product.name) || 'Product Deal',              merchant: dataObj.dataRetailer || 'Retailer',              price: dataObj.dataDiscountedPrice || 0,              currency: dataObj.dataCurrency === 'USD' ? '$' : (dataObj.dataCurrency || '$'),              msrp: dataObj.dataOriginalPrice || null            };                        const titleLow = mappedData.title.toLowerCase();            const merchLow = mappedData.merchant.toLowerCase();                        // Smarter mock filtering            let isMatch = false;            if (q === '' || this.isBroadQuery(q)) {              isMatch = true;            } else if (titleLow.includes(q) || merchLow.includes(q)) {              isMatch = true;            } else if ((q.includes('laptop') || q.includes('mac') || q.includes('pc')) && (titleLow.includes('macbook') || titleLow.includes('laptop'))) {              isMatch = true;            } else if ((q.includes('tv') || q.includes('television')) && (titleLow.includes('tv') || titleLow.includes('oled') || titleLow.includes('qled'))) {              isMatch = true;            } else if ((q.includes('phone') || q.includes('smartphone')) && (titleLow.includes('galaxy') || titleLow.includes('phone'))) {              isMatch = true;            } else if ((q.match(/watch|fitness|run|shoe/)) && (titleLow.includes('forerunner') || titleLow.includes('saucony') || titleLow.includes('watch'))) {              isMatch = true;            }                        if (isMatch) {               this.deals.push(this.extractDealData(mappedData));            }          });                    let rowLimit = 12;          if (this.rowsSelect && this.rowsSelect.value) {            rowLimit = parseInt(this.rowsSelect.value, 10) || 12;          }          // Intentionally omitting the slice here to allow "Load More" to work if the API returns more                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        getAdviserMockData() {          return {            "data": {              "Get": {                "Deal": [                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 300,                    "dataOriginalPrice": 399,                    "dataProduct": "Samsung Galaxy A36",                    "dataRetailer": "Samsung",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/MqDYsukV3JBG54te6dEs7j.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 14,                    "dataOriginalPrice": 24,                    "dataProduct": "Blink Mini",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/3JurmAjHsDa5tPdaHAwEV8.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 59,                    "dataOriginalPrice": 99,                    "dataProduct": "Ring Video Doorbell",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/rAh4uR7AsAsALCCLTXnLNJ.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 10,                    "dataOriginalPrice": 599,                    "dataProduct": "MacBook Neo",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/Lg4Dvg68j9SbB5CPNrTEpH.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 749,                    "dataOriginalPrice": 849,                    "dataProduct": "65\\\" Fire TV Omni 4K QLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/SG34ZWodUkLTxJvMTbjPYR.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 71,                    "dataOriginalPrice": 160,                    "dataProduct": "Saucony Hurricane 24",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/vxf7UD5T2Am7guVzFoFcZ4.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 649,                    "dataOriginalPrice": 749,                    "dataProduct": "Garmin Forerunner 970",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/3GKnEu7CdhtxPMfnPCMCiA.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1049,                    "dataOriginalPrice": 1499,                    "dataProduct": "LG 48\\\" C4 4K OLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/imvwZV9zoMD6fn9Afuge35.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1499,                    "dataOriginalPrice": 2199,                    "dataProduct": "Samsung 49\\\" Odyssey Neo G9 4K Gaming Monitor",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/XWDEJ5dUAE2nhK8k3Jk7k7.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 299,                    "dataOriginalPrice": 699,                    "dataProduct": "EGOHOME Black Memory Foam Mattress (queen)",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/hMUemtAejNETLVYxNrktzm.jpg"                  }                ]              }            }          };        }        decodeHTML(html) {          if (!html) return '';          const txt = document.createElement("textarea");          txt.innerHTML = String(html);          return txt.value;        }        extractDealData(item) {          const priceRawStr = String(item.price || item.current_price || '0');          const msrpRawStr = String(item.was_price || item.msrp || item.original_price || '0');          const rawPrice = parseFloat(priceRawStr.replace(/[^\d.]/g, '')) || 0;          const rawMsrp = parseFloat(msrpRawStr.replace(/[^\d.]/g, '')) || 0;          const isCheckPrice = rawPrice === 0 || priceRawStr === '0.00' || priceRawStr === '0';                    let originalImageUrl = item.image || item.image_url || item.product_image || '';          let imageUrl = originalImageUrl;          if ((!imageUrl || isCheckPrice) && item.model_image_url) {             imageUrl = item.model_image_url;             originalImageUrl = imageUrl;          } else if ((!imageUrl || isCheckPrice) && item.model_image) {             imageUrl = item.model_image;             originalImageUrl = imageUrl;          }                    if (imageUrl) {            imageUrl = imageUrl.replace(/-(\d+)-(\d+)(\.[a-z.]+)$/i, '$3');          }                    let fallbackImage = '';          if (originalImageUrl && originalImageUrl !== imageUrl) {             fallbackImage = originalImageUrl;          } else if (item.model_image && item.model_image !== imageUrl) {             fallbackImage = item.model_image;          } else if (item.model_image_url && item.model_image_url !== imageUrl) {             fallbackImage = item.model_image_url;          }                    const rawCurrency = item.currency || item.currency_symbol || '$';                    let savingLabel = item.percentage_saving_label || '';          if (!savingLabel && rawMsrp > rawPrice && rawPrice > 0) {            const pct = Math.round(((rawMsrp - rawPrice) / rawMsrp) * 100);            if (pct > 0) {              savingLabel = `${pct}% OFF`;            }          }                    const isPrime = item.shipping && item.shipping.prime === true;                    let scoreRaw = (item.review_score !== undefined && item.review_score !== null && item.review_score > 0) ? parseFloat(item.review_score) : null;          let starRating = 0;          if (scoreRaw !== null) {            starRating = Math.round((scoreRaw > 10 ? scoreRaw / 20 : scoreRaw / 2) * 2) / 2;          }                    return {            id: item.offer_id || item.link || item.url || item.offer_link || Math.random().toString(),            url: item.link || item.url || item.offer_link || '#',            image: imageUrl,            fallbackImage: fallbackImage,            title: item.name || item.title || item.model_name || item.product_name || 'Unknown Product',            brand: item.brand || '',            productName: item.model_name || item.product_name || item.name || '',            merchant: item.merchant_name || item.merchant || item.retailer || 'Retailer',            price: item.price !== undefined ? String(item.price) : '0.00',            currency: this.decodeHTML(rawCurrency),            msrp: item.was_price || item.msrp || item.original_price || null,            rawPrice: rawPrice,            rawMsrp: rawMsrp,            hasWasPrice: (item.was_price !== undefined && item.was_price !== null),            isCheckPrice: isCheckPrice,            savingLabel: savingLabel,            isPrime: isPrime,            starRating: starRating > 0 ? starRating : null,            modelId: item.model_id || '',            productKey: item.product_key || '',            merchantId: (item.merchant && typeof item.merchant === 'object') ? item.merchant.id || '' : '',            matchId: item.match_id || '',            merchantNetwork: (item.merchant && typeof item.merchant === 'object') ? item.merchant.an || '' : '',            merchantUrl: (item.merchant && typeof item.merchant === 'object') ? item.merchant.url || '' : '',            modelBrand: item.model_brand || item.brand || '',            modelParent: item.model_parent || ''          };        }        sortData() {          const sortVal = this.sortSelect ? this.sortSelect.value : (this.getViewMode() === 'savings_squad' ? 'date_desc' : 'discount_desc');          if (sortVal === 'price_asc') {            this.deals.sort((a, b) => a.rawPrice - b.rawPrice);          } else if (sortVal === 'price_desc') {            this.deals.sort((a, b) => b.rawPrice - a.rawPrice);          } else if (sortVal === 'discount_desc') {            this.deals.sort((a, b) => {              const aDiscount = a.rawMsrp > a.rawPrice ? (a.rawMsrp - a.rawPrice) : 0;              const bDiscount = b.rawMsrp > b.rawPrice ? (b.rawMsrp - b.rawPrice) : 0;              return bDiscount - aDiscount;            });          } else if (sortVal === 'date_desc') {             this.deals.sort((a, b) => {                let dateA = 0;                let dateB = 0;                if (a && a.modifiedDate) {                   const valA = Array.isArray(a.modifiedDate) ? a.modifiedDate[0] : a.modifiedDate;                   dateA = new Date(valA).getTime();                   if (isNaN(dateA)) dateA = 0;                }                if (b && b.modifiedDate) {                   const valB = Array.isArray(b.modifiedDate) ? b.modifiedDate[0] : b.modifiedDate;                   dateB = new Date(valB).getTime();                   if (isNaN(dateB)) dateB = 0;                }                return dateB - dateA;             });          }        }        getFilteredDeals() {          let filteredDeals = [...this.deals];                    if (this.dealModeToggle && this.dealModeToggle.checked) {            filteredDeals = filteredDeals.filter(d => d.hasWasPrice || (d.msrp && d.rawMsrp > d.rawPrice));          }                    return filteredDeals;        }        showLoading() {          const _div = '<' + '/div>';          const skeletonCardHtml = `            \x3Cdiv class="tg-df-card">              \x3Cdiv class="tg-df-card-image-box">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-img">${_div}              ${_div}              \x3Cdiv class="tg-df-card-body">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-card-footer mt-auto">                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="height:24px;">${_div}                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text" style="height:44px; margin-top:8px;">${_div}                ${_div}              ${_div}            ${_div}`;          this.grid.innerHTML = Array(4).fill(skeletonCardHtml).join('');        }        showError() {          const _div = '<' + '/div>';          this.grid.innerHTML = `\x3Cdiv class="tg-df-message">            An error occurred while finding deals. Please check your connection and try again.          ${_div}`;        }        escapeHTML(str) {          if (!str) return '';          return String(str).replace(/[&<>'"]/g, tag => ({              '&': '&', '<': '<', '>': '>', "'": ''', '"': '"'          }[tag] || tag));        }                bindCouponButtons() {          const btns = this.root.querySelectorAll('.tg-df-tag-coupons');          btns.forEach(btn => {            btn.addEventListener('click', (e) => {              e.preventDefault();              e.stopPropagation();              const merchant = btn.getAttribute('data-merchant');              this.openVouchersModal(merchant);            });          });                    const closeBtn = this.root.querySelector('#tg-df-vouchers-close');          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (closeBtn) {            closeBtn.onclick = () => this.closeVouchersModal();          }          if (backdrop) {            backdrop.onclick = (e) => {              if (e.target === backdrop) this.closeVouchersModal();            };          }        }                closeVouchersModal() {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (backdrop) backdrop.classList.remove('active');        }                async checkMerchantsCouponsBulk(merchants) {          if (!merchants || merchants.length === 0) return {};          const controller = new AbortController();          const timeoutId = setTimeout(() => controller.abort(), 4000);          try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchants.join(','));            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '120');            url.searchParams.append('origin', 'widgets-clientside');                        let res; try { res = await fetch(url.toString(), { signal: controller.signal }); } catch (e) { return {}; }            clearTimeout(timeoutId);            if (!res.ok) return {};            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        const foundMerchants = new Set();            offers.forEach(o => {              let mName = o.merchant_name || o.merchant || o.retailer;              if (mName && typeof mName === 'object') mName = mName.name;              if (mName) foundMerchants.add(String(mName).toLowerCase());            });            const resultMap = {};            merchants.forEach(m => {              if (m) resultMap[m] = foundMerchants.has(String(m).toLowerCase());            });            return resultMap;          } catch (e) {            return {};          }        }                async openVouchersModal(merchantName) {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          const title = this.root.querySelector('#tg-df-vouchers-title');          const content = this.root.querySelector('#tg-df-vouchers-content');                    if (!backdrop || !content) return;                    // HACK: Hide closing tags          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h4 = '<' + '/h4>';          const _svg = '<' + '/svg>';          const _circle = '<' + '/circle>';          const _polyline = '<' + '/polyline>';          const _rect = '<' + '/rect>';          const _path = '<' + '/path>';                    title.innerText = `${merchantName} Coupons & Deals`;          content.innerHTML = `\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}                               \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}`;          backdrop.classList.add('active');                    try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchantName);            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '50');            url.searchParams.append('origin', 'widgets-clientside');                        const res = await fetch(url.toString());            if (!res.ok) throw new Error('API Error');            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        if (offers.length === 0) {              content.innerHTML = `\x3Cdiv class="tg-df-message">No vouchers currently available for ${this.escapeHTML(merchantName)}.${_div}`;              return;            }                        content.innerHTML = offers.map((v, idx) => {              let offerObj = v;              if (v.offers && v.offers.offer) {                offerObj = Array.isArray(v.offers.offer) ? v.offers.offer[0] : v.offers.offer;              } else if (v.offer) {                offerObj = Array.isArray(v.offer) ? v.offer[0] : v.offer;              }              let logoUrl = v.logo_url || offerObj.logo_url || '';              if (!logoUrl && v.merchant) {                if (Array.isArray(v.merchant) && v.merchant.length > 0) logoUrl = v.merchant[0].logo_url || '';                else logoUrl = v.merchant.logo_url || '';              }                            const offerName = offerObj.name || offerObj.title || v.name || v.title || 'Special Offer';              const endTime = offerObj.end_time || v.end_time || '';              const linkUrl = offerObj.link || offerObj.url || v.link || v.url || '#';                            let foundVoucherCode = '';              const findVoucherCode = (obj) => {                if (!obj || typeof obj !== 'object') return;                if (obj.type === 'voucher_code' && obj.display_value) {                  foundVoucherCode = obj.display_value;                  return;                }                if (Array.isArray(obj)) {                  for (const item of obj) {                    findVoucherCode(item);                    if (foundVoucherCode) return;                  }                } else {                  for (const k in obj) {                    if (Object.prototype.hasOwnProperty.call(obj, k)) {                      findVoucherCode(obj[k]);                      if (foundVoucherCode) return;                    }                  }                }              };              findVoucherCode(offerObj);              if (!foundVoucherCode) findVoucherCode(v);                            const voucherCode = foundVoucherCode || offerObj.voucher_code || v.voucher_code || '';              const codeHtml = voucherCode ? `\x3Cspan class="tg-df-voucher-code" data-action="copy-code" data-code="${this.escapeHTML(voucherCode)}" title="Copy to clipboard">                \x3Cspan class="tg-df-voucher-code-text">${this.escapeHTML(voucherCode)}${_span}                \x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-left:6px;flex-shrink:0;" class="tg-df-voucher-copy-icon">                  \x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">${_rect}                  \x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">${_path}                ${_svg}              ${_span}` : '';                            const logoHtml = logoUrl                 ? `\x3Cimg src="${this.escapeHTML(logoUrl)}" alt="${this.escapeHTML(offerName)}" class="tg-df-voucher-logo" />`                 : `\x3Cdiv class="tg-df-voucher-logo" style="background:#e2e8f0;">${_div}`;                            let expiryHtml = '';              if (endTime) {                let dStr = endTime;                if (!isNaN(dStr) && String(dStr).length === 10) dStr = Number(dStr) * 1000;                const d = new Date(dStr);                if (!isNaN(d.getTime())) {                  const options = { year: 'numeric', month: 'short', day: 'numeric' };                  expiryHtml = `                    \x3Cdiv class="tg-df-voucher-expiry">                      \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                        \x3Ccircle cx="12" cy="12" r="10">${_circle}                        \x3Cpolyline points="12 6 12 12 16 14">${_polyline}                      ${_svg}                      Expires ${d.toLocaleDateString(undefined, options)}                    ${_div}`;                }              }              const revenueIdVal = generateRevenueId(linkUrl, offerName, merchantName, null);              const rewrittenLinkUrl = rewriteAffiliateLink(linkUrl, area, revenueIdVal);              return `                \x3Ca href="${this.escapeHTML(rewrittenLinkUrl)}" target="_blank" rel="noopener nofollow" class="tg-df-voucher-item"                  data-action="voucher-click"                  data-product-name="${this.escapeHTML(offerName)}"                  data-merchant-name="${this.escapeHTML(merchantName)}"                  data-analytics-id="${this.escapeHTML(offerObj.offer_id || offerObj.id || v.id || '')}"                  data-price=""                  data-previous-price=""                  data-original-link="${this.escapeHTML(linkUrl)}"                  data-revenue-id="${revenueIdVal}"                  data-index="${idx}"                  data-total="${offers.length}"                  data-in-stock="true"                  data-currency="USD"                  data-model-id="${this.escapeHTML(offerObj.model_id || v.model_id || offerObj.id || v.id || '')}"                  data-merchant-id="${this.escapeHTML(offerObj.merchant_id || offerObj.merchant?.id || '')}"                >                  ${logoHtml}                  \x3Cdiv class="tg-df-voucher-content">                    \x3Ch4 class="tg-df-voucher-title">${this.escapeHTML(offerName)}${_h4}                    ${codeHtml}                    ${expiryHtml}                  ${_div}                ${_a}              `;            }).join('');                        // Attach copy functionality            const copyBtns = content.querySelectorAll('[data-action="copy-code"]');            copyBtns.forEach(btn => {              btn.addEventListener('click', async (e) => {                e.preventDefault();                e.stopPropagation();                                const code = btn.getAttribute('data-code');                if (!code) return;                                try {                  const copyToClipboard = async (text) => {                     if (window.navigator.clipboard && window.isSecureContext) {                        try { await window.navigator.clipboard.writeText(text); return; } catch (e) {}                     }                     const textArea = document.createElement("textarea");                     textArea.value = text;                     textArea.style.position = "fixed";                     document.body.appendChild(textArea);                     textArea.focus();                     textArea.select();                     document.execCommand('copy');                     textArea.remove();                  };                  await copyToClipboard(code);                                    // Visual feedback                  btn.classList.add('copied');                  const textSpan = btn.querySelector('.tg-df-voucher-code-text');                  const iconSvg = btn.querySelector('.tg-df-voucher-copy-icon');                                    const origText = textSpan.innerText;                  const origIcon = iconSvg.innerHTML;                                    textSpan.innerText = 'Copied!';                  iconSvg.innerHTML = `\x3Cpolyline points="20 6 9 17 4 12">${_polyline}`;                                    setTimeout(() => {                    if (btn) {                      btn.classList.remove('copied');                      if (textSpan) textSpan.innerText = origText;                      if (iconSvg) iconSvg.innerHTML = origIcon;                    }                  }, 2000);                                    trackElementInteraction({                    id: 'voucher-code-copy',                    name: 'Copy Voucher Code',                    label: `Copied ${code} for ${merchantName}`                  });                } catch (err) {                  console.warn('Failed to copy text: ', err);                }              });            });            // Attach voucher click tracking            const voucherBtns = content.querySelectorAll('[data-action="voucher-click"]');            voucherBtns.forEach(btn => {              btn.addEventListener('click', (e) => {                if (e.target.closest('[data-action="copy-code"]')) return;                                const productName = btn.getAttribute('data-product-name');                const merchantNameAttr = btn.getAttribute('data-merchant-name');                const productId = btn.getAttribute('data-analytics-id');                const price = parseFloat(btn.getAttribute('data-price')) || null;                const prevPriceStr = btn.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = btn.getAttribute('data-original-link');                const rewrittenLink = btn.getAttribute('href');                const revenueId = btn.getAttribute('data-revenue-id');                const index = parseInt(btn.getAttribute('data-index'), 10) || 0;                const inStock = btn.getAttribute('data-in-stock') === 'true';                const totalText = btn.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: btn.getAttribute('data-model-id') || null,                    matchId: btn.getAttribute('data-match-id') || null,                    brand: btn.getAttribute('data-model-brand') || null,                    parent: btn.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: btn.getAttribute('data-merchant-id') || null,                    network: btn.getAttribute('data-merchant-network') || null,                    url: btn.getAttribute('data-merchant-url') || null,                    name: merchantNameAttr                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: btn.getAttribute('data-currency') || 'USD'                };                if (typeof trackDealClick === 'function') {                  trackDealClick(trackingParams);                }              });            });                                  } catch (e) {            console.warn(e);            content.innerHTML = `\x3Cdiv class="tg-df-message">Failed to load vouchers.${_div}`;          }        }        render() {          try {            if (this.getViewMode() === 'savings_squad' && this.airedaleTags.length > 0) {              if (this.categoryFilterWrapper) {                 this.categoryFilterWrapper.style.display = 'flex';              }              if (this.categoryFilter) {                 const _option = '<' + '/option>';                 let optionsHtml = `\x3Coption value="all">All Categories${_option}`;                 this.airedaleTags.forEach(tag => {                    const isSelected = this.activeDealTag === tag ? 'selected' : '';                    optionsHtml += `\x3Coption value="${this.escapeHTML(tag)}" ${isSelected}>${this.escapeHTML(tag)} (${this.airedaleTagCounts[tag] || 0})${_option}`;                 });                 this.categoryFilter.innerHTML = optionsHtml;                 this.categoryFilter.value = this.activeDealTag || 'all';              }            } else {               if (this.categoryFilterWrapper) {                  this.categoryFilterWrapper.style.display = 'none';               }            }            const displayDeals = this.getFilteredDeals();          // HACK: Hide closing tags from the CMS HTML sanitizer so it doesn't strip them during in-page injection          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h3 = '<' + '/h3>';          const _p = '<' + '/p>';          const _strong = '<' + '/strong>';          const _sup = '<' + '/sup>';          const _button = '<' + '/button>';          if (displayDeals.length === 0) {            if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {              if (this.deals.length > 0) {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No deals match your selected filters.                ${_div}`;              } else if (this.getViewMode() === 'savings_squad' && this.currentQuery.length <= 2) {                 // Do not show "no exact matches" if query is empty for savings_squad                 this.grid.innerHTML = '';              } else {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No exact matches found for "\x3Cstrong>${this.escapeHTML(this.currentQuery)}${_strong}". Try adjusting your search term.                ${_div}`;              }            } else {              this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                Search product or category names to discover the best deals from across the web.              ${_div}`;            }            return;          }          let dealsHtml = displayDeals.slice(0, this.displayLimit).map((deal, index) => {            try {               const currencySym = this.escapeHTML(deal.currency);               const isoCurrencyCode = normalizeCurrency(currencySym);               const escapedPrice = this.escapeHTML(deal.price);               const escapedMsrp = this.escapeHTML(deal.msrp);               const areaCode = this.getAreaCode();                              const revenueId = generateRevenueId(deal.url, deal.title, deal.merchant, null);               const originalLink = deal.url;               const rewrittenLink = rewriteAffiliateLink(deal.url, areaCode, revenueId);                        const productCategoryName = 'deals';            const dataAttr = `              data-action="${deal.isCheckPrice ? 'view-similar-click' : 'deal-click'}"              data-analytics-id="${this.escapeHTML(deal.externalProductId || deal.id || '')}"              data-product-name="${this.escapeHTML(deal.title)}"              data-merchant-name="${this.escapeHTML(deal.merchant)}"              data-price="${deal.rawPrice || ''}"              data-previous-price="${deal.rawMsrp || ''}"              data-original-link="${this.escapeHTML(originalLink)}"              data-revenue-id="${revenueId}"              data-index="${index}"              data-total="${displayDeals.length}"              data-in-stock="${deal.inStock !== false}"              data-currency="${this.escapeHTML(isoCurrencyCode)}"              data-model-id="${this.escapeHTML(deal.modelId || '')}"              data-product-key="${this.escapeHTML(deal.productKey || '')}"              data-merchant-id="${this.escapeHTML(deal.merchantId || '')}"            `;                        let priceGroupHtml = '';            let isSavingsSquadMode = this.getViewMode() === 'savings_squad';            let ctaText = 'View Deal';            let formattedPrice = '';            let msrpHtml = '';                        if (deal.isCheckPrice) {              ctaText = isSavingsSquadMode ? 'View Deal' : 'Check Price';              if (isSavingsSquadMode) {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                  ${_div}                `;              } else {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                    \x3Cspan class="tg-df-card-price" style="font-size: 15px; font-weight: 500; font-style: italic;">See price at retailer${_span}                  ${_div}                `;              }            } else {              // Format Price              formattedPrice = escapedPrice.includes(currencySym)                 ? escapedPrice                 : `${currencySym}${escapedPrice}`;                              // Format MSRP              msrpHtml = deal.msrp && deal.rawMsrp > deal.rawPrice                ? `\x3Cspan class="tg-df-card-msrp">${escapedMsrp.includes(currencySym) ? escapedMsrp : currencySym + escapedMsrp}${_span}`                : '';                              priceGroupHtml = `                \x3Cdiv class="tg-df-card-merchant-wrapper">                  \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                ${_div}                \x3Cdiv class="tg-df-card-price-group">                  ${isSavingsSquadMode ? '' : `                  \x3Cspan class="tg-df-card-price">${formattedPrice}${_span}                  ${msrpHtml}                  `}                ${_div}              `;            }                        const discountBadgeHtml = deal.savingLabel && !deal.isCheckPrice              ? `\x3Cspan class="tg-df-card-discount-badge">${this.escapeHTML(deal.savingLabel)}${_span}`              : '';                          // HACK for CMS            const _button = '<' + '/button>';            const _svg = '<' + '/svg>';            const _path = '<' + '/path>';            const _rect = '<' + '/rect>';            const _circle = '<' + '/circle>';            const _polyline = '<' + '/polyline>';            const _line = '<' + '/line>';                        let badgesHtml = '';            const primeBadge = deal.isPrime ? `              \x3Cspan class="tg-df-tag tg-df-tag-prime">                \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="currentColor">                  \x3Cpath d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z">${_path}                ${_svg} Prime              ${_span}            ` : '';                        const couponsBadge = deal.merchant && deal.merchant.toLowerCase().includes('amazon') ? '' : `              \x3Cdiv class="tg-df-coupon-wrapper" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:inline-flex; align-items:center;">                \x3Cdiv class="tg-df-coupon-spinner">${_div}                \x3Cbutton type="button" class="tg-df-tag tg-df-tag-coupons" data-action="coupons-click" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:none;">                  \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                    \x3Cpath d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z">${_path}                    \x3Cline x1="7" y1="7" x2="7.01" y2="7">${_line}                  ${_svg} Coupons                ${_button}              ${_div}            `;                        // Note: We always add coupons badge if there's a chance, but to allow 3-line titles we check wrapper display state            badgesHtml = `              \x3Cdiv class="tg-df-card-badges">                ${primeBadge}                ${couponsBadge}              ${_div}            `;            const _linearGradient = '<' + '/linearGradient>';            const _polygon = '<' + '/polygon>';            const _stop = '<' + '/stop>';            const _defs = '<' + '/defs>';                        let starHtml = '';            if (deal.starRating) {              let rating = deal.starRating;                            if (rating > 0) {                const fullStars = Math.floor(rating);                const halfStar = (rating - fullStars) >= 0.5 ? 1 : 0;                const emptyStars = Math.max(0, 5 - fullStars - halfStar);                const blue = '#1f69ff'; // Tom's guide brand color from VIEW DEAL button                const gray = '#cbd5e1';                                const starSvgFull = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="${blue}" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                const gradId = 'half_grad_' + Math.floor(Math.random()*1000000);                const starSvgHalf = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cdefs>\x3ClinearGradient id="${gradId}" x1="0" x2="1" y1="0" y2="0">\x3Cstop offset="50%" stop-color="${blue}">${_stop}\x3Cstop offset="50%" stop-color="transparent">${_stop}${_linearGradient}${_defs}                  \x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26" fill="url(#${gradId})">${_polygon}${_svg}`;                                  const starSvgEmpty = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="${gray}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                let stars = [];                for (let i=0; i<fullStars; i++) stars.push(starSvgFull);                if (halfStar) stars.push(starSvgHalf);                for (let i=0; i<emptyStars; i++) stars.push(starSvgEmpty);                                starHtml = `\x3Cdiv class="tg-df-card-stars" style="display:flex;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--tg-df-text-muted);">                  \x3Cspan style="margin-right:6px;">Tom's Guide:${_span}                  \x3Cdiv style="display:flex;gap:2px;">                    ${stars.join('')}                  ${_div}                ${_div}`;              }            }            let htmlOutput = '';            if (isSavingsSquadMode) {              htmlOutput += `              \x3Cdiv class="hawk-deal-widget-container tg-df-mobile-only" data-collapsible="true">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''} style="margin-bottom: 10px;">` : ''}                \x3Cdiv class="hawk-deal-widget-wrap">                  \x3Cdiv class="hawk-deal-widget-image-container">                    \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" rel="sponsored noopener" target="_blank" class="hawk-affiliate-link-deal-widget" ${dataAttr}>                      \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="hawk-lazy-image-deal-widget" loading="lazy" width="140" height="160" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                    ${_a}                  ${_div}                  \x3Cdiv class="hawk-deal-widget-text-cta-container">                    \x3Cdiv class="hawk-deal-widget-text-body-container">                      \x3Cdiv class="hawk-deal-widget-text-body-main">                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          ${deal.isCheckPrice ? `                            \x3Cspan class="hawk-deal-widget-title-product-title">${this.escapeHTML(deal.title)}${_span}                          ` : `                            \x3Cspan class="hawk-deal-widget-title-product-title">${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_span}                          `}                        ${_a}                        ${!deal.isCheckPrice && deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan class="hawk-deal-widget-title-was-price">was ${currencySym}${escapedMsrp}${_span}                          ${_a}                        ` : ''}                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          \x3Cspan class="hawk-deal-widget-title-retailer-price">                            ${!deal.isCheckPrice ? `                              \x3Cspan class="hawk-deal-widget-title-price">now ${formattedPrice}${_span}                              \x3Cspan class="hawk-deal-widget-title-retailer"> at ${this.escapeHTML(deal.merchant)}${_span}                            ` : `                              \x3Cspan class="hawk-deal-widget-title-price">See price at ${this.escapeHTML(deal.merchant)}${_span}                            `}                          ${_span}                        ${_a}                        ${deal.description ? `\x3Cdiv class="hawk-deal-widget-text-body-description">\x3Cp>${this.escapeHTML(deal.description)}${_p}${_div}` : ''}                      ${_div}                    ${_div}                    \x3Cdiv class="hawk-deal-widget-footer">                      \x3Cdiv class="hawk-deal-widget-button-wrapper">                        \x3Cdiv class="hawk-deal-widget-preferred-partner-wrapper">                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-deal-button" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan>${deal.isCheckPrice ? 'Check Price' : 'View Deal'}${_span}                          ${_a}                        ${_div}                      ${_div}                    ${_div}                  ${_div}                ${_div}              ${_div}              `;            }            htmlOutput += `              \x3Cdiv class="tg-df-card ${isSavingsSquadMode ? 'tg-df-desktop-only' : ''}">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''}>` : ''}                \x3Cdiv class="tg-df-card-image-box">                  ${discountBadgeHtml}                  \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">                    \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="tg-df-card-image" loading="lazy" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                  ${_a}                ${_div}                \x3Cdiv class="tg-df-card-body">                  ${starHtml}                  ${badgesHtml}                  \x3Ch3 class="tg-df-card-title tg-df-custom-savings-squad-title" title="${this.escapeHTML(deal.title)}">                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" disable-tracking="true" target="_blank" rel="noopener nofollow" style="text-decoration: none; color: inherit;">                      ${isSavingsSquadMode                         ? (deal.isCheckPrice                             ? (deal.title && deal.title.includes(':')                                 ? `\x3Cstrong>${this.escapeHTML(deal.title.substring(0, deal.title.indexOf(':') + 1))}${_strong}\x3Cspan style="color: #1f69ff; font-weight: normal;">${this.escapeHTML(deal.title.substring(deal.title.indexOf(':') + 1))}${_span}`                                : this.escapeHTML(deal.title)                              )                             : `\x3Cstrong>${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_strong} ${deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `\x3Cspan style="color: #d0021b; text-decoration: line-through; font-weight: normal; margin-right: 4px;">was ${currencySym}${escapedMsrp}${_span} ` : ''}\x3Cspan style="color: #1f69ff; font-weight: normal;">now ${formattedPrice} at ${this.escapeHTML(deal.merchant)}${_span}`                          )                        : this.escapeHTML(deal.title)                      }                    ${_a}                  ${_h3}                  ${deal.description ? `\x3Cp style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 12px; line-height: 1.4;">${this.escapeHTML(deal.description)}${_p}` : ''}                  \x3Cdiv class="tg-df-card-footer">                    ${priceGroupHtml}                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" class="tg-df-card-cta ${isSavingsSquadMode ? 'tg-df-cta-savings-squad' : ''}" style="text-decoration: none;">${ctaText}${_a}                  ${_div}                ${_div}              ${_div}            `;                        return htmlOutput;            } catch (e) {               console.log("Error rendering deal in map for index", index, typeof deal === 'object' ? JSON.stringify(deal) : deal, "MSG:", e.message);               return '';            }          }).join('');                    if (displayDeals.length > this.displayLimit || ((this.getViewMode() === 'carousel' || this.getViewMode() === 'auto') && displayDeals.length > 0 && displayDeals.length % ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12) === 0)) {            if (this.getViewMode() === 'carousel') {               dealsHtml += `                 \x3Cbutton type="button" class="tg-df-load-more-card tg-df-load-more">                   \x3Csvg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 8px;">\x3Cpath d="M5 12h14">\x3C/path>\x3Cpath d="m12 5 7 7-7 7">\x3C/path>\x3C/svg>                   Load More                 ${_button}               `;            } else {               dealsHtml += `                 \x3Cdiv style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1;">                   \x3Cbutton type="button" class="tg-df-tag-outline tg-df-load-more" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer; display: flex; align-items: center;">Load More${_button}                 ${_div}               `;            }          }                    this.grid.innerHTML = dealsHtml;          // Inject JSON-LD          try {            let targetNode = this.hostContainer || document.head;            let jsonLdScript = targetNode.querySelector('#tg-df-json-ld-' + this.widgetId);            if (!jsonLdScript) {                jsonLdScript = document.createElement('script');                jsonLdScript.type = 'application/ld+json';                jsonLdScript.id = 'tg-df-json-ld-' + this.widgetId;                targetNode.appendChild(jsonLdScript);            }            const jsonLdData = {              "@context": "https://schema.org",              "@type": "ItemList",              "itemListElement": displayDeals.slice(0, this.displayLimit).map((deal, index) => {                 let isoCurrency = "USD";                 if (deal.currency === '£') isoCurrency = "GBP";                 else if (deal.currency === '€') isoCurrency = "EUR";                 else if (deal.currency === 'A$') isoCurrency = "AUD";                 else if (deal.currency === 'CA$') isoCurrency = "CAD";                 const areaCode = typeof this.getAreaCode === 'function' ? this.getAreaCode() : 'US';                 const revenueId = typeof generateRevenueId === 'function' ? generateRevenueId(deal.url, deal.title, deal.merchant, null) : '';                 const rewrittenLink = typeof rewriteAffiliateLink === 'function' ? rewriteAffiliateLink(deal.url, areaCode, revenueId) : deal.url;                 return {                   "@type": "ListItem",                   "position": index + 1,                   "item": {                     "@type": "Product",                     "name": deal.title,                     "image": deal.image || "",                     "description": deal.description || "",                     "brand": {                       "@type": "Brand",                       "name": deal.brand || ""                     },                     "offers": {                       "@type": "Offer",                       "priceCurrency": isoCurrency,                       "price": deal.rawPrice || 0,                       "url": rewrittenLink,                       "seller": {                         "@type": "Organization",                         "name": deal.merchant || ""                       }                     }                   }                 };              }).filter(item => item.item.name)            };            jsonLdScript.textContent = JSON.stringify(jsonLdData);          } catch(e) { console.warn("JSON-LD generation failed", e); }                    let gridWrapper = this.grid.parentElement;          if (gridWrapper && gridWrapper.classList.contains('tg-df-grid-wrapper')) {             let rightChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-right');             let leftChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-left');             if (this.getViewMode() === 'carousel') {                 // The observer set up in setupScrollListeners handles visibility.                 if (rightChevron) rightChevron.style.display = 'flex';                 if (leftChevron) leftChevron.style.display = 'none'; // reset correctly             } else {                 if (rightChevron) rightChevron.style.display = 'none';                 if (leftChevron) leftChevron.style.display = 'none';             }          }                    const loadMoreBtn = this.grid.querySelector('.tg-df-load-more');          if (loadMoreBtn) {            loadMoreBtn.addEventListener('click', async () => {              if (typeof trackElementInteraction === 'function') {                trackElementInteraction({ id: 'load-more', name: 'Load more', label: 'Load More Results' });              }              if (displayDeals.length <= this.displayLimit) {                 loadMoreBtn.innerHTML = `                  <svg class="tg-df-spinner" style="width: 16px; height: 16px; display: inline-block; vertical-align: middle; margin-right: 8px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83"/></svg>                  Loading...                 `;                 loadMoreBtn.disabled = true;                 await this.fetchDeals(this.currentQuery, true);              } else {                 this.displayLimit += ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12);                 this.render();              }            });          }                      this.bindCouponButtons();            this.checkAndUpdateCoupons();                        // Allow hawklinks.js to discover and rewrite our widget links             // by appending the .article-body class and manually triggering processArticle.            let container = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (container && !container.classList.contains('article-body')) {               container.classList.add('article-body');            }            setTimeout(() => {               if (this.grid && !this.grid.classList.contains('article-body')) this.grid.classList.add('article-body');            if (!this.processArticleFired) {                  this.processArticleFired = true;                  document.dispatchEvent(new CustomEvent('processArticle', { detail: { element: this.root } }));               }            }, 50);          } catch(e) {            console.warn("Widget render error", e);          }        }                async checkAndUpdateCoupons() {          const wrappers = Array.from(this.root.querySelectorAll('.tg-df-coupon-wrapper'));          if (wrappers.length === 0) return;                    const merchants = [...new Set(wrappers.map(w => w.getAttribute('data-merchant')).filter(Boolean))];          if (merchants.length === 0) return;          const couponResultsMap = await this.checkMerchantsCouponsBulk(merchants);                    for (const merchant of merchants) {            const hasCoupons = !!couponResultsMap[merchant];            const merchantWrappers = wrappers.filter(w => w.getAttribute('data-merchant') === merchant);            merchantWrappers.forEach(wrapper => {              const spinner = wrapper.querySelector('.tg-df-coupon-spinner');              const btn = wrapper.querySelector('.tg-df-tag-coupons');                            if (spinner) spinner.style.display = 'none';                            if (hasCoupons && btn) {                btn.style.display = 'inline-flex';              } else if (!hasCoupons) {                wrapper.style.display = 'none';              }            });          }        }        updateFloatingCopyBar() {          if (!this.editorBar || !this.editorSelectedCount) return;          if (this.editorMode && this.selectedDeals.size > 0) {            this.editorBar.style.display = 'flex';            this.editorSelectedCount.innerText = this.selectedDeals.size;          } else {            this.editorBar.style.display = 'none';          }        }        async copySelectedDealsToCMS() {           function htmlToSlate(htmlString) {              if (!htmlString) return [{ type: 'paragraph', children: [{ text: '' }] }];              let doc;              if (typeof window !== 'undefined' && window.DOMParser) {                 doc = new DOMParser().parseFromString(htmlString, 'text/html');              } else {                 doc = document.implementation.createHTMLDocument('');                 doc.body.innerHTML = htmlString;              }                            function parseNode(node, marks = {}) {                  if (node.nodeType === 3) {                      const text = node.textContent;                      if (!text) return null;                      return { text: text, ...marks };                  }                  if (node.nodeType === 1) {                      const tagName = node.tagName.toLowerCase();                      if (tagName === 'br') {                          return { type: 'line-break', children: [{ text: '' }] };                      }                      if (tagName === 'p') {                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return { type: 'paragraph', children };                      }                      if (tagName === 'strong' || tagName === 'b') {                          const newMarks = { ...marks, bold: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'em' || tagName === 'i') {                          const newMarks = { ...marks, italic: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'a') {                          const href = node.getAttribute('href') || '';                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return {                              type: 'link',                              url: href,                              isNoFollow: (node.getAttribute('rel') || '').includes('nofollow'),                              isSponsored: (node.getAttribute('rel') || '').includes('sponsored'),                              isOpenNewTab: node.getAttribute('target') === '_blank',                              isPreventDataRewrite: false,                              children: children                          };                      }                      return Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                  }                  return null;              }                            let blocksArray = [];              let currentParagraphChildren = [];              function flushParagraph() {                  if (currentParagraphChildren.length > 0) {                      blocksArray.push({ type: 'paragraph', children: currentParagraphChildren });                      currentParagraphChildren = [];                  }              }              Array.from(doc.body.childNodes).forEach(node => {                  const parsed = parseNode(node, {});                  const parsedItems = Array.isArray(parsed) ? parsed : (parsed ? [parsed] : []);                  parsedItems.forEach(item => {                      if (item.type === 'paragraph') {                          flushParagraph();                          blocksArray.push(item);                      } else {                          currentParagraphChildren.push(item);                      }                  });              });              flushParagraph();              if (blocksArray.length === 0) {                  blocksArray = [{ type: 'paragraph', children: [{ text: '' }] }];              }              return blocksArray;           }           const blocks = [];                      this.editorCopyBtn.innerHTML = '\x3Cspan class="tg-df-coupon-spinner" style="display:inline-block; margin-right:8px; border-top-color:#fff;">' + '<' + '/span> Copying...';           for (const deal of Array.from(this.selectedDeals.values())) {              const url = deal.url;              const merchant = deal.merchant;              const title = deal.title;              const image = deal.image;              const currentPrice = deal.currency + deal.rawPrice;              const wasPrice = deal.hasWasPrice && deal.rawMsrp > deal.rawPrice ? deal.currency + deal.rawMsrp : '';                            let couponsChildren = [];              try {                  const area = this.getAreaCode();                  const apiUrl = new URL('https://search-api.fie.future.net.uk/widget.php');                  apiUrl.searchParams.append('model_name', 'Everything');                  apiUrl.searchParams.append('language', 'en-GB');                  apiUrl.searchParams.append('area', area);                  apiUrl.searchParams.append('combine_product_types', '1');                  apiUrl.searchParams.append('filter_merchant_name', merchant);                  apiUrl.searchParams.append('all_filters', 'false');                  apiUrl.searchParams.append('exclude_unlabelled', 'false');                  apiUrl.searchParams.append('include_specs', 'false');                  apiUrl.searchParams.append('sort', 'voucher');                  apiUrl.searchParams.append('distinct_merchants', 'natural');                  apiUrl.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');                  apiUrl.searchParams.append('rows', '3');                  apiUrl.searchParams.append('origin', 'widgets-clientside');                                    let res; try { res = await fetch(apiUrl.toString()); } catch (e) { return; }                  if (res.ok) {                      const data = await res.json();                      let offers = [];                      if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {                        offers = data.widget.data.offers;                      } else if (data && data.data && Array.isArray(data.data.offers)) {                        offers = data.data.offers;                      }                                            if (offers.length > 0) {                          couponsChildren.push({ text: "Also check out these coupons: ", bold: true });                          offers.slice(0, 3).forEach((offer, idx) => {                              const actualOffer = offer.offer || offer;                              const offerName = actualOffer.name || actualOffer.title || offer.model_name || offer.title || offer.name || 'Coupon';                              const linkUrl = actualOffer.link || actualOffer.url || actualOffer.offer_link || '#';                              couponsChildren.push({ type: "line-break", children: [{ text: "" }] });                              couponsChildren.push({ text: "🎟️ " });                              couponsChildren.push({                                  type: "link",                                  url: linkUrl,                                  isNoFollow: true,                                  isSponsored: false,                                  isOpenNewTab: true,                                  isPreventDataRewrite: false,                                  children: [{ text: offerName, bold: true }]                              });                          });                      }                  }              } catch (err) {                  console.warn('Failed to fetch coupons for', merchant, err);              }              let descriptionValue = [];              if (deal.text) {                 descriptionValue = htmlToSlate(deal.text);              } else {                 const dealDescriptions = [                   `Don't miss out on this fantastic deal for the ${title}. It is currently available at ${merchant} for a highly competitive price.`,                   `We've spotted an excellent price drop on the ${title}. Grab it now at ${merchant} before it's gone.`,                   `The ${title} is currently seeing a generous discount over at ${merchant}. This is a perfect time to buy if you've been holding out.`,                   `If you're in the market for the ${title}, ${merchant} has just the deal for you.`,                   `Score the ${title} for less at ${merchant} right now. This is a rare chance to save big.`,                   `Upgrade your setup with the ${title}, now available at a stellar price via ${merchant}.`                 ];                 const randomDescription = dealDescriptions[Math.floor(Math.random() * dealDescriptions.length)];                 descriptionValue = [                    { type: "paragraph", children: [{ text: randomDescription }] }                 ];              }                            if (couponsChildren.length > 0) {                 let lastBlock = descriptionValue[descriptionValue.length - 1];                 if (lastBlock && lastBlock.type === 'paragraph') {                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ text: "Also check out these coupons: ", bold: true });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children = lastBlock.children.concat(couponsChildren);                 } else {                     descriptionValue.push({                         type: "paragraph",                         children: [                             { type: "line-break", children: [{ text: "" }] },                             { type: "line-break", children: [{ text: "" }] },                             { text: "Also check out these coupons: ", bold: true },                             { type: "line-break", children: [{ text: "" }] },                             ...couponsChildren                         ]                     });                 }              }              function normalizeCurrencyToISO(symbol) {                const map = { '£': 'GBP', '$': 'USD', 'A$': 'AUD', 'CA$': 'CAD', '€': 'EUR' };                return map[symbol] || symbol;              }              const isoCurrency = normalizeCurrencyToISO(deal.currency);              blocks.push({                 id: (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'cms-' + Date.now() + Math.random(),                 blockTypeName: "deal",                 excludeFrom: [],                 collapsible: false,                 props: {                    description: {                       value: descriptionValue,                       touched: false,                       validationMessage: ""                    },                    image: {                       value: {                          credit: [{ type: "paragraph", children: [{ text: merchant }] }],                          dateCreated: Date.now(),                          dateModified: Date.now(),                          distribution: [],                          fileSize: 0,                          height: 1000,                          id: deal.id,                          imageRights: "",                          src: image,                          name: title + ".jpg",                          tags: [],                          width: 1000                       },                       touched: false,                       validationMessage: ""                    },                    showDealButton: { value: true, touched: false, validationMessage: "" },                    isPreferredPartner: { value: false, touched: false, validationMessage: "" },                    linkHref: { value: url, touched: false, validationMessage: "" },                    linkLabel: { value: "", touched: false, validationMessage: "" },                    linkIsNoFollow: { value: true, touched: false, validationMessage: "" },                    linkIsSponsored: { value: false, touched: false, validationMessage: "" },                    linkIsOpenNewWindow: { value: true, touched: false, validationMessage: "" },                    customPromoFlags: { value: [], touched: false, validationMessage: "" },                    showStarDeal: { value: false, touched: false, validationMessage: "" },                    savingType: { value: "none", touched: false, validationMessage: "" },                    starDealPromoFlag: { value: "", touched: false, validationMessage: "" },                    showEditorsChoice: { value: false, touched: false, validationMessage: "" },                    editorsChoiceTitle: { value: "", touched: false, validationMessage: "" },                    hawkPriceCurrency: { value: { value: isoCurrency, label: isoCurrency }, touched: false, validationMessage: "" },                    hawkPrice: { value: deal.hasWasPrice ? String(deal.rawMsrp) : String(deal.rawPrice), touched: false, validationMessage: "" },                    hawkSalePrice: { value: String(deal.rawPrice), touched: false, validationMessage: "" },                    lastCheckedPriceDate: { value: "", touched: false, validationMessage: "" },                    hawkModel: { touched: false, validationMessage: "" },                    productId: { value: "", touched: false, validationMessage: "" },                    voucherId: { value: "", touched: false, validationMessage: "" },                    brand: { value: deal.brand || merchant, touched: false, validationMessage: "" },                    productName: { value: title, touched: false, validationMessage: "" },                    label: { value: "", touched: false, validationMessage: "" },                    retailer: { value: merchant, touched: false, validationMessage: "" },                    priceCheckError: false                 },                 failedFetchError: ""              });           }           const payload = {              type: "articleBuilderPages",              data: blocks           };           const jsonStr = JSON.stringify(payload);                      if (navigator.clipboard && navigator.clipboard.writeText) {              navigator.clipboard.writeText(jsonStr).then(() => {                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              }).catch(err => {                 console.warn('Failed to copy text: ', err);                 alert('Failed to copy deals to clipboard. See console.');              });           } else {              // Fallback              const textArea = document.createElement("textarea");              textArea.value = jsonStr;              document.body.appendChild(textArea);              textArea.focus();              textArea.select();              try {                 document.execCommand('copy');                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              } catch (err) {                 console.warn('Fallback: Oops, unable to copy', err);                 alert('Fallback: Failed to copy deals to clipboard.');              }              document.body.removeChild(textArea);           }        }      }      // Initialize the Widget      if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', () => new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer }));      } else {        new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer });      }    })();  </script></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Gemini will now let you change TCL TV settings using your voice — but only on these models ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Some Google TVs will soon receive a Gemini update that lets you adjust your TV settings using voice commands. However, the update is rolling out to specific TCL models first. It's disappointing news for owners of the<a href="https://www.tomsguide.com/best-picks/best-google-tvs"> best Google TVs</a>.</p><p>Google<a href="https://support.google.com/googletv/thread/440866717/control-your-tv-settings-with-gemini-on-google-tv" target="_blank"> announced the rollout</a> today, but we got a <a href="https://www.tomsguide.com/tvs/google-tv-just-got-even-better-with-some-big-upgrades-through-gemini">preview of the update</a> during CES 2026 back in January. The update lets you use the microphone button on your remote to adjust settings vocally.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Ww1GgX"></div>                            </div>                            <script src="https://kwizly.com/embed/Ww1GgX.js" async></script><p>In the announcement post, Google says you can adjust audio and video settings, troubleshoot picture and sound problems, optimize settings, or use it to find specific menus.</p><p>Gemini lets you use more "natural" language prompts like "the dialogue is lost" or "the screen is too dim" to make adjustments. Until we get some hands-on time, we won't know how in-depth the prompts get though.</p><h2 id="gemini-update-availability">Gemini update availability</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1727px;"><p class="vanilla-image-block" style="padding-top:57.04%;"><img id="bCTw3QEsgVd9d2uCDu8dLJ" name="Google TV Gemini AI" alt="Gemini AI on Google TV" src="https://cdn.mos.cms.futurecdn.net/bCTw3QEsgVd9d2uCDu8dLJ.jpg" mos="" align="middle" fullscreen="" width="1727" height="985" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Here's the catch, though: for now, this is a TCL exclusive and only for specific models. The update is coming to the QM9K, X11L, QM9L, QM8L, and RM9L. Additionally, your set needs to support Android TV OS 14 or later.</p><p>For people with different TCL models or manufacturers, apparently the exclusivity window is 60 days, per <a href="https://9to5google.com/2026/06/11/google-tv-gemini-settings-controls/" target="_blank">9to5Google</a>. Google does say that the update is rolling out over the next "few weeks." It's not currently clear if the 60 day window starts now or once the update has hit every compatible model.</p><p>Tom's Guide has reached out to TCL for clarity on the window.</p><p>On your TCL Google TV you can check for available system updates by going to Settings > System > About > System update.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/google-is-turning-the-internet-into-a-giant-group-chat-and-websites-arent-invited">From AI Overviews to the only view — how Google is squeezing out serendipity on the web</a></li><li><a href="https://www.tomsguide.com/ai/how-to-use-googles-hidden-new-docs-live-voice-feature-to-dictate-perfect-emails">How to use Google’s new "Docs Live" voice feature to dictate perfect emails</a></li><li><a href="https://www.tomsguide.com/ai/google-gemini-security-flaw-lets-hackers-hijack-your-android-phone-via-whatsapp-what-you-need-to-know">Google Gemini security flaw lets hackers hijack your Android phone via WhatsApp — what you need to know</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/gemini-will-now-let-you-change-tcl-tv-settings-using-your-voice-but-only-on-these-models</link>
                                                                            <description>
                            <![CDATA[ A new Gemini update will let you control your TCL Google TV with just your voice but there is a model limit. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">whXHofEDZKucqvcKNzfrBA</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/pR5nFPKMr3CCQWUMQWESFU-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 16 Jun 2026 17:54:42 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/pR5nFPKMr3CCQWUMQWESFU-1280-80.jpg">
                                                            <media:credit><![CDATA[Google]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Google TV Gemini upgrades]]></media:description>                                                            <media:text><![CDATA[Google TV Gemini upgrades]]></media:text>
                                <media:title type="plain"><![CDATA[Google TV Gemini upgrades]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/pR5nFPKMr3CCQWUMQWESFU-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Some Google TVs will soon receive a Gemini update that lets you adjust your TV settings using voice commands. However, the update is rolling out to specific TCL models first. It's disappointing news for owners of the<a href="https://www.tomsguide.com/best-picks/best-google-tvs"> best Google TVs</a>.</p><p>Google<a href="https://support.google.com/googletv/thread/440866717/control-your-tv-settings-with-gemini-on-google-tv" target="_blank"> announced the rollout</a> today, but we got a <a href="https://www.tomsguide.com/tvs/google-tv-just-got-even-better-with-some-big-upgrades-through-gemini">preview of the update</a> during CES 2026 back in January. The update lets you use the microphone button on your remote to adjust settings vocally.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Ww1GgX"></div>                            </div>                            <script src="https://kwizly.com/embed/Ww1GgX.js" async></script><p>In the announcement post, Google says you can adjust audio and video settings, troubleshoot picture and sound problems, optimize settings, or use it to find specific menus.</p><p>Gemini lets you use more "natural" language prompts like "the dialogue is lost" or "the screen is too dim" to make adjustments. Until we get some hands-on time, we won't know how in-depth the prompts get though.</p><h2 id="gemini-update-availability">Gemini update availability</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1727px;"><p class="vanilla-image-block" style="padding-top:57.04%;"><img id="bCTw3QEsgVd9d2uCDu8dLJ" name="Google TV Gemini AI" alt="Gemini AI on Google TV" src="https://cdn.mos.cms.futurecdn.net/bCTw3QEsgVd9d2uCDu8dLJ.jpg" mos="" align="middle" fullscreen="" width="1727" height="985" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Here's the catch, though: for now, this is a TCL exclusive and only for specific models. The update is coming to the QM9K, X11L, QM9L, QM8L, and RM9L. Additionally, your set needs to support Android TV OS 14 or later.</p><p>For people with different TCL models or manufacturers, apparently the exclusivity window is 60 days, per <a href="https://9to5google.com/2026/06/11/google-tv-gemini-settings-controls/" target="_blank">9to5Google</a>. Google does say that the update is rolling out over the next "few weeks." It's not currently clear if the 60 day window starts now or once the update has hit every compatible model.</p><p>Tom's Guide has reached out to TCL for clarity on the window.</p><p>On your TCL Google TV you can check for available system updates by going to Settings > System > About > System update.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/google-is-turning-the-internet-into-a-giant-group-chat-and-websites-arent-invited">From AI Overviews to the only view — how Google is squeezing out serendipity on the web</a></li><li><a href="https://www.tomsguide.com/ai/how-to-use-googles-hidden-new-docs-live-voice-feature-to-dictate-perfect-emails">How to use Google’s new "Docs Live" voice feature to dictate perfect emails</a></li><li><a href="https://www.tomsguide.com/ai/google-gemini-security-flaw-lets-hackers-hijack-your-android-phone-via-whatsapp-what-you-need-to-know">Google Gemini security flaw lets hackers hijack your Android phone via WhatsApp — what you need to know</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ TCL QM8L vs QM9K: Is the new SQD TV worth it? ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L</a> is a 2026 Mini-LED TV that leverages a new type of display technology (Super Quantum Dot) for brighter color. According to our tests, the QM8L's picture is bright, punchy and accurate, and it rounds out its impressive performance with a thorough collection of features.</p><p>The <a href="https://www.tomsguide.com/tvs/tcl-qm9k-mini-led-tv-review">TCL QM9K</a>, on the other hand, made its debut last year. It's one of the brightest Mini-LED TVs we've ever tested, but it's <em>not</em> equipped with TCL's Super Quantum Dot (SQD) technology, so it's not quite as colorful as the QM8L. However, as it's a 2025 TV, it can be bought for much less than the newer QM8L.</p><p>If you're in the market for a bright, high-performance Mini-LED TV this year, you may find yourself sizing up these two TCL TVs. Here's how they compare — from performance to features and price.</p>        <div class="featured_product_block featured_block_versus" data-id="27c98386-334a-46f4-9d66-2e8abb5a5403">            <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review" data-model-name="TCL 75QM8L SQD-Mini LED" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/y6zxm2KoohC6JFqu4fBaof.jpg" alt="The TCL QM8L SQD Mini-LED TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL QM8L</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="80" /></span></div>                                        <p><p>A brand-new TV for 2026, the QM8L leverages TCL's newest display technology, Super Quantum Dot, to enhance its color and overall brightness. It's a slightly better-performing TV than last year's QM9K, but as a newer model, you'll pay more for it. </p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_versus" data-id="965327bf-8048-4bb5-ac8a-2130151ef63f">            <a href="https://www.tomsguide.com/tvs/tcl-qm9k-mini-led-tv-review" data-model-name="TCL QM9K QD-Mini LED 4K TV (2025),TLC QM9K 65-inch QD-Mini LED 4K TV (2025),TLC QM9K 75-inch QD-Mini LED 4K TV (2025),TLC QM9K 85-inch QD-Mini LED 4K TV (2025),TCL QM9K 98-inch QD-Mini LED 4K TV (2025)" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:60.13%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/mYhyRwenBUQFzbHyJxCpzh.jpg" alt="The TCL QM9K on a white background."></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL QM9K</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="80" /></span></div>                                        <p><p>The QM9K isn't as colorful as the SQD-equipped QM8L, but its overall performance profile (including brightness) is otherwise similar. As a year-old model, it's cheaper than the QM8L, making it a better pick for people who want to save money.</p></p>                </div>                            </div>        </div><h2 id="tcl-qm8l-vs-qm9k-specs-compared">TCL QM8L vs QM9K: specs compared</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL QM8L</p></th><th  ><p>TCL QM9K</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Sizes</strong></p></td><td  ><p>65", 75", 85", 98"</p></td><td  ><p>65", 75", 85", 98"</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>4x HDMI 2.1</p></td><td  ><p>2x HDMI 2.1, 2x HDMI 2.0</p></td></tr><tr><td class="firstcol " ><p><strong>Resolution</strong></p></td><td  ><p>3,840 x 2,160p</p></td><td  ><p>3,840 x 2,160p</p></td></tr><tr><td class="firstcol " ><p><strong>Refresh rate</strong></p></td><td  ><p>144Hz</p></td><td  ><p>144Hz</p></td></tr><tr><td class="firstcol " ><p><strong>HDR</strong></p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td></tr><tr><td class="firstcol " ><p><strong>Smart TV software</strong></p></td><td  ><p>Google TV</p></td><td  ><p>Google TV</p></td></tr><tr><td class="firstcol " ><p><strong>ATSC 3.0 support?</strong></p></td><td  ><p>Yes</p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Processor</strong></p></td><td  ><p>TSR AI Pro Processor</p></td><td  ><p>TCL AIPQ Pro Processor</p></td></tr></tbody></table></div><p>Both of these TVs are available in screen sizes ranging from 65 to 98 inches. This means that people shopping for something smaller will have to shop other options. In addition, both sets support Dolby Vision <em>and  </em>the royalty-free version of Dolby Vision, HDR10+. </p><p>Another nice bonus is that, regardless of whichever TV you opt for, you'll be getting ATSC 3.0 support as a key feature. ATSC 3.0 allows over-the-air broadcasts to arrive in their native 4K resolution via antenna. UHD broadcasts are still relatively hard to come by, but if you watch your fair share of over-the-air broadcasts via antenna, this is a nice feature to have in your back pocket.</p><p>One of the primary differences between these sets has to do with their connectivity options. The QM8L offers a full suite of HDMI 2.1 inputs, but on the QM9K, you'll only find two high-bandwidth, HDMI 2.1 inputs. The QM9K's remaining pair of ports is of the HDMI 2.0 variety. As a result, the QM8L is better equipped for folks who plan on connecting multiple gaming devices, as they won't have to worry about a console being relegated to a less-capable, HDMI 2.0 port.</p><p><em><strong>Winner: </strong></em><em>TCL QM8L</em></p><h2 id="tcl-qm8l-vs-qm9k-design">TCL QM8L vs QM9K: design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="d8mR67WQMwWr25Zdb7Um9h" name="TCL-75QM8L-TV-15" alt="The back of a TCL QM8L TV" src="https://cdn.mos.cms.futurecdn.net/d8mR67WQMwWr25Zdb7Um9h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Thanks in part to its display technology, the TCL QM8L (seen above) is bulkier than many LED-based sets. That said, its overall look is mostly refined.</p><p>The QM8L's chassis bulges out of the back of the panel, but not to an extreme degree. It rests on a heavy, pedestal-style stand that sits below the center of the screen. This design decision is helpful, as it allows people to place the QM8L on a narrower piece of furniture even if they opt for one of the larger screen sizes.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="GygMt5zaGUq2LXb8uXduH5" name="TCL QM9K--15" alt="The back of a TCL QM9K TV" src="https://cdn.mos.cms.futurecdn.net/GygMt5zaGUq2LXb8uXduH5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As you can see, the QM9K (seen above) is quite similar, despite the fact that it's not leveraging an SQD display Like the QM8L, it also makes use of a pedestal-style stand in the center of the screen.</p><p>Regardless of which TV you choose, you'll be getting a conveniently backlit remote control. It may sound ridiculous, but this is one of my favorite features on both models. You don't realize just how much you need a feature like this until you suddenly don't have it.</p><p>Given their near-identical designs, this category is too close to call. They're not ultra-thin like some of the slimmer OLED TVs we've seen in recent years, but both of sets are among the best-designed TCL TVs I've seen to date.</p><p><em><strong>Winner:</strong></em><em> Draw</em></p><h2 id="tcl-qm8l-vs-qm9k-performance">TCL QM8L vs QM9K: performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="PmxEtehPXB5NsVy7PR4HH5" name="TCL QM9K--11" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/PmxEtehPXB5NsVy7PR4HH5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Before we dig deeper into how these TVs look, let's compare their test results. (Both TVs were in their respective Filmmaker picture modes when these tests were taken.)</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>TCL QM8L</strong></p></th><th  ><p><strong>TCL QM9K</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>SDR Brightness (10%, in nits)    </strong></p></td><td  ><p>229</p></td><td  ><p>224</p></td></tr><tr><td class="firstcol " ><p><strong>Delta-E (lower is better)    </strong></p></td><td  ><p>3.7</p></td><td  ><p>1.8</p></td></tr><tr><td class="firstcol " ><p><strong>HDR Brightness (10%, in nits)    </strong></p></td><td  ><p>3,719</p></td><td  ><p>4,207</p></td></tr><tr><td class="firstcol " ><p><strong>UHDA-P3 Gamut Coverage    </strong></p></td><td  ><p>97.97%</p></td><td  ><p>97.05%</p></td></tr><tr><td class="firstcol " ><p><strong>Rec.2020 Gamut Coverage    </strong></p></td><td  ><p>90.34% </p></td><td  ><p>80.29%</p></td></tr><tr><td class="firstcol " ><p><strong>Input latency (milliseconds)   </strong></p></td><td  ><p>9.5</p></td><td  ><p>13</p></td></tr></tbody></table></div><p>These are similar TVs, no doubt, but there are still some important points to consider about their performance. </p><p>According to our test results, the QM9K is slightly brighter than the QM8L during HDR content. However, this measurement involves highlight brightness (small areas rather than the entire picture), and I suspect that most viewers wouldn't be able to see much a difference outside of a side-by-side comparison.</p><p>The bigger difference here is color volume: Thanks in large part to its SQD-equipped panel, the QM8L comes in with richer, brighter color than the QM9K.</p><div><blockquote><p>The QM8L comes in with richer, brighter color than the QM9K.</p></blockquote></div><p>  </p><p>While it's true that the QM9K does a marginally better job dialing-in its color points in Filmmaker mode, the difference between a Delta-E of 3.7 and 1.8 isn't <em>that</em> significant, so you can expect a similar level of out-of-the-box accuracy across both TVs. A Delta-E of 3 is considered by many to be the threshold in which the human eye can perceive color error, and so 3.7 is a fine result.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="ocZjqjYRGHtmAdkWGHbsVc" name="TCL-75QM8L-TV-2" alt="A 75-inch TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/ocZjqjYRGHtmAdkWGHbsVc.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The QM8L offers lower input latency, which dedicated gamers will surely appreciate. In fact, given the figures at play, I'd easily take the 9.5-millesecond measurement put forth by the QM8L over the QM9K's slightly better Delta-E measurement in Filmmaker mode. I'd likely notice the lower input lag before I clocked the added color error.</p><p>Taken as a whole, the QM8L's added color and lower input latency make for a better overall experience, but not by very much. These are bright, colorful TVs with terrific backlight control, decent upscaling and accurate presentations. The QM8L takes this category, but it's quite close. </p><p><em><strong>Winner:</strong></em><em> TCL QM8L</em></p><h2 id="tcl-qm8l-vs-qm9k-smart-platform-and-features">TCL QM8L vs QM9K: smart platform and features</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xPkDixgPM87Ew7aKv756H5" name="TCL QM9K--01-LIST" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/xPkDixgPM87Ew7aKv756H5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Both the TCL QM8L and the QM9K are built around the Google TV streaming platform. It's one of my preferred software suites available today, as it's quite snappy to navigate and its library of downloadable apps is massive.</p><p>The QM8L and QM9K both come with a similar set of out-of-the-box gaming features, too. Their toolkits include Variable Refresh Rate (VRR) and AMD FreeSync Premium Pro (for smooth, artifact-free gaming), as well as TCL's Game Bar, a quick-access menu that  lets users access the most relevant gaming features with the press of a button.</p><p>Each set supports 4K gaming at 120Hz, the highest 4K spec among current-generation consoles. If you're inclined to link up a gaming PC to your next TV, both the QM8L and QM9K are capable of showcasing 4K games at 144Hz with VRR.</p><p>It's important to remember, though, that the QM9K is rolling with just two HDMI 2.1-compatible inputs. In order to access the features outlined above, you've got to plug your devices into one of those ports. The QM8L, on the other hand, is outfitted with <em>four</em> high-bandwidth, HDMI 2.1-compatible inputs, so it's far more flexible. </p><p>However, we've already come to terms with this limitation when comparing these TVs' respective specs. In almost every other way that matters, they offer a nearly identical set of features.</p><p><em><strong>Winner:  </strong></em><em>Draw</em></p><h2 id="tcl-qm8l-vs-qm9k-outlook">TCL QM8L vs QM9K: outlook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="cxKfxMpAxWVsquovjzc4sg" name="TCL-75QM8L-TV-6" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/cxKfxMpAxWVsquovjzc4sg.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL QM8L</p></th><th  ><p>TCL QM9K</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Specs (25)</strong></p></td><td  ><p>23</p></td><td  ><p>21</p></td></tr><tr><td class="firstcol " ><p><strong>Design (25)</strong></p></td><td  ><p>22</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Performance (25)</strong></p></td><td  ><p>23</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Features (25)</strong></p></td><td  ><p>23</p></td><td  ><p>23</p></td></tr><tr><td class="firstcol " ><p><strong>Total Score (100)</strong></p></td><td  ><p><strong>91</strong></p></td><td  ><p><strong>88</strong></p></td></tr></tbody></table></div><p>If you're shopping for a new TV and you've got your eyes on a TCL-branded model, the QM8L and the QM9K are among the best you can buy right now. Regardless of whichever you choose, you're going to walk away with a bright, color picture and a heaping helping of added features.</p><p>The QM8L's SQD-powered picture is more colorful than the standard quantum-dot presentation you'll get with the QM9K. However, when it comes to overall brightness, both sets are working with a similar amount of nits. This means they're both totally fine for bright-room viewing.</p><p>Gamers ought to take a closer look at the QM8L on account of its full slate of HDMI 2.1 inputs. Depending on how many devices you own, this detail could be worth the extra cost.</p><p>Let's talk about price. The QM8L just launched at $2,499 for a 65-inch version, but it didn't take long to go on sale. Right now, you can get the <a href="https://www.bestbuy.com/product/tcl-65-class-qm8l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH359" target="_blank" rel="nofollow">65-inch TCL QM8L for $1,799 at Best Buy</a>. The <a href="https://www.bestbuy.com/product/tcl-75-class-qm8l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH3FX" target="_blank" rel="nofollow">75-inch QM8L is just $1,999 at Best Buy</a> at the time of publishing.</p><p>Having been on the shelves since last year, the QM9K is significantly cheaper. Right now, the <a href="https://www.bestbuy.com/product/tcl-65-class-qm9k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQZXX" target="_blank" rel="nofollow">65-inch QM9K is just $1,299 at Best Buy</a>, which is a full $500 less than the QM8L.</p><p>If you're not concerned about its limited HDMI 2.1 flexibility and its slightly less-voluminous color, the TCL QM9K could very well be the better pick for you and your budget.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L review</a></li><li><a href="https://www.tomsguide.com/tvs/tcl-qm9k-mini-led-tv-review">TCL QM9K review</a></li><li><a href="https://www.tomsguide.com/tvs/the-ram-crisis-came-for-computers-first-and-now-its-coming-for-tvs-heres-why-i-recommend-upgrading-while-you-still-can">The RAM crisis came for computers first and now it's coming for TVs — here's why I recommend upgrading while you still can</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/tcl-qm8l-vs-qm9k-is-the-new-sqd-tv-worth-it</link>
                                                                            <description>
                            <![CDATA[ The QM9K is one of TCL's best Mini-LED TVs of 2025, but the TCL QM8L is the brand's all-new, Super Quantum Dot (SQD) TV. Here's how they compare — from performance to features and price. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">cgJprwC3DSPFVhsd9zWnf5</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/whwAAUuijugog9aggXod7j-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 31 May 2026 11:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/whwAAUuijugog9aggXod7j-1280-80.jpg">
                                                            <media:credit><![CDATA[TCL]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The TCL QM8L SQD Mini-LED TV side by side with the TCL QM9K Mini-LED TV]]></media:description>                                                            <media:text><![CDATA[The TCL QM8L SQD Mini-LED TV side by side with the TCL QM9K Mini-LED TV]]></media:text>
                                <media:title type="plain"><![CDATA[The TCL QM8L SQD Mini-LED TV side by side with the TCL QM9K Mini-LED TV]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/whwAAUuijugog9aggXod7j-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L</a> is a 2026 Mini-LED TV that leverages a new type of display technology (Super Quantum Dot) for brighter color. According to our tests, the QM8L's picture is bright, punchy and accurate, and it rounds out its impressive performance with a thorough collection of features.</p><p>The <a href="https://www.tomsguide.com/tvs/tcl-qm9k-mini-led-tv-review">TCL QM9K</a>, on the other hand, made its debut last year. It's one of the brightest Mini-LED TVs we've ever tested, but it's <em>not</em> equipped with TCL's Super Quantum Dot (SQD) technology, so it's not quite as colorful as the QM8L. However, as it's a 2025 TV, it can be bought for much less than the newer QM8L.</p><p>If you're in the market for a bright, high-performance Mini-LED TV this year, you may find yourself sizing up these two TCL TVs. Here's how they compare — from performance to features and price.</p>        <div class="featured_product_block featured_block_versus" data-id="27c98386-334a-46f4-9d66-2e8abb5a5403">            <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review" data-model-name="TCL 75QM8L SQD-Mini LED" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/y6zxm2KoohC6JFqu4fBaof.jpg" alt="The TCL QM8L SQD Mini-LED TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL QM8L</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="80" /></span></div>                                        <p><p>A brand-new TV for 2026, the QM8L leverages TCL's newest display technology, Super Quantum Dot, to enhance its color and overall brightness. It's a slightly better-performing TV than last year's QM9K, but as a newer model, you'll pay more for it. </p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_versus" data-id="965327bf-8048-4bb5-ac8a-2130151ef63f">            <a href="https://www.tomsguide.com/tvs/tcl-qm9k-mini-led-tv-review" data-model-name="TCL QM9K QD-Mini LED 4K TV (2025),TLC QM9K 65-inch QD-Mini LED 4K TV (2025),TLC QM9K 75-inch QD-Mini LED 4K TV (2025),TLC QM9K 85-inch QD-Mini LED 4K TV (2025),TCL QM9K 98-inch QD-Mini LED 4K TV (2025)" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:60.13%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/mYhyRwenBUQFzbHyJxCpzh.jpg" alt="The TCL QM9K on a white background."></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL QM9K</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="80" /></span></div>                                        <p><p>The QM9K isn't as colorful as the SQD-equipped QM8L, but its overall performance profile (including brightness) is otherwise similar. As a year-old model, it's cheaper than the QM8L, making it a better pick for people who want to save money.</p></p>                </div>                            </div>        </div><h2 id="tcl-qm8l-vs-qm9k-specs-compared">TCL QM8L vs QM9K: specs compared</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL QM8L</p></th><th  ><p>TCL QM9K</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Sizes</strong></p></td><td  ><p>65", 75", 85", 98"</p></td><td  ><p>65", 75", 85", 98"</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>4x HDMI 2.1</p></td><td  ><p>2x HDMI 2.1, 2x HDMI 2.0</p></td></tr><tr><td class="firstcol " ><p><strong>Resolution</strong></p></td><td  ><p>3,840 x 2,160p</p></td><td  ><p>3,840 x 2,160p</p></td></tr><tr><td class="firstcol " ><p><strong>Refresh rate</strong></p></td><td  ><p>144Hz</p></td><td  ><p>144Hz</p></td></tr><tr><td class="firstcol " ><p><strong>HDR</strong></p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td></tr><tr><td class="firstcol " ><p><strong>Smart TV software</strong></p></td><td  ><p>Google TV</p></td><td  ><p>Google TV</p></td></tr><tr><td class="firstcol " ><p><strong>ATSC 3.0 support?</strong></p></td><td  ><p>Yes</p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Processor</strong></p></td><td  ><p>TSR AI Pro Processor</p></td><td  ><p>TCL AIPQ Pro Processor</p></td></tr></tbody></table></div><p>Both of these TVs are available in screen sizes ranging from 65 to 98 inches. This means that people shopping for something smaller will have to shop other options. In addition, both sets support Dolby Vision <em>and  </em>the royalty-free version of Dolby Vision, HDR10+. </p><p>Another nice bonus is that, regardless of whichever TV you opt for, you'll be getting ATSC 3.0 support as a key feature. ATSC 3.0 allows over-the-air broadcasts to arrive in their native 4K resolution via antenna. UHD broadcasts are still relatively hard to come by, but if you watch your fair share of over-the-air broadcasts via antenna, this is a nice feature to have in your back pocket.</p><p>One of the primary differences between these sets has to do with their connectivity options. The QM8L offers a full suite of HDMI 2.1 inputs, but on the QM9K, you'll only find two high-bandwidth, HDMI 2.1 inputs. The QM9K's remaining pair of ports is of the HDMI 2.0 variety. As a result, the QM8L is better equipped for folks who plan on connecting multiple gaming devices, as they won't have to worry about a console being relegated to a less-capable, HDMI 2.0 port.</p><p><em><strong>Winner: </strong></em><em>TCL QM8L</em></p><h2 id="tcl-qm8l-vs-qm9k-design">TCL QM8L vs QM9K: design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="d8mR67WQMwWr25Zdb7Um9h" name="TCL-75QM8L-TV-15" alt="The back of a TCL QM8L TV" src="https://cdn.mos.cms.futurecdn.net/d8mR67WQMwWr25Zdb7Um9h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Thanks in part to its display technology, the TCL QM8L (seen above) is bulkier than many LED-based sets. That said, its overall look is mostly refined.</p><p>The QM8L's chassis bulges out of the back of the panel, but not to an extreme degree. It rests on a heavy, pedestal-style stand that sits below the center of the screen. This design decision is helpful, as it allows people to place the QM8L on a narrower piece of furniture even if they opt for one of the larger screen sizes.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="GygMt5zaGUq2LXb8uXduH5" name="TCL QM9K--15" alt="The back of a TCL QM9K TV" src="https://cdn.mos.cms.futurecdn.net/GygMt5zaGUq2LXb8uXduH5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As you can see, the QM9K (seen above) is quite similar, despite the fact that it's not leveraging an SQD display Like the QM8L, it also makes use of a pedestal-style stand in the center of the screen.</p><p>Regardless of which TV you choose, you'll be getting a conveniently backlit remote control. It may sound ridiculous, but this is one of my favorite features on both models. You don't realize just how much you need a feature like this until you suddenly don't have it.</p><p>Given their near-identical designs, this category is too close to call. They're not ultra-thin like some of the slimmer OLED TVs we've seen in recent years, but both of sets are among the best-designed TCL TVs I've seen to date.</p><p><em><strong>Winner:</strong></em><em> Draw</em></p><h2 id="tcl-qm8l-vs-qm9k-performance">TCL QM8L vs QM9K: performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="PmxEtehPXB5NsVy7PR4HH5" name="TCL QM9K--11" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/PmxEtehPXB5NsVy7PR4HH5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Before we dig deeper into how these TVs look, let's compare their test results. (Both TVs were in their respective Filmmaker picture modes when these tests were taken.)</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>TCL QM8L</strong></p></th><th  ><p><strong>TCL QM9K</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>SDR Brightness (10%, in nits)    </strong></p></td><td  ><p>229</p></td><td  ><p>224</p></td></tr><tr><td class="firstcol " ><p><strong>Delta-E (lower is better)    </strong></p></td><td  ><p>3.7</p></td><td  ><p>1.8</p></td></tr><tr><td class="firstcol " ><p><strong>HDR Brightness (10%, in nits)    </strong></p></td><td  ><p>3,719</p></td><td  ><p>4,207</p></td></tr><tr><td class="firstcol " ><p><strong>UHDA-P3 Gamut Coverage    </strong></p></td><td  ><p>97.97%</p></td><td  ><p>97.05%</p></td></tr><tr><td class="firstcol " ><p><strong>Rec.2020 Gamut Coverage    </strong></p></td><td  ><p>90.34% </p></td><td  ><p>80.29%</p></td></tr><tr><td class="firstcol " ><p><strong>Input latency (milliseconds)   </strong></p></td><td  ><p>9.5</p></td><td  ><p>13</p></td></tr></tbody></table></div><p>These are similar TVs, no doubt, but there are still some important points to consider about their performance. </p><p>According to our test results, the QM9K is slightly brighter than the QM8L during HDR content. However, this measurement involves highlight brightness (small areas rather than the entire picture), and I suspect that most viewers wouldn't be able to see much a difference outside of a side-by-side comparison.</p><p>The bigger difference here is color volume: Thanks in large part to its SQD-equipped panel, the QM8L comes in with richer, brighter color than the QM9K.</p><div><blockquote><p>The QM8L comes in with richer, brighter color than the QM9K.</p></blockquote></div><p>  </p><p>While it's true that the QM9K does a marginally better job dialing-in its color points in Filmmaker mode, the difference between a Delta-E of 3.7 and 1.8 isn't <em>that</em> significant, so you can expect a similar level of out-of-the-box accuracy across both TVs. A Delta-E of 3 is considered by many to be the threshold in which the human eye can perceive color error, and so 3.7 is a fine result.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="ocZjqjYRGHtmAdkWGHbsVc" name="TCL-75QM8L-TV-2" alt="A 75-inch TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/ocZjqjYRGHtmAdkWGHbsVc.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The QM8L offers lower input latency, which dedicated gamers will surely appreciate. In fact, given the figures at play, I'd easily take the 9.5-millesecond measurement put forth by the QM8L over the QM9K's slightly better Delta-E measurement in Filmmaker mode. I'd likely notice the lower input lag before I clocked the added color error.</p><p>Taken as a whole, the QM8L's added color and lower input latency make for a better overall experience, but not by very much. These are bright, colorful TVs with terrific backlight control, decent upscaling and accurate presentations. The QM8L takes this category, but it's quite close. </p><p><em><strong>Winner:</strong></em><em> TCL QM8L</em></p><h2 id="tcl-qm8l-vs-qm9k-smart-platform-and-features">TCL QM8L vs QM9K: smart platform and features</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xPkDixgPM87Ew7aKv756H5" name="TCL QM9K--01-LIST" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/xPkDixgPM87Ew7aKv756H5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Both the TCL QM8L and the QM9K are built around the Google TV streaming platform. It's one of my preferred software suites available today, as it's quite snappy to navigate and its library of downloadable apps is massive.</p><p>The QM8L and QM9K both come with a similar set of out-of-the-box gaming features, too. Their toolkits include Variable Refresh Rate (VRR) and AMD FreeSync Premium Pro (for smooth, artifact-free gaming), as well as TCL's Game Bar, a quick-access menu that  lets users access the most relevant gaming features with the press of a button.</p><p>Each set supports 4K gaming at 120Hz, the highest 4K spec among current-generation consoles. If you're inclined to link up a gaming PC to your next TV, both the QM8L and QM9K are capable of showcasing 4K games at 144Hz with VRR.</p><p>It's important to remember, though, that the QM9K is rolling with just two HDMI 2.1-compatible inputs. In order to access the features outlined above, you've got to plug your devices into one of those ports. The QM8L, on the other hand, is outfitted with <em>four</em> high-bandwidth, HDMI 2.1-compatible inputs, so it's far more flexible. </p><p>However, we've already come to terms with this limitation when comparing these TVs' respective specs. In almost every other way that matters, they offer a nearly identical set of features.</p><p><em><strong>Winner:  </strong></em><em>Draw</em></p><h2 id="tcl-qm8l-vs-qm9k-outlook">TCL QM8L vs QM9K: outlook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="cxKfxMpAxWVsquovjzc4sg" name="TCL-75QM8L-TV-6" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/cxKfxMpAxWVsquovjzc4sg.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL QM8L</p></th><th  ><p>TCL QM9K</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Specs (25)</strong></p></td><td  ><p>23</p></td><td  ><p>21</p></td></tr><tr><td class="firstcol " ><p><strong>Design (25)</strong></p></td><td  ><p>22</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Performance (25)</strong></p></td><td  ><p>23</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Features (25)</strong></p></td><td  ><p>23</p></td><td  ><p>23</p></td></tr><tr><td class="firstcol " ><p><strong>Total Score (100)</strong></p></td><td  ><p><strong>91</strong></p></td><td  ><p><strong>88</strong></p></td></tr></tbody></table></div><p>If you're shopping for a new TV and you've got your eyes on a TCL-branded model, the QM8L and the QM9K are among the best you can buy right now. Regardless of whichever you choose, you're going to walk away with a bright, color picture and a heaping helping of added features.</p><p>The QM8L's SQD-powered picture is more colorful than the standard quantum-dot presentation you'll get with the QM9K. However, when it comes to overall brightness, both sets are working with a similar amount of nits. This means they're both totally fine for bright-room viewing.</p><p>Gamers ought to take a closer look at the QM8L on account of its full slate of HDMI 2.1 inputs. Depending on how many devices you own, this detail could be worth the extra cost.</p><p>Let's talk about price. The QM8L just launched at $2,499 for a 65-inch version, but it didn't take long to go on sale. Right now, you can get the <a href="https://www.bestbuy.com/product/tcl-65-class-qm8l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH359" target="_blank" rel="nofollow">65-inch TCL QM8L for $1,799 at Best Buy</a>. The <a href="https://www.bestbuy.com/product/tcl-75-class-qm8l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH3FX" target="_blank" rel="nofollow">75-inch QM8L is just $1,999 at Best Buy</a> at the time of publishing.</p><p>Having been on the shelves since last year, the QM9K is significantly cheaper. Right now, the <a href="https://www.bestbuy.com/product/tcl-65-class-qm9k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQZXX" target="_blank" rel="nofollow">65-inch QM9K is just $1,299 at Best Buy</a>, which is a full $500 less than the QM8L.</p><p>If you're not concerned about its limited HDMI 2.1 flexibility and its slightly less-voluminous color, the TCL QM9K could very well be the better pick for you and your budget.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L review</a></li><li><a href="https://www.tomsguide.com/tvs/tcl-qm9k-mini-led-tv-review">TCL QM9K review</a></li><li><a href="https://www.tomsguide.com/tvs/the-ram-crisis-came-for-computers-first-and-now-its-coming-for-tvs-heres-why-i-recommend-upgrading-while-you-still-can">The RAM crisis came for computers first and now it's coming for TVs — here's why I recommend upgrading while you still can</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Here comes ‘Super Quantum Dot’ — why you need to watch out for this buzzword if you’re shopping for a TV in 2026 ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The newest and <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TVs</a> of 2026 are coming in hot. And, while plenty of ink has been spilled about <a href="https://www.tomsguide.com/tvs/micro-led-vs-micro-rgb-tvs-whats-the-difference">RGB LED TVs</a> and the latest OLEDs, there’s one type of TV technology that hasn’t received as much attention: Super Quantum Dot.</p><p>Abbreviated ‘SQD,’ this enhanced version of a traditional quantum-dot display is quietly making a serious impression on my TV-testing colleagues and me. SQD TVs are similar to regular QLED TVs, but they're engineered to do take quantum dots to the next level.</p><p>If you’re in the market for a new TV this year — especially if you have an eye for picture quality — you ought to familiarize yourself with Super Quantum Dot technology.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="high" data-lazy-src="https://www.youtube-nocookie.com/embed/WF2A1fPWs44" allowfullscreen></iframe></div></div><h2 id="what-are-super-quantum-dot-sqd-tvs">What are Super Quantum Dot (SQD) TVs?</h2><p>Making their global debut in 2026, SQD TVs are a new spin on the tried and true combination of Mini-LED backlighting and quantum dot color. Despite many similarities between QLEDs and SQD TVs, the latter promises — and, according to our test results, delivers — brighter, purer color than what you'll commonly get on a regular, quantum dot-enhanced LED TV.</p><p>Without going too far into the weeds, the Super Quantum Dot recipe is made up of a several ingredients: reformulated quantum dots, a new, advanced color filter to go along with said quantum dots and some algorithmic functions designed to keep the display's colors consistent.</p><p>TCL, the brand behind SQD technology, refers to that last bit as its Advanced Color Purity Algorithm. When taken as a whole, all of these elements form TCL's proprietary Deep Color System, engineered for eye-popping color.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:717px;"><p class="vanilla-image-block" style="padding-top:56.21%;"><img id="tqSC6wLWm9PM5mr6gdmq7W" name="TCL-SQD-Mini-LED-TV-explained" alt="An infographic explaining SQD technology in which the many layers of an SQD Mini-LED display are separated and labeled" src="https://cdn.mos.cms.futurecdn.net/tqSC6wLWm9PM5mr6gdmq7W.jpg" mos="" align="middle" fullscreen="" width="717" height="403" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>But the real question is whether or not this technology works. We've had the luxury of getting up close and personal with two SQD TVs so far in 2026 —the <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">TCL X11L</a> and the <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L</a> — and so far, the test results speak for themselves.</p><p>On the chart below you'll find both SQD TVs we've tested alongside a quantum dot-enhanced OLED TV (the<a href="https://www.tomsguide.com/tvs/4k-tvs/samsung-s95f-oled-tv-review"> Samsung S95F</a>) that offered up some of the best color results we measured last year. For added context, I've included TCL's best-performing quantum-dot TV from 2025, the <a href="https://www.tomsguide.com/tvs/tcl-qm9k-mini-led-tv-review">QM9K</a>.</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL X11L (SQD)</p></th><th  ><p>TCL QM8L (SQD)</p></th><th  ><p>Samsung S95F (QD-OLED)</p></th><th  ><p>TCL QM9K (QD Mini-LED)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Rec. 2020 Gamut Coverage</strong></p></td><td  ><p>91.77%</p></td><td  ><p>90.34%</p></td><td  ><p>90.26%</p></td><td  ><p>80.29%</p></td></tr></tbody></table></div><p>When it comes to color, not only do the pair of TCL SQD TVs outpace Samsung's QD-OLED by a hair, they blow right past TCL's best-performing Mini-LED TV from last year, the QM9K. All of the TCL TVs in the chart above make use of Mini-LED backlighting, but only the SQD TVs' enhanced hardware allows for QD-OLED-levels of color.</p><p>These SQD TVs lag behind the few RGB LED TVs we've tested ever so slightly (the <a href="https://www.tomsguide.com/tvs/qled-tvs/hisense-ur9-rgb-mini-led-tv-review">Hisense UR9 RGB Mini-LED TV</a> covers about 93% of the BT.2020 color space), but TCL's figures are nothing to scoff at.</p><p>In other words, if you're looking for the brightest, purest color money can buy in 2026, there are three types of TV that ought to be on your radar: quantum dot-enhanced OLED (QD-OLED), RGB LED, and now, SQD Mini-LED.</p><h2 id="should-you-buy-an-sqd-tv">Should you buy an SQD TV?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="shkHAss34WvgRxZNKA6Zvb" name="TCL-75QM8L-TV-6" alt="A 75-inch TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/shkHAss34WvgRxZNKA6Zvb.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If you're looking for a visually stunning TV for less than the price of what you'd end up paying for most QD-OLEDs or RGB LED TVs, Super Quantum Dot might be the way to go.</p><p>Currently, the only TV-maker selling SQD TVs is TCL. But the good news is that the brand is offering several different avenues for folks looking to get in on these souped-up QLEDs.</p><p>As mentioned, we tested TCL's top-tier SQD TV (the X11L) and walked away impressed. However, as TCL's best TV for 2026, the X11L doesn't quite have mass appeal. It's only available in 75-, 85- and 98-inch sizes, and the <a href="https://www.bestbuy.com/product/tcl-75-x11l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTHX27/sku/6668234" target="_blank" rel="nofollow">75-inch TCL X11L is $3,923 at Best Buy</a> at the time of publishing.</p><p>This is why I recommend taking a look at the TCL QM8L. This set is available in the ever-popular 65-inch screen size, and it starts at $1,799.</p><div class="product"><a data-dimension112="d407e7bb-48ab-4c19-8835-e064ef6773b6" data-action="Deal Block" data-label="65" QM8L SQD Mini-LED 4K TV" data-dimension48="65" QM8L SQD Mini-LED 4K TV" data-dimension25="$1799" href="https://www.bestbuy.com/product/tcl-65-class-qm8l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH359/sku/6672675" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="y6zxm2KoohC6JFqu4fBaof" name="TCL-QM8L-SQD-Mini-LED-TV-deal-block-16-by-9" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/y6zxm2KoohC6JFqu4fBaof.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-65-class-qm8l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH359/sku/6672675" target="_blank" rel="nofollow" data-dimension112="d407e7bb-48ab-4c19-8835-e064ef6773b6" data-action="Deal Block" data-label='65" QM8L SQD Mini-LED 4K TV' data-dimension48='65" QM8L SQD Mini-LED 4K TV' data-dimension25="$1799">65" QM8L SQD Mini-LED 4K TV: was $2499 now $1799</a></strong><br>The TCL QM8L is a fantastic way to experience SQD Mini-LED technology for much less than what you'll spend on a higher-end model. We recently awarded this TV a 4-star rating for its sensational contrast, its thorough collection of features and, of course, its eye-popping color.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-65-class-qm8l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH359/sku/6672675" target="_blank" rel="nofollow" data-dimension112="d407e7bb-48ab-4c19-8835-e064ef6773b6" data-action="Deal Block" data-label="65" QM8L SQD Mini-LED 4K TV" data-dimension48="65" QM8L SQD Mini-LED 4K TV" data-dimension25="$1799">View Deal</a></p></div><p>And, while we're still in the process of evaluating it, TCL is also rolling out an entry-level SQD TV: the TCL QM7L. This set is available at an even smaller size of 55 inches, and right now, the <a href="https://www.bestbuy.com/product/tcl-55-class-qm7l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTHLR6/sku/6673190" target="_blank" rel="nofollow">55-inch TCL QM7L is just $999 at Best Buy</a>.</p><p>Having not seen the QM7L in person yet, I still recommend the QM8L above it. That said, its wider range of sizes and friendlier price tag ought to suit budget-conscious shoppers who nonetheless wish to experience some cutting-edge TV tech.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/qled-tvs/hisense-ur9-rgb-mini-led-tv-review">OLED is safe: I tested the Hisense UR9 RGB Mini-LED TV, and it's very good but falls short</a></li><li><a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">I tested TCL’s $8,000 SQD Mini-LED TV — here's my verdict</a></li><li><a href="https://www.tomsguide.com/tvs/tcl-and-sony-are-joining-forces-to-sell-more-tvs-but-is-that-bad-news-for-shoppers">TCL and Sony are joining forces to sell more TVs — but is that bad news for shoppers?</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/here-comes-super-quantum-dot-why-you-need-to-watch-out-for-this-buzzword-if-youre-shopping-for-a-tv-in-2026</link>
                                                                            <description>
                            <![CDATA[ Super Quantum Dot (SQD) TVs are here. Here's what you need to know about SQD TV technology and why they might be worth the price. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">PQne9e9UUu6wx7YeKUD7TW</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/P4Za4ooiVYVNuvKJEJsa2W-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 15 May 2026 07:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/P4Za4ooiVYVNuvKJEJsa2W-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[TCL X11L SQD Mini-LED TV on a side table]]></media:description>                                                            <media:text><![CDATA[TCL X11L SQD Mini-LED TV on a side table]]></media:text>
                                <media:title type="plain"><![CDATA[TCL X11L SQD Mini-LED TV on a side table]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/P4Za4ooiVYVNuvKJEJsa2W-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The newest and <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TVs</a> of 2026 are coming in hot. And, while plenty of ink has been spilled about <a href="https://www.tomsguide.com/tvs/micro-led-vs-micro-rgb-tvs-whats-the-difference">RGB LED TVs</a> and the latest OLEDs, there’s one type of TV technology that hasn’t received as much attention: Super Quantum Dot.</p><p>Abbreviated ‘SQD,’ this enhanced version of a traditional quantum-dot display is quietly making a serious impression on my TV-testing colleagues and me. SQD TVs are similar to regular QLED TVs, but they're engineered to do take quantum dots to the next level.</p><p>If you’re in the market for a new TV this year — especially if you have an eye for picture quality — you ought to familiarize yourself with Super Quantum Dot technology.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="high" data-lazy-src="https://www.youtube-nocookie.com/embed/WF2A1fPWs44" allowfullscreen></iframe></div></div><h2 id="what-are-super-quantum-dot-sqd-tvs">What are Super Quantum Dot (SQD) TVs?</h2><p>Making their global debut in 2026, SQD TVs are a new spin on the tried and true combination of Mini-LED backlighting and quantum dot color. Despite many similarities between QLEDs and SQD TVs, the latter promises — and, according to our test results, delivers — brighter, purer color than what you'll commonly get on a regular, quantum dot-enhanced LED TV.</p><p>Without going too far into the weeds, the Super Quantum Dot recipe is made up of a several ingredients: reformulated quantum dots, a new, advanced color filter to go along with said quantum dots and some algorithmic functions designed to keep the display's colors consistent.</p><p>TCL, the brand behind SQD technology, refers to that last bit as its Advanced Color Purity Algorithm. When taken as a whole, all of these elements form TCL's proprietary Deep Color System, engineered for eye-popping color.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:717px;"><p class="vanilla-image-block" style="padding-top:56.21%;"><img id="tqSC6wLWm9PM5mr6gdmq7W" name="TCL-SQD-Mini-LED-TV-explained" alt="An infographic explaining SQD technology in which the many layers of an SQD Mini-LED display are separated and labeled" src="https://cdn.mos.cms.futurecdn.net/tqSC6wLWm9PM5mr6gdmq7W.jpg" mos="" align="middle" fullscreen="" width="717" height="403" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>But the real question is whether or not this technology works. We've had the luxury of getting up close and personal with two SQD TVs so far in 2026 —the <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">TCL X11L</a> and the <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L</a> — and so far, the test results speak for themselves.</p><p>On the chart below you'll find both SQD TVs we've tested alongside a quantum dot-enhanced OLED TV (the<a href="https://www.tomsguide.com/tvs/4k-tvs/samsung-s95f-oled-tv-review"> Samsung S95F</a>) that offered up some of the best color results we measured last year. For added context, I've included TCL's best-performing quantum-dot TV from 2025, the <a href="https://www.tomsguide.com/tvs/tcl-qm9k-mini-led-tv-review">QM9K</a>.</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL X11L (SQD)</p></th><th  ><p>TCL QM8L (SQD)</p></th><th  ><p>Samsung S95F (QD-OLED)</p></th><th  ><p>TCL QM9K (QD Mini-LED)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Rec. 2020 Gamut Coverage</strong></p></td><td  ><p>91.77%</p></td><td  ><p>90.34%</p></td><td  ><p>90.26%</p></td><td  ><p>80.29%</p></td></tr></tbody></table></div><p>When it comes to color, not only do the pair of TCL SQD TVs outpace Samsung's QD-OLED by a hair, they blow right past TCL's best-performing Mini-LED TV from last year, the QM9K. All of the TCL TVs in the chart above make use of Mini-LED backlighting, but only the SQD TVs' enhanced hardware allows for QD-OLED-levels of color.</p><p>These SQD TVs lag behind the few RGB LED TVs we've tested ever so slightly (the <a href="https://www.tomsguide.com/tvs/qled-tvs/hisense-ur9-rgb-mini-led-tv-review">Hisense UR9 RGB Mini-LED TV</a> covers about 93% of the BT.2020 color space), but TCL's figures are nothing to scoff at.</p><p>In other words, if you're looking for the brightest, purest color money can buy in 2026, there are three types of TV that ought to be on your radar: quantum dot-enhanced OLED (QD-OLED), RGB LED, and now, SQD Mini-LED.</p><h2 id="should-you-buy-an-sqd-tv">Should you buy an SQD TV?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="shkHAss34WvgRxZNKA6Zvb" name="TCL-75QM8L-TV-6" alt="A 75-inch TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/shkHAss34WvgRxZNKA6Zvb.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If you're looking for a visually stunning TV for less than the price of what you'd end up paying for most QD-OLEDs or RGB LED TVs, Super Quantum Dot might be the way to go.</p><p>Currently, the only TV-maker selling SQD TVs is TCL. But the good news is that the brand is offering several different avenues for folks looking to get in on these souped-up QLEDs.</p><p>As mentioned, we tested TCL's top-tier SQD TV (the X11L) and walked away impressed. However, as TCL's best TV for 2026, the X11L doesn't quite have mass appeal. It's only available in 75-, 85- and 98-inch sizes, and the <a href="https://www.bestbuy.com/product/tcl-75-x11l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTHX27/sku/6668234" target="_blank" rel="nofollow">75-inch TCL X11L is $3,923 at Best Buy</a> at the time of publishing.</p><p>This is why I recommend taking a look at the TCL QM8L. This set is available in the ever-popular 65-inch screen size, and it starts at $1,799.</p><div class="product"><a data-dimension112="d407e7bb-48ab-4c19-8835-e064ef6773b6" data-action="Deal Block" data-label="65" QM8L SQD Mini-LED 4K TV" data-dimension48="65" QM8L SQD Mini-LED 4K TV" data-dimension25="$1799" href="https://www.bestbuy.com/product/tcl-65-class-qm8l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH359/sku/6672675" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="y6zxm2KoohC6JFqu4fBaof" name="TCL-QM8L-SQD-Mini-LED-TV-deal-block-16-by-9" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/y6zxm2KoohC6JFqu4fBaof.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-65-class-qm8l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH359/sku/6672675" target="_blank" rel="nofollow" data-dimension112="d407e7bb-48ab-4c19-8835-e064ef6773b6" data-action="Deal Block" data-label='65" QM8L SQD Mini-LED 4K TV' data-dimension48='65" QM8L SQD Mini-LED 4K TV' data-dimension25="$1799">65" QM8L SQD Mini-LED 4K TV: was $2499 now $1799</a></strong><br>The TCL QM8L is a fantastic way to experience SQD Mini-LED technology for much less than what you'll spend on a higher-end model. We recently awarded this TV a 4-star rating for its sensational contrast, its thorough collection of features and, of course, its eye-popping color.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-65-class-qm8l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH359/sku/6672675" target="_blank" rel="nofollow" data-dimension112="d407e7bb-48ab-4c19-8835-e064ef6773b6" data-action="Deal Block" data-label="65" QM8L SQD Mini-LED 4K TV" data-dimension48="65" QM8L SQD Mini-LED 4K TV" data-dimension25="$1799">View Deal</a></p></div><p>And, while we're still in the process of evaluating it, TCL is also rolling out an entry-level SQD TV: the TCL QM7L. This set is available at an even smaller size of 55 inches, and right now, the <a href="https://www.bestbuy.com/product/tcl-55-class-qm7l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTHLR6/sku/6673190" target="_blank" rel="nofollow">55-inch TCL QM7L is just $999 at Best Buy</a>.</p><p>Having not seen the QM7L in person yet, I still recommend the QM8L above it. That said, its wider range of sizes and friendlier price tag ought to suit budget-conscious shoppers who nonetheless wish to experience some cutting-edge TV tech.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/qled-tvs/hisense-ur9-rgb-mini-led-tv-review">OLED is safe: I tested the Hisense UR9 RGB Mini-LED TV, and it's very good but falls short</a></li><li><a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">I tested TCL’s $8,000 SQD Mini-LED TV — here's my verdict</a></li><li><a href="https://www.tomsguide.com/tvs/tcl-and-sony-are-joining-forces-to-sell-more-tvs-but-is-that-bad-news-for-shoppers">TCL and Sony are joining forces to sell more TVs — but is that bad news for shoppers?</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I’ve spent over a decade testing TVs and these are the only 3 I would buy for under $500 ]]></title>
                                                                                                <dc:content><![CDATA[ <p>I love cheap TVs. No, really — I do.</p><p>As fun as it is to bask in the glory of a detail-rich, OLED-driven picture, or to park myself in front of the bright, borderline-psychedelic colors blasting out of an RGB LED TV, the <a href="https://www.tomsguide.com/best-picks/best-budget-tvs">best budget TVs</a> offer tremendous performance. Regardless of whether you’re a sports fan, binge-watcher or competitive gamer, upgrading your leisure time without breaking the bank can be a massive win.  </p><p>Unfortunately, at any given time, there are only a handful of models under the $500 mark that I feel super confident in recommending. The good news, though, is that cheap TVs have arguably never been better than they are right now. You just need to know how to shop for one.</p><h2 id="1-hisense-u65qf">1. Hisense U65QF</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="5fVCCVVb4Hg56M5cA8UqTi" name="Hisense-U65QF-02" alt="Hisense U65QF in an apartment" src="https://cdn.mos.cms.futurecdn.net/5fVCCVVb4Hg56M5cA8UqTi.jpg" mos="" align="middle" fullscreen="" width="1500" height="844" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Hisense)</span></figcaption></figure><p>Recently, a pub-owner and dear friend of mine asked me for help buying a TV ahead of the 2026 World Cup. They didn’t want to spend too much, but they needed a bright-enough screen for the set to sit outside (weather permitting). The Hisense U65QF was my first pick.</p><p>Now, my bar-owning friend was in the market for something big — like 75 or 85 inches. It’ll come as no surprise that these sizes are above $500. But the 55-inch version clocks in at a cool $399, and it’s well worth a look.</p><p>You can get the full picture on this TV by checking out our <a href="https://www.tomsguide.com/tvs/4k-tvs/hisense-u65qf-mini-led-tv-review">Hisense U65QF review</a>, but here's the most important bit to know: The U65QF offers better brightness than just almost everything in this price bracket.</p><p>This is in large part because the U65QF features Mini-LED backlighting. These super-small LEDs typically allow for better overall contrast than what you'll see on garden-variety, <a href="https://www.tomsguide.com/tvs/local-dimming-on-tvs-explained-direct-lit-vs-full-array-vs-edge-lit">edge-lit LED TVs</a> (which are quite prevalent at the sub-$500 price point).</p><p>Being the brightest TV in its class means that the U65QF is a great choice for people who watch a ton of TV during the day as well as folks with well-lit living spaces. According to our test results, the U65QF is also very accurate right out of the box in Filmmaker mode, which means eagle-eyed viewers don't need to worry about grossly inaccurate color.</p><p>Just a heads up: The U65QF comes with Amazon's Fire TV smart platform built right in. It's not my favorite software suite for streaming, but <a href="https://www.tomsguide.com/tvs/amazon-is-finally-rolling-out-some-much-needed-upgrades-to-fire-tv-heres-why-i-think-they-could-be-a-game-changer">Amazon is rolling out updates</a> for it this year that seek to improve its interface and overall performance. That said, if you're looking for a Google TV-equipped TV, take a look at my next pick.</p><div class="product"><a data-dimension112="6beb00d7-63fa-42aa-a174-8757ebeb22fc" data-action="Deal Block" data-label="55" U65QF 4K Mini-LED TV" data-dimension48="55" U65QF 4K Mini-LED TV" data-dimension25="$399" href="https://www.amazon.com/Hisense-Class-Mini-LED-55U65QF-Built/dp/B0DYWG3BL1/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:900px;"><p class="vanilla-image-block" style="padding-top:60.89%;"><img id="xMqoTz79rH7r2QjMaxD4AV" name="Hisense U65QF" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/xMqoTz79rH7r2QjMaxD4AV.jpg" mos="" align="middle" fullscreen="" width="900" height="548" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Hisense-Class-Mini-LED-55U65QF-Built/dp/B0DYWG3BL1/" target="_blank" rel="nofollow" data-dimension112="6beb00d7-63fa-42aa-a174-8757ebeb22fc" data-action="Deal Block" data-label='55" U65QF 4K Mini-LED TV' data-dimension48='55" U65QF 4K Mini-LED TV' data-dimension25="$399">55" U65QF 4K Mini-LED TV: was $549 now $399</a></strong><br>The U65QF is one of the most affordable Mini-LED TVs on the market, and I highly recommend selecting a Mini-LED TV at the entry-level price point. Enjoy better brightness and overall contrast that what you'll get on a basic, garden-variety LED TV, plus an array of built-in, Fire TV-powered smart features.<a class="view-deal button" href="https://www.amazon.com/Hisense-Class-Mini-LED-55U65QF-Built/dp/B0DYWG3BL1/" target="_blank" rel="nofollow" data-dimension112="6beb00d7-63fa-42aa-a174-8757ebeb22fc" data-action="Deal Block" data-label="55" U65QF 4K Mini-LED TV" data-dimension48="55" U65QF 4K Mini-LED TV" data-dimension25="$399">View Deal</a></p></div><h2 id="2-tcl-qm5k">2. TCL QM5K</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="vCnRGsdCB3mnCFg3YgsEfh" name="TCL-QM5K-Mini-LED-TV-Google-TV-Home-Screen" alt="The TCL QM5K Mini-LED TV displaying the Google TV home screen" src="https://cdn.mos.cms.futurecdn.net/vCnRGsdCB3mnCFg3YgsEfh.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>The TCL QM5K is a Best Buy-exclusive model, so you won’t find it anywhere else. Like the U65QF, the QM5K is an entry-level Mini-LED TV. Unlike the Hisense's set, however, the QM5K is built around the Google TV smart platform, which is my second-favorite smart TV operating system behind Roku.</p><p>If all you’re looking for is an affordable smart TV that doesn’t scrape the bottom of the barrel, the QM5K is a good pick. The 55-inch version is about $50 more than the U65QF at the time of publishing, but you're still landing a Mini-LED TV for under $500.</p><p>Seeing as how the QM5K and U65QF are similar sets, I would recommend the TCL for people who want a smart platform with potentially less friction than the Fire TV experience. If brightness matters to you more than this, I recommend the Hisense.</p><p>(One more thing: I know it's <em>technically</em> above $500, but the <a href="https://www.bestbuy.com/product/tcl-65-class-qm5k-series-4k-uhd-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZ4/sku/6625874" target="_blank" rel="nofollow">65-inch version of the TCL QM5K is just $549 at Best Buy</a> if 55 inches isn't quite big enough for you.)</p><div class="product"><a data-dimension112="4c61c5e8-de85-485d-9b7f-e351d989e1c8" data-action="Deal Block" data-label="55" QM5K Mini-LED TV" data-dimension48="55" QM5K Mini-LED TV" data-dimension25="$449" href="https://www.bestbuy.com/product/tcl-55-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZR" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="a7hfeCnr9iXywQGB8VRvA9" name="TCL-QM5K-Mini-LED-TV-16-by-9-Deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/a7hfeCnr9iXywQGB8VRvA9.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-55-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZR" target="_blank" rel="nofollow" data-dimension112="4c61c5e8-de85-485d-9b7f-e351d989e1c8" data-action="Deal Block" data-label='55" QM5K Mini-LED TV' data-dimension48='55" QM5K Mini-LED TV' data-dimension25="$449">55" QM5K Mini-LED TV: was $699 now $449</a></strong><br>The QM5K arrives with built-in Google TV features for all of your streaming needs, plus Dolby Vision support. Its handiest feature is its Mini-LED backlighting, which is tough to find at this price point. I recommend going with the QM5K over a super-cheap TV from a brand like Insignia or Onn.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-55-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZR" target="_blank" rel="nofollow" data-dimension112="4c61c5e8-de85-485d-9b7f-e351d989e1c8" data-action="Deal Block" data-label="55" QM5K Mini-LED TV" data-dimension48="55" QM5K Mini-LED TV" data-dimension25="$449">View Deal</a></p></div><h2 id="3-roku-plus-series">3. Roku Plus Series</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="fGvXqR83c5eaJ5dpUoPkaK" name="Roku-Plus-Series-TV-2025-Lifestyle-2" alt="The 2025 Roku Plus Series TV, wall-mounted in a contemporary living room, displaying the Roku home screen. The Roku home screen is showcasing various streaming apps." src="https://cdn.mos.cms.futurecdn.net/fGvXqR83c5eaJ5dpUoPkaK.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Roku)</span></figcaption></figure><p>The only 65-inch TV on this list isn't as bright as the Hisense U65QF, nor is it equipped with Google TV. That's OK with me, though, because the 65-inch <a href="https://www.tomsguide.com/reviews/roku-plus-series-4k-qled-tv">Roku Plus Series</a> is built around my all-time favorite smart platform.</p><p>In fact, I use an external Roku device as a daily driver on account of its straightforward interface and robust app support. The Roku Plus Series puts the entire Roku experience into the software of the TV itself — no box or stick required.</p><p>The Plus Series won't net you Mini-LED backlighting, but it <em>does</em> feature direct-LED backlighting with local dimming, which is the next-best option below Mini-LEDs. So it's got that goin' for it.</p><p>But the real star of the show is its software. I've been knee-deep in TV technology for over a decade, and Roku is my number-one pick for streaming. But I also feel comfortable recommending this TV to folks who typically find themselves annoyed at TVs on account of confusing software. Roku truly has that sort of crossover appeal.</p><div class="product"><a data-dimension112="7c383e08-0f91-47f5-bc23-dee961a7637d" data-action="Deal Block" data-label="65" Plus Series 4K QLED TV" data-dimension48="65" Plus Series 4K QLED TV" data-dimension25="$478" href="https://www.amazon.com/Roku-Smart-2025-Television-Streaming/dp/B0DWHFWT5C?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="Yqpaa2DhA8mX79yivyV9PT" name="Roku-Plus-Series-Vanity.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/Yqpaa2DhA8mX79yivyV9PT.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Roku-Smart-2025-Television-Streaming/dp/B0DWHFWT5C?th=1" target="_blank" rel="nofollow" data-dimension112="7c383e08-0f91-47f5-bc23-dee961a7637d" data-action="Deal Block" data-label='65" Plus Series 4K QLED TV' data-dimension48='65" Plus Series 4K QLED TV' data-dimension25="$478">65" Plus Series 4K QLED TV: was $649 now $478</a></strong><br>The Roku Plus Series is a budget-friendly 4K TV that offers a simple-but-powerful backdrop for all of your streaming needs. It's not the brightest TV on the block, but its inclusion of local dimming is very much worth having at this price point. If all you want is an easy-to-use TV that simplifies streaming, the Roku Plus Series is a solid pick.<a class="view-deal button" href="https://www.amazon.com/Roku-Smart-2025-Television-Streaming/dp/B0DWHFWT5C?th=1" target="_blank" rel="nofollow" data-dimension112="7c383e08-0f91-47f5-bc23-dee961a7637d" data-action="Deal Block" data-label="65" Plus Series 4K QLED TV" data-dimension48="65" Plus Series 4K QLED TV" data-dimension25="$478">View Deal</a></p></div><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/these-are-the-5-most-important-things-to-look-for-in-a-cheap-tv-so-you-dont-regret-your-purchase">These are the 5 most important things to look for in a cheap TV so you don't regret your purchase</a></li><li><a href="https://www.tomsguide.com/tvs/4k-tvs/samsung-just-made-its-2026-mini-led-tv-lineup-official-but-one-popular-tv-wont-be-returning-this-year">Samsung just made its 2026 Mini-LED TV lineup official, but one popular TV won’t be returning this year</a></li><li><a href="https://www.tomsguide.com/tvs/should-you-buy-a-new-2026-tv-or-save-money-on-a-2025-model-heres-how-to-shop-for-a-screen-like-an-expert">Should you buy a new 2026 TV or save money on a 2025 model? Here's how to shop for a screen like an expert</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/4k-tvs/ive-spent-over-a-decade-testing-tvs-and-these-are-the-only-3-i-would-buy-for-under-usd500</link>
                                                                            <description>
                            <![CDATA[ Cheap TVs don't have to be disappointing. As a TV expert, these are the only three 4K TVs under $500 I actually recommend from brands like Hisense and TCL. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">EQXw6RmV2au8AsB5kgbWSh</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/PdmtfgmxKwKab8EsByk6gP-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 14 May 2026 07:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[4k TVs]]></category>
                                                    <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/PdmtfgmxKwKab8EsByk6gP-1280-80.jpg">
                                                            <media:credit><![CDATA[Hisense]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Hisense U65QF Mini-LED TV, wall-mounted in a modern living room setting alongside a super-imposed, blue-colored badge that reads: &quot;TG Flex for Less&quot;]]></media:description>                                                            <media:text><![CDATA[The Hisense U65QF Mini-LED TV, wall-mounted in a modern living room setting alongside a super-imposed, blue-colored badge that reads: &quot;TG Flex for Less&quot;]]></media:text>
                                <media:title type="plain"><![CDATA[The Hisense U65QF Mini-LED TV, wall-mounted in a modern living room setting alongside a super-imposed, blue-colored badge that reads: &quot;TG Flex for Less&quot;]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/PdmtfgmxKwKab8EsByk6gP-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I love cheap TVs. No, really — I do.</p><p>As fun as it is to bask in the glory of a detail-rich, OLED-driven picture, or to park myself in front of the bright, borderline-psychedelic colors blasting out of an RGB LED TV, the <a href="https://www.tomsguide.com/best-picks/best-budget-tvs">best budget TVs</a> offer tremendous performance. Regardless of whether you’re a sports fan, binge-watcher or competitive gamer, upgrading your leisure time without breaking the bank can be a massive win.  </p><p>Unfortunately, at any given time, there are only a handful of models under the $500 mark that I feel super confident in recommending. The good news, though, is that cheap TVs have arguably never been better than they are right now. You just need to know how to shop for one.</p><h2 id="1-hisense-u65qf">1. Hisense U65QF</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="5fVCCVVb4Hg56M5cA8UqTi" name="Hisense-U65QF-02" alt="Hisense U65QF in an apartment" src="https://cdn.mos.cms.futurecdn.net/5fVCCVVb4Hg56M5cA8UqTi.jpg" mos="" align="middle" fullscreen="" width="1500" height="844" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Hisense)</span></figcaption></figure><p>Recently, a pub-owner and dear friend of mine asked me for help buying a TV ahead of the 2026 World Cup. They didn’t want to spend too much, but they needed a bright-enough screen for the set to sit outside (weather permitting). The Hisense U65QF was my first pick.</p><p>Now, my bar-owning friend was in the market for something big — like 75 or 85 inches. It’ll come as no surprise that these sizes are above $500. But the 55-inch version clocks in at a cool $399, and it’s well worth a look.</p><p>You can get the full picture on this TV by checking out our <a href="https://www.tomsguide.com/tvs/4k-tvs/hisense-u65qf-mini-led-tv-review">Hisense U65QF review</a>, but here's the most important bit to know: The U65QF offers better brightness than just almost everything in this price bracket.</p><p>This is in large part because the U65QF features Mini-LED backlighting. These super-small LEDs typically allow for better overall contrast than what you'll see on garden-variety, <a href="https://www.tomsguide.com/tvs/local-dimming-on-tvs-explained-direct-lit-vs-full-array-vs-edge-lit">edge-lit LED TVs</a> (which are quite prevalent at the sub-$500 price point).</p><p>Being the brightest TV in its class means that the U65QF is a great choice for people who watch a ton of TV during the day as well as folks with well-lit living spaces. According to our test results, the U65QF is also very accurate right out of the box in Filmmaker mode, which means eagle-eyed viewers don't need to worry about grossly inaccurate color.</p><p>Just a heads up: The U65QF comes with Amazon's Fire TV smart platform built right in. It's not my favorite software suite for streaming, but <a href="https://www.tomsguide.com/tvs/amazon-is-finally-rolling-out-some-much-needed-upgrades-to-fire-tv-heres-why-i-think-they-could-be-a-game-changer">Amazon is rolling out updates</a> for it this year that seek to improve its interface and overall performance. That said, if you're looking for a Google TV-equipped TV, take a look at my next pick.</p><div class="product"><a data-dimension112="6beb00d7-63fa-42aa-a174-8757ebeb22fc" data-action="Deal Block" data-label="55" U65QF 4K Mini-LED TV" data-dimension48="55" U65QF 4K Mini-LED TV" data-dimension25="$399" href="https://www.amazon.com/Hisense-Class-Mini-LED-55U65QF-Built/dp/B0DYWG3BL1/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:900px;"><p class="vanilla-image-block" style="padding-top:60.89%;"><img id="xMqoTz79rH7r2QjMaxD4AV" name="Hisense U65QF" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/xMqoTz79rH7r2QjMaxD4AV.jpg" mos="" align="middle" fullscreen="" width="900" height="548" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Hisense-Class-Mini-LED-55U65QF-Built/dp/B0DYWG3BL1/" target="_blank" rel="nofollow" data-dimension112="6beb00d7-63fa-42aa-a174-8757ebeb22fc" data-action="Deal Block" data-label='55" U65QF 4K Mini-LED TV' data-dimension48='55" U65QF 4K Mini-LED TV' data-dimension25="$399">55" U65QF 4K Mini-LED TV: was $549 now $399</a></strong><br>The U65QF is one of the most affordable Mini-LED TVs on the market, and I highly recommend selecting a Mini-LED TV at the entry-level price point. Enjoy better brightness and overall contrast that what you'll get on a basic, garden-variety LED TV, plus an array of built-in, Fire TV-powered smart features.<a class="view-deal button" href="https://www.amazon.com/Hisense-Class-Mini-LED-55U65QF-Built/dp/B0DYWG3BL1/" target="_blank" rel="nofollow" data-dimension112="6beb00d7-63fa-42aa-a174-8757ebeb22fc" data-action="Deal Block" data-label="55" U65QF 4K Mini-LED TV" data-dimension48="55" U65QF 4K Mini-LED TV" data-dimension25="$399">View Deal</a></p></div><h2 id="2-tcl-qm5k">2. TCL QM5K</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="vCnRGsdCB3mnCFg3YgsEfh" name="TCL-QM5K-Mini-LED-TV-Google-TV-Home-Screen" alt="The TCL QM5K Mini-LED TV displaying the Google TV home screen" src="https://cdn.mos.cms.futurecdn.net/vCnRGsdCB3mnCFg3YgsEfh.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>The TCL QM5K is a Best Buy-exclusive model, so you won’t find it anywhere else. Like the U65QF, the QM5K is an entry-level Mini-LED TV. Unlike the Hisense's set, however, the QM5K is built around the Google TV smart platform, which is my second-favorite smart TV operating system behind Roku.</p><p>If all you’re looking for is an affordable smart TV that doesn’t scrape the bottom of the barrel, the QM5K is a good pick. The 55-inch version is about $50 more than the U65QF at the time of publishing, but you're still landing a Mini-LED TV for under $500.</p><p>Seeing as how the QM5K and U65QF are similar sets, I would recommend the TCL for people who want a smart platform with potentially less friction than the Fire TV experience. If brightness matters to you more than this, I recommend the Hisense.</p><p>(One more thing: I know it's <em>technically</em> above $500, but the <a href="https://www.bestbuy.com/product/tcl-65-class-qm5k-series-4k-uhd-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZ4/sku/6625874" target="_blank" rel="nofollow">65-inch version of the TCL QM5K is just $549 at Best Buy</a> if 55 inches isn't quite big enough for you.)</p><div class="product"><a data-dimension112="4c61c5e8-de85-485d-9b7f-e351d989e1c8" data-action="Deal Block" data-label="55" QM5K Mini-LED TV" data-dimension48="55" QM5K Mini-LED TV" data-dimension25="$449" href="https://www.bestbuy.com/product/tcl-55-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZR" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="a7hfeCnr9iXywQGB8VRvA9" name="TCL-QM5K-Mini-LED-TV-16-by-9-Deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/a7hfeCnr9iXywQGB8VRvA9.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-55-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZR" target="_blank" rel="nofollow" data-dimension112="4c61c5e8-de85-485d-9b7f-e351d989e1c8" data-action="Deal Block" data-label='55" QM5K Mini-LED TV' data-dimension48='55" QM5K Mini-LED TV' data-dimension25="$449">55" QM5K Mini-LED TV: was $699 now $449</a></strong><br>The QM5K arrives with built-in Google TV features for all of your streaming needs, plus Dolby Vision support. Its handiest feature is its Mini-LED backlighting, which is tough to find at this price point. I recommend going with the QM5K over a super-cheap TV from a brand like Insignia or Onn.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-55-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZR" target="_blank" rel="nofollow" data-dimension112="4c61c5e8-de85-485d-9b7f-e351d989e1c8" data-action="Deal Block" data-label="55" QM5K Mini-LED TV" data-dimension48="55" QM5K Mini-LED TV" data-dimension25="$449">View Deal</a></p></div><h2 id="3-roku-plus-series">3. Roku Plus Series</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="fGvXqR83c5eaJ5dpUoPkaK" name="Roku-Plus-Series-TV-2025-Lifestyle-2" alt="The 2025 Roku Plus Series TV, wall-mounted in a contemporary living room, displaying the Roku home screen. The Roku home screen is showcasing various streaming apps." src="https://cdn.mos.cms.futurecdn.net/fGvXqR83c5eaJ5dpUoPkaK.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Roku)</span></figcaption></figure><p>The only 65-inch TV on this list isn't as bright as the Hisense U65QF, nor is it equipped with Google TV. That's OK with me, though, because the 65-inch <a href="https://www.tomsguide.com/reviews/roku-plus-series-4k-qled-tv">Roku Plus Series</a> is built around my all-time favorite smart platform.</p><p>In fact, I use an external Roku device as a daily driver on account of its straightforward interface and robust app support. The Roku Plus Series puts the entire Roku experience into the software of the TV itself — no box or stick required.</p><p>The Plus Series won't net you Mini-LED backlighting, but it <em>does</em> feature direct-LED backlighting with local dimming, which is the next-best option below Mini-LEDs. So it's got that goin' for it.</p><p>But the real star of the show is its software. I've been knee-deep in TV technology for over a decade, and Roku is my number-one pick for streaming. But I also feel comfortable recommending this TV to folks who typically find themselves annoyed at TVs on account of confusing software. Roku truly has that sort of crossover appeal.</p><div class="product"><a data-dimension112="7c383e08-0f91-47f5-bc23-dee961a7637d" data-action="Deal Block" data-label="65" Plus Series 4K QLED TV" data-dimension48="65" Plus Series 4K QLED TV" data-dimension25="$478" href="https://www.amazon.com/Roku-Smart-2025-Television-Streaming/dp/B0DWHFWT5C?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="Yqpaa2DhA8mX79yivyV9PT" name="Roku-Plus-Series-Vanity.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/Yqpaa2DhA8mX79yivyV9PT.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Roku-Smart-2025-Television-Streaming/dp/B0DWHFWT5C?th=1" target="_blank" rel="nofollow" data-dimension112="7c383e08-0f91-47f5-bc23-dee961a7637d" data-action="Deal Block" data-label='65" Plus Series 4K QLED TV' data-dimension48='65" Plus Series 4K QLED TV' data-dimension25="$478">65" Plus Series 4K QLED TV: was $649 now $478</a></strong><br>The Roku Plus Series is a budget-friendly 4K TV that offers a simple-but-powerful backdrop for all of your streaming needs. It's not the brightest TV on the block, but its inclusion of local dimming is very much worth having at this price point. If all you want is an easy-to-use TV that simplifies streaming, the Roku Plus Series is a solid pick.<a class="view-deal button" href="https://www.amazon.com/Roku-Smart-2025-Television-Streaming/dp/B0DWHFWT5C?th=1" target="_blank" rel="nofollow" data-dimension112="7c383e08-0f91-47f5-bc23-dee961a7637d" data-action="Deal Block" data-label="65" Plus Series 4K QLED TV" data-dimension48="65" Plus Series 4K QLED TV" data-dimension25="$478">View Deal</a></p></div><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/these-are-the-5-most-important-things-to-look-for-in-a-cheap-tv-so-you-dont-regret-your-purchase">These are the 5 most important things to look for in a cheap TV so you don't regret your purchase</a></li><li><a href="https://www.tomsguide.com/tvs/4k-tvs/samsung-just-made-its-2026-mini-led-tv-lineup-official-but-one-popular-tv-wont-be-returning-this-year">Samsung just made its 2026 Mini-LED TV lineup official, but one popular TV won’t be returning this year</a></li><li><a href="https://www.tomsguide.com/tvs/should-you-buy-a-new-2026-tv-or-save-money-on-a-2025-model-heres-how-to-shop-for-a-screen-like-an-expert">Should you buy a new 2026 TV or save money on a 2025 model? Here's how to shop for a screen like an expert</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ ‘I just tossed a 43" TCL Roku that just would not come back on after updates’ — Readers respond to TCL-Roku class-action lawsuit over 'bricked' TVs ]]></title>
                                                                                                <dc:content><![CDATA[ <p>On Monday we reported on the<a href="https://www.tomsguide.com/tvs/roku-and-tcl-accused-of-bricking-tvs-with-poor-software-updates-in-new-class-action-lawsuit"> recently filed class action lawsuit against TCL and Roku</a>. We’re still trying to get to the bottom of these allegations, but readers were quick to say that they, too, have had issues with their aging TCL Roku TVs. </p><p>In a poll conducted by Tom’s Guide that over 4,000 readers responded to, 2,600 users said that they have experienced issues with Roku TCL TV software updates in the past, while 390 readers said that they’ve experienced other issues with TCL TVs that have Roku on them.</p><p>It’s not completely one-sided, however. Nearly 1,130 of our readers say that they haven’t had issues with TCL Roku TVs and, admittedly, that’s been my experience with my now three-year-old <a href="https://www.tomsguide.com/reviews/tcl-5-series-google-tv-s546">TCL 5-Series Roku TV</a>. </p><p>The article also has 46 comments and counting from <a href="https://www.tomsguide.com/membership">Tom's Guide members</a> keen to share their experiences and helpful advice. Here’s what readers are saying.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ePkg1X"></div>                            </div>                            <script src="https://kwizly.com/embed/ePkg1X.js" async></script><iframe title="" description="" minimumCommentCount="2" class="position-center" data-lazy-priority="low" data-lazy-src=""></iframe><h2 id="i-just-tossed-a-tcl-roku-43-that-just-would-not-come-back-on-after-updates">‘I just tossed a TCL Roku 43" … that just would not come back on after updates’ </h2><p>Before we dive into the comments, let me just say for the record that class action lawsuits are important tools that consumers can use to hold large companies responsible for large-scale wrongdoings. </p><p>But keep in mind that, right now, we’re only at the stage where the lawsuit makes allegations that have yet to be deemed true or false. </p><p>While the legal court battle still lays ahead (if it isn’t outright dismissed due to lack of evidence), the court of public opinion is in full session in the comments.  </p><p>One of the most damning comments comes from reader Richard Scarborough who says, “I just tossed a TCL Roku 43" that was just over 3 years old from a guest bedroom that was used maybe a dozen times, that just would not come back on after updates, and I thought it was the TV, ugh.” </p><div><blockquote><p>It’s well within the realm of possibility that Richard did really encounter some sort of update that bricked the TV. </p></blockquote></div><p>Given the age of the TV and infrequency of use, it’s well within the realm of possibility that Richard did really encounter some sort of update that bricked the TV. </p><p>Others described similar issues without giving the age of the TV in question, while some just took the opportunity to dogpile the brand with comments like “It's a cheap Chinese TV. Is anyone really surprised?” and “TCL is garbage, always has been.” </p><h2 id="is-there-any-legitimacy-to-the-lawsuit">Is there any legitimacy to the lawsuit? </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ELdEd5yXZMDukLjKUXEBrj" name="TG-TCL-Roku-TV-6-Series-8K_R648_roku.jpg" alt="TCL Roku TV 6-Series 8K (R648) review" src="https://cdn.mos.cms.futurecdn.net/ELdEd5yXZMDukLjKUXEBrj.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>As a longtime TV journalist, I’ve seen a number of these lawsuits over the years. Some have real legitimacy, others…well, are just too broad to hold up in court. It’s my opinion that this is more the latter than the former. </p><p>What I know for sure at this point is that Roku has released several updates to its smart TV platform in the last few years. It does this for several reasons, but the biggest ones are to add functionality and patch security vulnerabilities. </p><p>Is it possible that the size and complexity of these updates overtaxed the processors of older TVs? Yeah, that’s certainly possible. But was this done maliciously in an attempt to ‘brick’ TVs and force users to upgrade to a new model? Almost certainly not. </p><p>Before writing this story I reached out to TCL for comment and a spokesperson for the company simply said “TCL doesn’t make comments on impending lawsuits” and that the company has “no comment” about the allegations at this time. </p><p>A Roku spokesperson also responded, saying "we believe the claims are meritless."</p><p>We'll be following up with users to hear more about their experiences with TCL Roku TVs as well as following up with both companies as the case proceeds. </p><p>Let us know in the comments if you have a Roku TV and have experienced issues with your set — be sure to include the model number, as well as the problems you've been having. Or, if you have a Roku set and it's working great, let us know that, too!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/streaming-devices/how-to-stop-your-roku-from-tracking-everything-you-watch">Your Roku TV is watching you — 3 settings to change right now</a></li><li><a href="https://www.tomsguide.com/entertainment/streaming/roku-just-brought-back-one-of-cable-tvs-best-features-to-millions-of-users">Roku is adding a classic cable TV feature to its free streaming channels</a></li><li><a href="https://www.tomsguide.com/entertainment/streaming-devices/dont-replace-your-slow-roku-yet-try-this-10-second-fix-first">Don't replace your slow Roku yet — try this 10-second fix first</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/readers-respond-to-tcl-roku-class-action-lawsuit-over-bricked-tvs-heres-what-theyre-saying</link>
                                                                            <description>
                            <![CDATA[ A new class action lawsuit accuses Roku and TCL of degrading performance with "defective" software updates. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Ra8BL4KJSech7M9K8RJRhU</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/QeGhE4GHqv42cT9rPjjTUY-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 06 May 2026 06:30:00 +0000</pubDate>                                                                                                                                <updated>Mon, 11 May 2026 10:46:27 +0000</updated>
                                                                                                                                            <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ Nick.Pino@futurenet.com (Nick Pino) ]]></author>                    <dc:creator><![CDATA[ Nick Pino ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/7xnnEdyK5eEbDVbS5pYB54.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Nick Pino heads up the TV and AV verticals at Tom&#039;s Guide and covers everything from OLED TVs to the latest wireless headphones. He&#039;s a Level 1 Certified THX Home Theater Professional, and has attended classes on TV and audio calibration. On Tom&#039;s Guide, he looks after some of the site&#039;s important buying guides like the best TVs, best OLED TVs, best 4K TVs, so most of his day is spent watching and evaluating new screens from LG, Samsung, Sony, Hisense, TCL and Vizio. (And yes, he knows how lucky he is to say that.) He was formerly the Senior Editor, TV and AV at TechRadar (Tom&#039;s Guide&#039;s sister site) and has previously written for GamesRadar, Official Xbox Magazine, PC Gamer and other outlets over the last decade. He got his start on Best Buy&#039;s official video game magazine, @GAMER, for whom he attended his first E3 in 2013. He&#039;s served as a judge for CES&#039; prestigious Innovation Awards and has attended the tech conference in Las Vegas since 2014. He has a computer science degree from the University at Buffalo and still resides in the Buffalo area. (Go Bills!) Not sure which TV you should buy? Drop him an email or tweet him on Twitter and he can help you out.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/QeGhE4GHqv42cT9rPjjTUY-1280-80.jpg">
                                                            <media:credit><![CDATA[TCL]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[TCL 4-Series Roku TV (43S435) review]]></media:description>                                                            <media:text><![CDATA[TCL 4-Series Roku TV (43S435) review]]></media:text>
                                <media:title type="plain"><![CDATA[TCL 4-Series Roku TV (43S435) review]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/QeGhE4GHqv42cT9rPjjTUY-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>On Monday we reported on the<a href="https://www.tomsguide.com/tvs/roku-and-tcl-accused-of-bricking-tvs-with-poor-software-updates-in-new-class-action-lawsuit"> recently filed class action lawsuit against TCL and Roku</a>. We’re still trying to get to the bottom of these allegations, but readers were quick to say that they, too, have had issues with their aging TCL Roku TVs. </p><p>In a poll conducted by Tom’s Guide that over 4,000 readers responded to, 2,600 users said that they have experienced issues with Roku TCL TV software updates in the past, while 390 readers said that they’ve experienced other issues with TCL TVs that have Roku on them.</p><p>It’s not completely one-sided, however. Nearly 1,130 of our readers say that they haven’t had issues with TCL Roku TVs and, admittedly, that’s been my experience with my now three-year-old <a href="https://www.tomsguide.com/reviews/tcl-5-series-google-tv-s546">TCL 5-Series Roku TV</a>. </p><p>The article also has 46 comments and counting from <a href="https://www.tomsguide.com/membership">Tom's Guide members</a> keen to share their experiences and helpful advice. Here’s what readers are saying.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ePkg1X"></div>                            </div>                            <script src="https://kwizly.com/embed/ePkg1X.js" async></script><iframe title="" description="" minimumCommentCount="2" class="position-center" data-lazy-priority="low" data-lazy-src=""></iframe><h2 id="i-just-tossed-a-tcl-roku-43-that-just-would-not-come-back-on-after-updates">‘I just tossed a TCL Roku 43" … that just would not come back on after updates’ </h2><p>Before we dive into the comments, let me just say for the record that class action lawsuits are important tools that consumers can use to hold large companies responsible for large-scale wrongdoings. </p><p>But keep in mind that, right now, we’re only at the stage where the lawsuit makes allegations that have yet to be deemed true or false. </p><p>While the legal court battle still lays ahead (if it isn’t outright dismissed due to lack of evidence), the court of public opinion is in full session in the comments.  </p><p>One of the most damning comments comes from reader Richard Scarborough who says, “I just tossed a TCL Roku 43" that was just over 3 years old from a guest bedroom that was used maybe a dozen times, that just would not come back on after updates, and I thought it was the TV, ugh.” </p><div><blockquote><p>It’s well within the realm of possibility that Richard did really encounter some sort of update that bricked the TV. </p></blockquote></div><p>Given the age of the TV and infrequency of use, it’s well within the realm of possibility that Richard did really encounter some sort of update that bricked the TV. </p><p>Others described similar issues without giving the age of the TV in question, while some just took the opportunity to dogpile the brand with comments like “It's a cheap Chinese TV. Is anyone really surprised?” and “TCL is garbage, always has been.” </p><h2 id="is-there-any-legitimacy-to-the-lawsuit">Is there any legitimacy to the lawsuit? </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ELdEd5yXZMDukLjKUXEBrj" name="TG-TCL-Roku-TV-6-Series-8K_R648_roku.jpg" alt="TCL Roku TV 6-Series 8K (R648) review" src="https://cdn.mos.cms.futurecdn.net/ELdEd5yXZMDukLjKUXEBrj.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>As a longtime TV journalist, I’ve seen a number of these lawsuits over the years. Some have real legitimacy, others…well, are just too broad to hold up in court. It’s my opinion that this is more the latter than the former. </p><p>What I know for sure at this point is that Roku has released several updates to its smart TV platform in the last few years. It does this for several reasons, but the biggest ones are to add functionality and patch security vulnerabilities. </p><p>Is it possible that the size and complexity of these updates overtaxed the processors of older TVs? Yeah, that’s certainly possible. But was this done maliciously in an attempt to ‘brick’ TVs and force users to upgrade to a new model? Almost certainly not. </p><p>Before writing this story I reached out to TCL for comment and a spokesperson for the company simply said “TCL doesn’t make comments on impending lawsuits” and that the company has “no comment” about the allegations at this time. </p><p>A Roku spokesperson also responded, saying "we believe the claims are meritless."</p><p>We'll be following up with users to hear more about their experiences with TCL Roku TVs as well as following up with both companies as the case proceeds. </p><p>Let us know in the comments if you have a Roku TV and have experienced issues with your set — be sure to include the model number, as well as the problems you've been having. Or, if you have a Roku set and it's working great, let us know that, too!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/streaming-devices/how-to-stop-your-roku-from-tracking-everything-you-watch">Your Roku TV is watching you — 3 settings to change right now</a></li><li><a href="https://www.tomsguide.com/entertainment/streaming/roku-just-brought-back-one-of-cable-tvs-best-features-to-millions-of-users">Roku is adding a classic cable TV feature to its free streaming channels</a></li><li><a href="https://www.tomsguide.com/entertainment/streaming-devices/dont-replace-your-slow-roku-yet-try-this-10-second-fix-first">Don't replace your slow Roku yet — try this 10-second fix first</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Hisense's new UR9 just got a $1,500 price drop just days after launch — and it's now the most affordable way to experience RGB Mini-LED technology ]]></title>
                                                                                                <dc:content><![CDATA[ <p>I’m no stranger to the concept of a good ol’ fashioned <em>street price</em>. In the TV business, new models often launch at a set price only to see some small- to medium-sized discounts shortly thereafter. In many cases, the original MSRP remains on the page, and for folks clicking around on Best Buy, Amazon or a brand’s online store, the red-colored savings indicator can be enticing.</p><p>Hisense isn’t a stranger to this, either — I’d wager that the majority of Hisense TV launches I’ve covered over the last decade have dabbled in the art (perhaps science?) of the street price. But I’ve never seen anything like what’s happening with the <a href="https://www.tomsguide.com/tvs/qled-tvs/hisense-ur9-rgb-mini-led-tv-review">Hisense UR9</a>, the brand’s highly-touted, first-ever RGB LED TV.</p><div class="product"><a data-dimension112="12d14dc0-458f-4db5-acd6-780339a2211d" data-action="Deal Block" data-label="65" UR9 4K RGB Mini-LED TV" data-dimension48="65" UR9 4K RGB Mini-LED TV" data-dimension25="$1999" href="https://www.bestbuy.com/product/hisense-65-class-ur9-rgb-miniled-series-uhd-4k-hdr-smart-google-tv-2026/J3Z9Z42TQL" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="caDx2NkVcT9zevcHQUsabB" name="Hisense-UR9-RGB-Mini-LED-TV-Deal-Block-16-by-9" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/caDx2NkVcT9zevcHQUsabB.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/hisense-65-class-ur9-rgb-miniled-series-uhd-4k-hdr-smart-google-tv-2026/J3Z9Z42TQL" target="_blank" rel="nofollow" data-dimension112="12d14dc0-458f-4db5-acd6-780339a2211d" data-action="Deal Block" data-label='65" UR9 4K RGB Mini-LED TV' data-dimension48='65" UR9 4K RGB Mini-LED TV' data-dimension25="$1999">65" UR9 4K RGB Mini-LED TV: was $3499 now $1999</a></strong><br>It's official: With this latest sale price, Hisense's flagship model is one of the most affordable ways to experience RGB Mini-LED technology. This TV recently debuted at $3,499, but Hisense is already promoting a 43% discount on this souped-up screen. It comes with just about every streaming- and gaming-related feature under the sun.<a class="view-deal button" href="https://www.bestbuy.com/product/hisense-65-class-ur9-rgb-miniled-series-uhd-4k-hdr-smart-google-tv-2026/J3Z9Z42TQL" target="_blank" rel="nofollow" data-dimension112="12d14dc0-458f-4db5-acd6-780339a2211d" data-action="Deal Block" data-label="65" UR9 4K RGB Mini-LED TV" data-dimension48="65" UR9 4K RGB Mini-LED TV" data-dimension25="$1999">View Deal</a></p></div><p>After just a week and a half on shelves with an MSRP of $3,499, the <a href="https://www.bestbuy.com/product/hisense-65-class-ur9-rgb-miniled-series-uhd-4k-hdr-smart-google-tv-2026/J3Z9Z42TQL" target="_blank" rel="nofollow">65-inch Hisense UR9 is already on sale for just $1,999 at Best Buy</a>. The $1,500 discount is bigger than any street price-related reset I’ve ever seen. Here’s what this situation tells us about the state of the RGB LED TV market.</p><h2 id="the-ur9-faces-fierce-competition">The UR9 faces fierce competition</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mnf5jaXvxSsC6JzFsFXRYY" name="Samsung-Micro-RGB-TV-LED-Staged" alt="The 115-inch Samsung Micro RGB TV mounted on the wall of a modern, beige-colored living room. On the screen is an abstract, multicolored image alongside the following words: "Samsung Micro RGB."" src="https://cdn.mos.cms.futurecdn.net/mnf5jaXvxSsC6JzFsFXRYY.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Samsung)</span></figcaption></figure><p>While keeping in mind that I'm not working off inside information, here's my read on the Hisense UR9's sudden, steep drop in price: <em>No one's going to undercut Hisense.</em> </p><p>Since their surge in the North American TV market about a decade ago, Hisense has been a TV brand associated with value. Hisense representatives will be the first to tell you this, too; I've heard them proudly reference their reputation for over-delivering on reported performance specs, very often at lower price points than their competitors.</p><div><blockquote><p>Here's my read on the Hisense UR9's sudden, steep drop in price: No one's going to undercut Hisense. </p></blockquote></div><p>But with the biggest names in the TV industry launching their own cutting-edge RGB LED TVs in 2026, this narrative was about to shift.</p><p>As you can see in the chart below, the 65-inch UR9 was sitting on shelves next to a 65-inch Micro RGB TV from Samsung with a heftier price tag — $300 worth of additional heft, to be precise. As the only two TV-makers currently offering 65-inch RGB LED TVs, Samsung was poised to be the value-conscious pick at this popular size point. </p><p>Additionally, at the 75-inch size point, the UR9 was a whole $500 more than the Samsung R95H. That doesn't seem much like the Hisense that I know, the brand that over-delivers at a lower price point than its rivals.</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>LG MRGB95</p></th><th  ><p>Hisense UR9</p></th><th  ><p>Samsung R95H</p></th><th  ><p>TCL RM9L</p></th></tr></thead><tbody><tr><td class="firstcol " ><p>65-inch</p></td><td  ><p>N/A</p></td><td  ><p><del>$3,499</del><strong> $1,999 </strong></p></td><td  ><p>$3,199</p></td><td  ><p>N/A</p></td></tr><tr><td class="firstcol " ><p>75-inch</p></td><td  ><p>$4,999</p></td><td  ><p><del>$4,999</del><strong> $2,999</strong></p></td><td  ><p>$4,499</p></td><td  ><p>N/A</p></td></tr><tr><td class="firstcol " ><p>85-inch</p></td><td  ><p>$6,999</p></td><td  ><p><del>$5,999</del><strong> $3,999</strong></p></td><td  ><p>$6,499</p></td><td  ><p>$7,999</p></td></tr><tr><td class="firstcol " ><p>98-inch</p></td><td  ><p>N/A</p></td><td  ><p>N/A</p></td><td  ><p>N/A</p></td><td  ><p>$9,999</p></td></tr><tr><td class="firstcol " ><p>100-inch</p></td><td  ><p>$7,999</p></td><td  ><p>Coming soon</p></td><td  ><p>N/A</p></td><td  ><p>N/A</p></td></tr><tr><td class="firstcol " ><p>115-inch</p></td><td  ><p>N/A</p></td><td  ><p>N/A</p></td><td  ><p>N/A</p></td><td  ><p>$29,999</p></td></tr></tbody></table></div><p>With these new sale prices in effect, the 65-inch UR9 is now $1,200 less than the 65-inch R95H. The 75-inch version is $1,500 to $2,000 less than the 75-inch R95H and the 75-inch LG MRGB95. Perfectly balanced, as all things should be? If you're Hisense, maybe.</p><p>Bear in mind that we're almost sure to see some sale pricing for LG and Samsung Micro RGB TVs in the coming months. TCL — whose sole RGB Mini-LED TV is only confirmed to exist in three sizes at 85 inches and above — will likely drop in price throughout the year, too.</p><p>And then there are the step-down RGB LED-based models from Hisense and Samsung: the UR8 and R85H. We've yet to test these sets, but I'm interested to see how they stack up against their flagship-level counterparts. It seems logical that the steep sale pricing on the UR9 could potentially have ripple effects on the UR8, too.</p><h2 id="should-you-buy-the-hisense-ur9">Should you buy the Hisense UR9?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="naT9P9qZBs2NV4i8ZuSc4Q" name="Hisense-UR9--1-LIST" alt="Hisense UR9 RGB Mini-LED TV on a desk" src="https://cdn.mos.cms.futurecdn.net/naT9P9qZBs2NV4i8ZuSc4Q.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If you're looking for bright, sizzling performance, a ton of features and the satisfaction that comes with getting in on the ground floor of a brand-new display technology, the Hisense UR9 is officially the most affordable way to do so. If you were on the fence about splashing out on this TV a week ago, this newly minted street price is bound to be tantalizing.</p><p>However, if you need some excuse — <em>anything at all</em> — to persuade you away from buying a flashy new TV right now, I can certainly help with that.</p><p><a href="https://www.tomsguide.com/tvs/3-reasons-why-you-shouldnt-buy-an-rgb-led-tv-in-2026-and-1-reason-you-should">Are RGB LED TVs worth it?</a> Well, having spent some time with a few of them, I can say that their performance ranges from "pretty good (if not a little disappointing)" to "excellent." And, for what it's worth, that level of "excellent" is closer to being on par with some of the best quantum dot-equipped Mini-LED TVs I've ever seen, so your mileage may vary on whether you think that justifies these prices.</p><p>In our full <a href="https://www.tomsguide.com/tvs/qled-tvs/hisense-ur9-rgb-mini-led-tv-review">Hisense UR9 review</a>, my colleague Dylan Haas remarked that, while the UR9 fared well in our tests, its color performance during real-world use didn't seem to meet the impressive nature of the numbers. In other words, a classic case of <em>looks good on paper</em>.</p><p>Its 3.5-star review isn't indicative of a bad TV, though, and the UR9's bright performance sounds best suited for bright-room viewing. Maybe, with its new sale price attached, the UR9 can find a groove as the most-affordable flagship RGB LED TV rather than a potentially tough sell.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/qled-tvs/hisense-ur9-rgb-mini-led-tv-review">OLED is safe: I tested the Hisense UR9 RGB Mini-LED TV, and it's very good but falls short</a></li><li><a href="https://www.tomsguide.com/tvs/4k-tvs/samsung-just-made-its-2026-mini-led-tv-lineup-official-but-one-popular-tv-wont-be-returning-this-year">Samsung just made its 2026 Mini-LED TV lineup official, but one popular TV won’t be returning this year</a></li><li><a href="https://www.tomsguide.com/tvs/samsungs-new-micro-rgb-tv-is-finally-here-for-usd3-200-but-id-rather-buy-this-oled-instead">Samsung's new Micro RGB TV is finally here — but I'd rather buy this OLED instead</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/4k-tvs/the-hisense-ur9s-massive-usd1-500-discount-is-the-quickest-ive-seen-a-flagship-tv-go-on-sale-and-it-proves-that-competition-is-fierce-for-rgb-led-tvs</link>
                                                                            <description>
                            <![CDATA[ Just about a week and a half after it officially hit shelves, the 65-inch Hisense UR9 RGB LED TV has gone from $3,499 all the way down to $1,999. Here's how that compares to rival models from LG, Samsung and TCL. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">8Txh73Dr7qU7TBrCzbdjPh</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/zFC7JP8889jtcBzTA79gQQ-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 05 May 2026 11:00:00 +0000</pubDate>                                                                                                                                <updated>Tue, 05 May 2026 18:13:45 +0000</updated>
                                                                                                                                            <category><![CDATA[4k TVs]]></category>
                                                    <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/zFC7JP8889jtcBzTA79gQQ-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Hisense UR9 RGB Mini-LED TV on a desk]]></media:description>                                                            <media:text><![CDATA[Hisense UR9 RGB Mini-LED TV on a desk]]></media:text>
                                <media:title type="plain"><![CDATA[Hisense UR9 RGB Mini-LED TV on a desk]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/zFC7JP8889jtcBzTA79gQQ-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I’m no stranger to the concept of a good ol’ fashioned <em>street price</em>. In the TV business, new models often launch at a set price only to see some small- to medium-sized discounts shortly thereafter. In many cases, the original MSRP remains on the page, and for folks clicking around on Best Buy, Amazon or a brand’s online store, the red-colored savings indicator can be enticing.</p><p>Hisense isn’t a stranger to this, either — I’d wager that the majority of Hisense TV launches I’ve covered over the last decade have dabbled in the art (perhaps science?) of the street price. But I’ve never seen anything like what’s happening with the <a href="https://www.tomsguide.com/tvs/qled-tvs/hisense-ur9-rgb-mini-led-tv-review">Hisense UR9</a>, the brand’s highly-touted, first-ever RGB LED TV.</p><div class="product"><a data-dimension112="12d14dc0-458f-4db5-acd6-780339a2211d" data-action="Deal Block" data-label="65" UR9 4K RGB Mini-LED TV" data-dimension48="65" UR9 4K RGB Mini-LED TV" data-dimension25="$1999" href="https://www.bestbuy.com/product/hisense-65-class-ur9-rgb-miniled-series-uhd-4k-hdr-smart-google-tv-2026/J3Z9Z42TQL" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="caDx2NkVcT9zevcHQUsabB" name="Hisense-UR9-RGB-Mini-LED-TV-Deal-Block-16-by-9" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/caDx2NkVcT9zevcHQUsabB.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/hisense-65-class-ur9-rgb-miniled-series-uhd-4k-hdr-smart-google-tv-2026/J3Z9Z42TQL" target="_blank" rel="nofollow" data-dimension112="12d14dc0-458f-4db5-acd6-780339a2211d" data-action="Deal Block" data-label='65" UR9 4K RGB Mini-LED TV' data-dimension48='65" UR9 4K RGB Mini-LED TV' data-dimension25="$1999">65" UR9 4K RGB Mini-LED TV: was $3499 now $1999</a></strong><br>It's official: With this latest sale price, Hisense's flagship model is one of the most affordable ways to experience RGB Mini-LED technology. This TV recently debuted at $3,499, but Hisense is already promoting a 43% discount on this souped-up screen. It comes with just about every streaming- and gaming-related feature under the sun.<a class="view-deal button" href="https://www.bestbuy.com/product/hisense-65-class-ur9-rgb-miniled-series-uhd-4k-hdr-smart-google-tv-2026/J3Z9Z42TQL" target="_blank" rel="nofollow" data-dimension112="12d14dc0-458f-4db5-acd6-780339a2211d" data-action="Deal Block" data-label="65" UR9 4K RGB Mini-LED TV" data-dimension48="65" UR9 4K RGB Mini-LED TV" data-dimension25="$1999">View Deal</a></p></div><p>After just a week and a half on shelves with an MSRP of $3,499, the <a href="https://www.bestbuy.com/product/hisense-65-class-ur9-rgb-miniled-series-uhd-4k-hdr-smart-google-tv-2026/J3Z9Z42TQL" target="_blank" rel="nofollow">65-inch Hisense UR9 is already on sale for just $1,999 at Best Buy</a>. The $1,500 discount is bigger than any street price-related reset I’ve ever seen. Here’s what this situation tells us about the state of the RGB LED TV market.</p><h2 id="the-ur9-faces-fierce-competition">The UR9 faces fierce competition</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mnf5jaXvxSsC6JzFsFXRYY" name="Samsung-Micro-RGB-TV-LED-Staged" alt="The 115-inch Samsung Micro RGB TV mounted on the wall of a modern, beige-colored living room. On the screen is an abstract, multicolored image alongside the following words: "Samsung Micro RGB."" src="https://cdn.mos.cms.futurecdn.net/mnf5jaXvxSsC6JzFsFXRYY.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Samsung)</span></figcaption></figure><p>While keeping in mind that I'm not working off inside information, here's my read on the Hisense UR9's sudden, steep drop in price: <em>No one's going to undercut Hisense.</em> </p><p>Since their surge in the North American TV market about a decade ago, Hisense has been a TV brand associated with value. Hisense representatives will be the first to tell you this, too; I've heard them proudly reference their reputation for over-delivering on reported performance specs, very often at lower price points than their competitors.</p><div><blockquote><p>Here's my read on the Hisense UR9's sudden, steep drop in price: No one's going to undercut Hisense. </p></blockquote></div><p>But with the biggest names in the TV industry launching their own cutting-edge RGB LED TVs in 2026, this narrative was about to shift.</p><p>As you can see in the chart below, the 65-inch UR9 was sitting on shelves next to a 65-inch Micro RGB TV from Samsung with a heftier price tag — $300 worth of additional heft, to be precise. As the only two TV-makers currently offering 65-inch RGB LED TVs, Samsung was poised to be the value-conscious pick at this popular size point. </p><p>Additionally, at the 75-inch size point, the UR9 was a whole $500 more than the Samsung R95H. That doesn't seem much like the Hisense that I know, the brand that over-delivers at a lower price point than its rivals.</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>LG MRGB95</p></th><th  ><p>Hisense UR9</p></th><th  ><p>Samsung R95H</p></th><th  ><p>TCL RM9L</p></th></tr></thead><tbody><tr><td class="firstcol " ><p>65-inch</p></td><td  ><p>N/A</p></td><td  ><p><del>$3,499</del><strong> $1,999 </strong></p></td><td  ><p>$3,199</p></td><td  ><p>N/A</p></td></tr><tr><td class="firstcol " ><p>75-inch</p></td><td  ><p>$4,999</p></td><td  ><p><del>$4,999</del><strong> $2,999</strong></p></td><td  ><p>$4,499</p></td><td  ><p>N/A</p></td></tr><tr><td class="firstcol " ><p>85-inch</p></td><td  ><p>$6,999</p></td><td  ><p><del>$5,999</del><strong> $3,999</strong></p></td><td  ><p>$6,499</p></td><td  ><p>$7,999</p></td></tr><tr><td class="firstcol " ><p>98-inch</p></td><td  ><p>N/A</p></td><td  ><p>N/A</p></td><td  ><p>N/A</p></td><td  ><p>$9,999</p></td></tr><tr><td class="firstcol " ><p>100-inch</p></td><td  ><p>$7,999</p></td><td  ><p>Coming soon</p></td><td  ><p>N/A</p></td><td  ><p>N/A</p></td></tr><tr><td class="firstcol " ><p>115-inch</p></td><td  ><p>N/A</p></td><td  ><p>N/A</p></td><td  ><p>N/A</p></td><td  ><p>$29,999</p></td></tr></tbody></table></div><p>With these new sale prices in effect, the 65-inch UR9 is now $1,200 less than the 65-inch R95H. The 75-inch version is $1,500 to $2,000 less than the 75-inch R95H and the 75-inch LG MRGB95. Perfectly balanced, as all things should be? If you're Hisense, maybe.</p><p>Bear in mind that we're almost sure to see some sale pricing for LG and Samsung Micro RGB TVs in the coming months. TCL — whose sole RGB Mini-LED TV is only confirmed to exist in three sizes at 85 inches and above — will likely drop in price throughout the year, too.</p><p>And then there are the step-down RGB LED-based models from Hisense and Samsung: the UR8 and R85H. We've yet to test these sets, but I'm interested to see how they stack up against their flagship-level counterparts. It seems logical that the steep sale pricing on the UR9 could potentially have ripple effects on the UR8, too.</p><h2 id="should-you-buy-the-hisense-ur9">Should you buy the Hisense UR9?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="naT9P9qZBs2NV4i8ZuSc4Q" name="Hisense-UR9--1-LIST" alt="Hisense UR9 RGB Mini-LED TV on a desk" src="https://cdn.mos.cms.futurecdn.net/naT9P9qZBs2NV4i8ZuSc4Q.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If you're looking for bright, sizzling performance, a ton of features and the satisfaction that comes with getting in on the ground floor of a brand-new display technology, the Hisense UR9 is officially the most affordable way to do so. If you were on the fence about splashing out on this TV a week ago, this newly minted street price is bound to be tantalizing.</p><p>However, if you need some excuse — <em>anything at all</em> — to persuade you away from buying a flashy new TV right now, I can certainly help with that.</p><p><a href="https://www.tomsguide.com/tvs/3-reasons-why-you-shouldnt-buy-an-rgb-led-tv-in-2026-and-1-reason-you-should">Are RGB LED TVs worth it?</a> Well, having spent some time with a few of them, I can say that their performance ranges from "pretty good (if not a little disappointing)" to "excellent." And, for what it's worth, that level of "excellent" is closer to being on par with some of the best quantum dot-equipped Mini-LED TVs I've ever seen, so your mileage may vary on whether you think that justifies these prices.</p><p>In our full <a href="https://www.tomsguide.com/tvs/qled-tvs/hisense-ur9-rgb-mini-led-tv-review">Hisense UR9 review</a>, my colleague Dylan Haas remarked that, while the UR9 fared well in our tests, its color performance during real-world use didn't seem to meet the impressive nature of the numbers. In other words, a classic case of <em>looks good on paper</em>.</p><p>Its 3.5-star review isn't indicative of a bad TV, though, and the UR9's bright performance sounds best suited for bright-room viewing. Maybe, with its new sale price attached, the UR9 can find a groove as the most-affordable flagship RGB LED TV rather than a potentially tough sell.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/qled-tvs/hisense-ur9-rgb-mini-led-tv-review">OLED is safe: I tested the Hisense UR9 RGB Mini-LED TV, and it's very good but falls short</a></li><li><a href="https://www.tomsguide.com/tvs/4k-tvs/samsung-just-made-its-2026-mini-led-tv-lineup-official-but-one-popular-tv-wont-be-returning-this-year">Samsung just made its 2026 Mini-LED TV lineup official, but one popular TV won’t be returning this year</a></li><li><a href="https://www.tomsguide.com/tvs/samsungs-new-micro-rgb-tv-is-finally-here-for-usd3-200-but-id-rather-buy-this-oled-instead">Samsung's new Micro RGB TV is finally here — but I'd rather buy this OLED instead</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Roku and TCL accused of 'bricking' TVs with poor software updates in new class action lawsuit ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Roku and TCL are being sued in a class action lawsuit that claims software updates released by the companies have been "repetitively defective," making TVs unusable. </p><p><em><strong>Update: </strong></em><em>We reached out to Roku and a spokesperson said, "We believe the claims are meritless." We've also reached out to TCL and the company declined to comment. </em></p><p>Roku is most known for making some of the <a href="https://www.tomsguide.com/entertainment/streaming-devices/best-streaming-devices">best streaming stick devices</a> and its platform has been featured on some of the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TVs</a> we've tested, while TCL makes a variety of televisions. The two companies have a partnership where Roku's OS powers the smart capabilities of many affordable TVs. TCL is one of Roku's biggest clients.</p><p>The <a href="https://www.classaction.org/media/roku-complaint.pdf" target="_blank">complaint was filed </a>in a federal court based out of southern California, where the companies were accused of releasing software updates that cause the smart TVs to freeze, restart over and over, not turn on at all or degrade the experience. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ePkg1X"></div>                            </div>                            <script src="https://kwizly.com/embed/ePkg1X.js" async></script><iframe title="Share your experience" description="Join the conversation about this in the comments" minimumCommentCount="2" class="position-center" data-lazy-priority="low" data-lazy-src=""></iframe><p>As seen by <a href="https://topclassactions.com/lawsuit-settlements/lawsuit-news/roku-tcl-face-class-action-over-software-updates-that-allegedly-brick-smart-tvs/" target="_blank">Top Class Actions</a>, the plaintiff, Terri Elise, accuses the companies of knowingly releasing poor updates.</p><p>“Despite consumers’ persistent complaints of repeated system failures, often leaving their TVs completely inoperable, defendants offer no recourse,” the Roku class action lawsuit reads. “This is inconsistent with representations made in express warranties, which promise to repair, correct or otherwise remediate the software defect.”</p><p>The suit lists the Roku Select Series, Roku Plus Series, and the TCL 3, 4, 5,  and 6-series models that run RokuOS.</p><p>The complaint demands a jury trial and requests declaratory and injunctive relief plus an award of actual and statutory damages and restitution for members of class action. The initial filing does not have a specific number, but that will come about as the case either settles or goes to trial.</p><h2 id="what-tcl-owners-are-saying">What TCL owners are saying</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.30%;"><img id="ttFYbtu8MFyRGMKXcKtAXi" name="TG-TCL-Roku-TV-6-Series-8K-6.jpg" alt="TCL Roku TV 6-Series 8K (R648) review" src="https://cdn.mos.cms.futurecdn.net/ttFYbtu8MFyRGMKXcKtAXi.jpg" mos="" align="middle" fullscreen="" width="1000" height="563" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>There are several comments under the Top Class Actions post with people noting that they've experienced issues with Roku TCL sets. </p><p>"I was watching my TV and it just stopped showing pictures," one owner claimed. Another said they have the TCL QM8 which would get blacked out screens or just shut off after software issues.</p><p>On the <a href="https://www.reddit.com/r/Roku/comments/1gc6jh5/32_inch_tcl_roku_tv_having_picture_issues/" target="_blank">Roku</a> and <a href="https://www.reddit.com/r/tcltvs/comments/1qkxqzi/whats_up_with_all_these_tcl_issues/" target="_blank">TCL subreddits</a> we were able to find multiple posts about software updates breaking TVs going back at least two years, which matches with the timeline presented in the lawsuit.</p><p>For example, <a href="https://www.reddit.com/r/tcltvs/comments/1qcu4hu/dear_tcl_thanks_for_forcing_an_update_that_broke/" target="_blank">this post</a> from four months ago decries a forced firmware update that disabled connectivity features. Or this <a href="https://www.reddit.com/r/Roku/comments/1nseiwg/tcl_tv_software_update_failure/" target="_blank">one from the Roku subreddit</a> where the poster claimed their TCL TV refused to update its operating system.</p><p>This lawsuit is in its initial stages so it may be some months before a resolution or settlement is reached. We have reached out to TCL and Roku for comment and will update this article should we hear back. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/streaming-devices/how-to-stop-your-roku-from-tracking-everything-you-watch">Your Roku TV is watching you — 3 settings to change right now</a></li><li><a href="https://www.tomsguide.com/entertainment/streaming/roku-just-brought-back-one-of-cable-tvs-best-features-to-millions-of-users">Roku is adding a classic cable TV feature to its free streaming channels</a></li><li><a href="https://www.tomsguide.com/entertainment/streaming-devices/dont-replace-your-slow-roku-yet-try-this-10-second-fix-first">Don't replace your slow Roku yet — try this 10-second fix first</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/roku-and-tcl-accused-of-bricking-tvs-with-poor-software-updates-in-new-class-action-lawsuit</link>
                                                                            <description>
                            <![CDATA[ A new class action lawsuit accuses Roku and TCL of degrading performance with "defective" software updates. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">8v95FbadyhfXPnyA5iTBEK</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/mVAGPGLyYvBjmemLtKPotd-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 04 May 2026 18:50:53 +0000</pubDate>                                                                                                                                <updated>Mon, 11 May 2026 10:47:57 +0000</updated>
                                                                                                                                            <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/mVAGPGLyYvBjmemLtKPotd-1280-80.jpg">
                                                            <media:credit><![CDATA[TCL]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[TCL Roku TV 6-Series 8K (R648) review]]></media:description>                                                            <media:text><![CDATA[TCL Roku TV 6-Series 8K (R648) review]]></media:text>
                                <media:title type="plain"><![CDATA[TCL Roku TV 6-Series 8K (R648) review]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/mVAGPGLyYvBjmemLtKPotd-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Roku and TCL are being sued in a class action lawsuit that claims software updates released by the companies have been "repetitively defective," making TVs unusable. </p><p><em><strong>Update: </strong></em><em>We reached out to Roku and a spokesperson said, "We believe the claims are meritless." We've also reached out to TCL and the company declined to comment. </em></p><p>Roku is most known for making some of the <a href="https://www.tomsguide.com/entertainment/streaming-devices/best-streaming-devices">best streaming stick devices</a> and its platform has been featured on some of the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TVs</a> we've tested, while TCL makes a variety of televisions. The two companies have a partnership where Roku's OS powers the smart capabilities of many affordable TVs. TCL is one of Roku's biggest clients.</p><p>The <a href="https://www.classaction.org/media/roku-complaint.pdf" target="_blank">complaint was filed </a>in a federal court based out of southern California, where the companies were accused of releasing software updates that cause the smart TVs to freeze, restart over and over, not turn on at all or degrade the experience. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ePkg1X"></div>                            </div>                            <script src="https://kwizly.com/embed/ePkg1X.js" async></script><iframe title="Share your experience" description="Join the conversation about this in the comments" minimumCommentCount="2" class="position-center" data-lazy-priority="low" data-lazy-src=""></iframe><p>As seen by <a href="https://topclassactions.com/lawsuit-settlements/lawsuit-news/roku-tcl-face-class-action-over-software-updates-that-allegedly-brick-smart-tvs/" target="_blank">Top Class Actions</a>, the plaintiff, Terri Elise, accuses the companies of knowingly releasing poor updates.</p><p>“Despite consumers’ persistent complaints of repeated system failures, often leaving their TVs completely inoperable, defendants offer no recourse,” the Roku class action lawsuit reads. “This is inconsistent with representations made in express warranties, which promise to repair, correct or otherwise remediate the software defect.”</p><p>The suit lists the Roku Select Series, Roku Plus Series, and the TCL 3, 4, 5,  and 6-series models that run RokuOS.</p><p>The complaint demands a jury trial and requests declaratory and injunctive relief plus an award of actual and statutory damages and restitution for members of class action. The initial filing does not have a specific number, but that will come about as the case either settles or goes to trial.</p><h2 id="what-tcl-owners-are-saying">What TCL owners are saying</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.30%;"><img id="ttFYbtu8MFyRGMKXcKtAXi" name="TG-TCL-Roku-TV-6-Series-8K-6.jpg" alt="TCL Roku TV 6-Series 8K (R648) review" src="https://cdn.mos.cms.futurecdn.net/ttFYbtu8MFyRGMKXcKtAXi.jpg" mos="" align="middle" fullscreen="" width="1000" height="563" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>There are several comments under the Top Class Actions post with people noting that they've experienced issues with Roku TCL sets. </p><p>"I was watching my TV and it just stopped showing pictures," one owner claimed. Another said they have the TCL QM8 which would get blacked out screens or just shut off after software issues.</p><p>On the <a href="https://www.reddit.com/r/Roku/comments/1gc6jh5/32_inch_tcl_roku_tv_having_picture_issues/" target="_blank">Roku</a> and <a href="https://www.reddit.com/r/tcltvs/comments/1qkxqzi/whats_up_with_all_these_tcl_issues/" target="_blank">TCL subreddits</a> we were able to find multiple posts about software updates breaking TVs going back at least two years, which matches with the timeline presented in the lawsuit.</p><p>For example, <a href="https://www.reddit.com/r/tcltvs/comments/1qcu4hu/dear_tcl_thanks_for_forcing_an_update_that_broke/" target="_blank">this post</a> from four months ago decries a forced firmware update that disabled connectivity features. Or this <a href="https://www.reddit.com/r/Roku/comments/1nseiwg/tcl_tv_software_update_failure/" target="_blank">one from the Roku subreddit</a> where the poster claimed their TCL TV refused to update its operating system.</p><p>This lawsuit is in its initial stages so it may be some months before a resolution or settlement is reached. We have reached out to TCL and Roku for comment and will update this article should we hear back. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/streaming-devices/how-to-stop-your-roku-from-tracking-everything-you-watch">Your Roku TV is watching you — 3 settings to change right now</a></li><li><a href="https://www.tomsguide.com/entertainment/streaming/roku-just-brought-back-one-of-cable-tvs-best-features-to-millions-of-users">Roku is adding a classic cable TV feature to its free streaming channels</a></li><li><a href="https://www.tomsguide.com/entertainment/streaming-devices/dont-replace-your-slow-roku-yet-try-this-10-second-fix-first">Don't replace your slow Roku yet — try this 10-second fix first</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I thought smaller was better until I tried a massive 14-inch tablet that feels like a clipboard ]]></title>
                                                                                                <dc:content><![CDATA[ <p>From the <a href="https://www.tomsguide.com/computing/tablets/i-thought-the-ipad-mini-was-the-perfect-small-tablet-until-i-tried-the-lenovo-legion-tab-3-heres-why">Nexus 7</a> to the <a href="https://www.tomsguide.com/tablets/i-spent-two-weeks-with-the-ipad-mini-7-and-it-reignited-my-love-for-smaller-tablets">iPad mini</a>, I’ve always preferred smaller tablets you can hold in one hand and easily slip into a bag, which is why I was so surprised when I found myself reaching for an absolutely massive 14.3-inch slate instead.</p><p>Unlike other tablets where specs and sheer power are the main draw, the screen itself is why you’d choose a device like the TCL NXTPAPER 14 over something more conventional. Its specs are nothing to scoff at either though, with 8GB of RAM, 256GB of storage and a whopping 10,000 mAh battery under the hood. However, the paper-like feel of its matte display and how you can go from a dedicated black and white ink mode to color paper mode with the push of a button is the kind of thing you truly have to see for yourself.</p><p>Although I tested out its smaller, more powerful sibling the <a href="https://www.tomsguide.com/computing/tablets/i-tried-the-tcl-nxtpaper-11-plus-and-this-budget-tablet-is-easily-my-ipad-killer-heres-why">TCL NXTPAPER 11 Plus</a>, it was the NXTPAPER 14 that first caught my eye. Even under harsh direct lighting, its larger screen remained completely glare and reflection-free. Now, I finally had a chance to use it in the real world and not just at a mall in Taiwan.</p><p>I’ve been using the NXTPAPER 14 for the past few months and while it may not end up being my daily driver, there’s certainly a place for larger tablets like this one — especially if you’d rather carry something more substantial under your arm.</p><div class="product"><a data-dimension112="9a7290b1-b771-497a-aab4-dd39ed2c8af3" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$369" href="https://www.amazon.com/TCL-NXTPAPER-Paper-Like-4096-Level-Multi-Window/dp/B0FLP554CZ" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1479px;"><p class="vanilla-image-block" style="padding-top:78.23%;"><img id="RieyhMD4q8Qys2uDrwLwWP" name="NXTPAPER 14" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/RieyhMD4q8Qys2uDrwLwWP.jpg" mos="" align="middle" fullscreen="" width="1479" height="1157" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>This 14.3-inch Android tablet boasts a 10,000 mAh battery and a 2.4K display, but it’s the NXTPAPER 3.0 tech and 3:2 aspect ratio that really make it stand out. You get a paper-like feel when scrolling through documents or taking notes with the included T-Pen. The NXTPAPER 14 also comes with a folio-style carrying case.<a class="view-deal button" href="https://www.amazon.com/TCL-NXTPAPER-Paper-Like-4096-Level-Multi-Window/dp/B0FLP554CZ" target="_blank" rel="nofollow" data-dimension112="9a7290b1-b771-497a-aab4-dd39ed2c8af3" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$369">View Deal</a></p></div><h2 id="from-tablet-to-portfolio">From tablet to portfolio</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kwnabDFk2FBcRtYVfTZdmW" name="TCL NXTPAPER 14--3" alt="The TCL NXTPAPER 14 unboxed on a desk" src="https://cdn.mos.cms.futurecdn.net/kwnabDFk2FBcRtYVfTZdmW.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>One thing I immediately appreciated about the NXTPAPER 14 is how TCL provides you with everything you need right in the box. You get a folio-style case with a magnetic cover, a lengthy charging cable and more surprisingly, a pressure-sensitive, active stylus with a USB-C port on the side for charging.</p><p>Even with many of the <a href="https://www.tomsguide.com/best-picks/best-tablet">best tablets</a>, you often find yourself hunting for accessories like a case or screen protector after the fact. TCL takes the guesswork out of protecting and making full use of its NXTPAPER tablets, so you can instantly go from unboxing to enjoying them. And while there isn’t a screen protector in the box, I wouldn’t recommend using one since that would mean missing out on the paper-like feel of the NXTPAPER 14’s matte display.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4caKnqvmwpxm2BsxmTsFtZ" name="TCL NXTPAPER 14--2" alt="The TCL NXTPAPER 14 in its case open on a desk" src="https://cdn.mos.cms.futurecdn.net/4caKnqvmwpxm2BsxmTsFtZ.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I’m no digital artist but I like having a stylus on hand for scrolling and signing the occasional document. TCL’s T-Pen is quite capable too with 4,096 levels of pressure sensitivity and around 100 hours of battery life on a single charge. What I like most about using it though is how the combination of its active tip and the matte texture of the NXTPAPER 14’s display feels. You don’t get that same drag when using a stylus like the <a href="https://www.tomsguide.com/opinion/apple-pencil-usb-c-3-things-i-like-and-3-i-dont">Apple Pencil</a> or the <a href="https://www.tomsguide.com/opinion/i-finally-got-the-right-stylus-for-my-chromebook-and-its-a-game-changer">Surface Pen</a> on a glass tablet.</p><p>Another thing I really enjoy about the NXTPAPER 14 is how it feels under my arm when carrying it from room to room around my house. With a screen slightly larger than your standard sheet of printer paper and an aluminum back, it really feels like I’m holding a clipboard folio that’s ready for any task.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OozPqW"></div>                            </div>                            <script src="https://kwizly.com/embed/OozPqW.js" async></script><h2 id="made-to-scroll">Made to scroll</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="57BBCRqWe5DV8ujUzX6Psc" name="TCL NXTPAPER 14--6" alt="A person scrolling through Google Discover on the TCL NXTPAPER 14" src="https://cdn.mos.cms.futurecdn.net/57BBCRqWe5DV8ujUzX6Psc.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As someone who’s constantly checking the news, it almost feels like I scroll for a living when I’m not hammering away on my keyboard. With 7.9 inches from top to bottom horizontally or an even larger 11.9 inches vertically, the NXTPAPER 14 just feels great for scrolling. It’s almost like going from a budget laptop to one of the <a href="https://www.tomsguide.com/computing/laptops/best-laptops">best laptops</a> with a much larger trackpad.</p><p>TCL doesn’t let the NXTPAPER 14’s extra screen real estate go to waste either. Not only can you have two apps running side by side, but you can also have one app in floating window mode while another runs full-size behind it—great for having a calculator or a quick chat window just a tap away.</p><p>Going all the way back to your app drawer can be a hassle on a massive tablet like this one, which is why TCL added its Edge Bar feature. By swiping in from the edge and briefly holding, you bring up a customizable mini dock with useful shortcuts and tools, but you can also add your own apps to the mix.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Qf3XfDFcds6E99j7VFBByf" name="TCL NXTPAPER 14--5" alt="A person scrolling through the redesigned Tom's Guide home page on the TCL NXTPAPER 14" src="https://cdn.mos.cms.futurecdn.net/Qf3XfDFcds6E99j7VFBByf.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As an avid reader, using the NXTPAPER 14 in portrait mode feels even better, at least for me. Whether I’m scrolling through a Google Doc or even the recently redesigned <a href="https://www.tomsguide.com/" target="_blank">Tom’s Guide home page</a>, I still can’t get over how much I can see at a time on this tablet’s larger display.</p><p>Though I covered this in more depth with the NXTPAPER 11 Plus, don’t forget that you aren’t limited to your standard reading modes here either. With a push of its namesake NXTPAPER Key, you can switch from the default Regular Mode to either Color Paper Mode or Ink Paper Mode. Both have their upsides, but I particularly like how using Ink Paper Mode on the NXTPAPER 14 extends its battery life significantly. There’s just something about seeing your remaining battery estimate jump from double to triple-digit hours with the push of a button.</p><p>If reading isn’t your thing, you’re still in luck because at 14.3 inches, the NXTPAPER 14 is around the same size as a <a href="https://www.tomsguide.com/computing/peripherals/i-added-a-portable-monitor-next-to-my-main-display-and-this-inexpensive-upgrade-is-a-game-changer">portable monitor</a>.</p><h2 id="a-smarter-portable-monitor">A smarter portable monitor</h2><p>You won’t have any trouble running the respective apps for any of the <a href="https://www.tomsguide.com/us/best-streaming-video-services,review-2625.html">best streaming services</a> on the NXTPAPER 14. However, when I first used it to stream video content, I did so a bit differently. I was wrapping Christmas presents in the sitting room where we don’t have a TV and wanted to put on something in the background. Instead of Netflix, I opened the app for the Ugreen NAS I <a href="https://www.tomsguide.com/computing/peripherals/i-finally-added-a-nas-to-my-home-network-and-i-cant-believe-i-waited-this-long">recently added to my home network</a> and watched one of my favorite holiday movies to help deal with the fact that I’m terrible at wrapping presents. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HoiUwJn9LeuBSYcH9jqsw6" name="TCL NXTPAPER 14--7" alt="A Nintendo Switch 2 connected to a TCL NXTPAPER 14 using the Genki Covert Dock 3 and Genki ShadowCast 3 Pro" src="https://cdn.mos.cms.futurecdn.net/HoiUwJn9LeuBSYcH9jqsw6.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As I recently had a chance to test out Genki’s new <a href="https://www.tomsguide.com/gaming/gaming-peripherals/i-tried-genkis-covert-dock-3-with-the-nintendo-switch-2-and-it-beats-the-official-dock-for-one-key-reason">Covert Dock 3</a> with my Switch 2, I wanted to see if I could get some more demanding games running on the NXTPAPER 14. With its octa-core MediaTek MT8781 processor, you can play some simple games, but you won’t be playing the mobile version of Red Dead Redemption anytime soon. That’s where Genki’s ShadowCast 3 Pro comes in.</p><p>I hooked up the Covert Dock 3 under my desk, but instead of plugging in an HDMI cable to go out to my TV, I used the ShadowCast 3 Pro to get the video feed from my Switch 2 on the NXTPAPER 14. I did have to buy and download the <a href="https://play.google.com/store/apps/details?id=me.dt2dev.uvcpreview.free&hl=en_US">Noir Pro: USB Camera</a> app for $9, but that’s a small price to pay to play my Switch 2 on a tablet. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HuAJ3fVA9pCvcPgxMbdjYL" name="TCL NXTPAPER 14--8" alt="A person playing Super Mario Galaxy on the Nintendo Switch 2 on the TCL NXTPAPER 14 using the Genki Covert Dock 3 and the Genki ShadowCast 3 Pro" src="https://cdn.mos.cms.futurecdn.net/HuAJ3fVA9pCvcPgxMbdjYL.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As I recently had a chance to test out Genki’s new <a href="https://www.tomsguide.com/gaming/gaming-peripherals/i-tried-genkis-covert-dock-3-with-the-nintendo-switch-2-and-it-beats-the-official-dock-for-one-key-reason">Covert Dock 3</a> with my Switch 2, I wanted to see if I could get some more demanding games running on the NXTPAPER 14. With its octa-core MediaTek MT8781 processor, you can play some simple games, but you won’t be playing the mobile version of Red Dead Redemption anytime soon. That’s where Genki’s ShadowCast 3 Pro comes in.</p><p>I hooked up the Covert Dock 3 under my desk, but instead of plugging in an HDMI cable to go out to my TV, I used the ShadowCast 3 Pro to get the video feed from my Switch 2 on the NXTPAPER 14. I did have to buy and download the <a href="https://play.google.com/store/apps/details?id=me.dt2dev.uvcpreview.free&hl=en_US">Noir Pro: USB Camera</a> app for $9, but that’s a small price to pay to play my Switch 2 on a tablet. </p><h2 id="not-quite-prime-real-estate">Not quite prime real estate</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="av7XxersZaSBrCp6MjmkLQ" name="TCL NXTPAPER 14--4" alt="A person carrying the TCL NXTPAPER 14 under their arm at a restauarant" src="https://cdn.mos.cms.futurecdn.net/av7XxersZaSBrCp6MjmkLQ.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The NXTPAPER 14 remains just as impressive after using it for several months now as it did when it literally stopped me in my tracks while walking through that mall in Taiwan. I always thought smaller was best when it comes to tablets, but after spending some quality time with its massive display, I now appreciate all that extra screen real estate.</p><p>Compared to more premium tablets like the <a href="https://www.tomsguide.com/computing/android-tablets/i-ditched-my-laptop-for-the-samsung-galaxy-tab-s11-ultra-heres-what-happened">Samsung Galaxy Tab S11 Ultra</a> or the <a href="https://www.tomsguide.com/computing/i-switched-from-my-laptop-to-the-ipad-pro-m5-and-its-now-a-tablet-i-can-finally-work-on">iPad Pro</a>, the NXTPAPER 14 does struggle at times with more demanding tasks. However, not only are you paying half or even a third less than those flagship prices, but you also don’t have to budget for the extra cost of accessories like a case or a stylus — TCL gives you the whole "clipboard folio" kit right in the box.</p><p>Given that TCL was kind enough to send over both the NXTPAPER 14 and the 11 Plus, I’m going to use the latter when I need portable power and the former when sheer screen size is most important. Still, you can’t go wrong with either of these more affordable tablets, especially as they pack in plenty of unique features you just won’t find anywhere else.</p><p>Who knows? Maybe TCL will go even larger with its next NXTPAPER tablet. Even if it doesn’t, though, I’d love to see a second-generation NXTPAPER 14 with just a bit more power under the hood to match its massive potential.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/opinion/i-use-these-3-tricks-with-all-my-tablets-so-they-dont-just-feel-like-a-bigger-phone">I use these 3 tricks with all my tablets so they don’t just feel like a bigger phone</a></li><li><a href="https://www.tomsguide.com/best-picks/best-tablets-under-dollar500">These are the best budget tablets under $500</a></li><li><a href="https://www.tomsguide.com/computing/tablets/samsung-galaxy-tab-s11-ultra-vs-ipad-pro-m5-which-tablet-should-you-buy">Samsung Galaxy Tab S11 Ultra vs. iPad Pro M5 — which tablet should you buy?</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/android-tablets/i-thought-smaller-was-better-until-i-tried-a-massive-14-inch-tablet-that-feels-like-a-clipboard</link>
                                                                            <description>
                            <![CDATA[ The TCL NXTPAPER 14 may look like a portable monitor but it’s actually a giant Android tablet that trades sheer power for a paper-like display. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">GtAHQvBXcVZiBBqajSZpw4</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/4N8hWYkWN7bcKuqJNHDRFU-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 02 May 2026 10:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Android Tablets]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Tablets]]></category>
                                                                                                <author><![CDATA[ anthony.spadafora@futurenet.com (Anthony Spadafora) ]]></author>                    <dc:creator><![CDATA[ Anthony Spadafora ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/z73LEoj7FkUjNG85GcWHtH.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Anthony Spadafora is the managing editor for security and home office furniture at Tom’s Guide where he covers everything from data breaches and malware to password managers and the best way to cover your whole home or business with a strong Wi-Fi signal.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Before joining the team, he spent three years covering cybersecurity and B2B tech for ITProPortal while living in South Korea. After moving back to the US. Anthony joined the TechRadar Pro team where he covered these topics along with VPNs, web hosting, online collaboration software and video conferencing for four years. Anthony also has his ears to the ground and is on the lookout for the next major cyberattack or data breach.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Based in Houston, Texas, Anthony also handles VPN testing for both Tom’s Guide and TechRadar. As someone who has worked from home exclusively since 2018, he has reviewed dozens of standing desks as well as office chairs and has taken a closer look at other essential remote working accessories. As part of these reviews, Anthony frequently builds intricate desk setups which is why he’s such a big advocate for cable management and keeping things organized. When he’s not writing, he can be found tinkering with PCs and game consoles, managing cables and making upgrades to his smart home.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/4N8hWYkWN7bcKuqJNHDRFU-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A person holding the TCL NXTPAPER 14 tablet at a table]]></media:description>                                                            <media:text><![CDATA[A person holding the TCL NXTPAPER 14 tablet at a table]]></media:text>
                                <media:title type="plain"><![CDATA[A person holding the TCL NXTPAPER 14 tablet at a table]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/4N8hWYkWN7bcKuqJNHDRFU-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>From the <a href="https://www.tomsguide.com/computing/tablets/i-thought-the-ipad-mini-was-the-perfect-small-tablet-until-i-tried-the-lenovo-legion-tab-3-heres-why">Nexus 7</a> to the <a href="https://www.tomsguide.com/tablets/i-spent-two-weeks-with-the-ipad-mini-7-and-it-reignited-my-love-for-smaller-tablets">iPad mini</a>, I’ve always preferred smaller tablets you can hold in one hand and easily slip into a bag, which is why I was so surprised when I found myself reaching for an absolutely massive 14.3-inch slate instead.</p><p>Unlike other tablets where specs and sheer power are the main draw, the screen itself is why you’d choose a device like the TCL NXTPAPER 14 over something more conventional. Its specs are nothing to scoff at either though, with 8GB of RAM, 256GB of storage and a whopping 10,000 mAh battery under the hood. However, the paper-like feel of its matte display and how you can go from a dedicated black and white ink mode to color paper mode with the push of a button is the kind of thing you truly have to see for yourself.</p><p>Although I tested out its smaller, more powerful sibling the <a href="https://www.tomsguide.com/computing/tablets/i-tried-the-tcl-nxtpaper-11-plus-and-this-budget-tablet-is-easily-my-ipad-killer-heres-why">TCL NXTPAPER 11 Plus</a>, it was the NXTPAPER 14 that first caught my eye. Even under harsh direct lighting, its larger screen remained completely glare and reflection-free. Now, I finally had a chance to use it in the real world and not just at a mall in Taiwan.</p><p>I’ve been using the NXTPAPER 14 for the past few months and while it may not end up being my daily driver, there’s certainly a place for larger tablets like this one — especially if you’d rather carry something more substantial under your arm.</p><div class="product"><a data-dimension112="9a7290b1-b771-497a-aab4-dd39ed2c8af3" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$369" href="https://www.amazon.com/TCL-NXTPAPER-Paper-Like-4096-Level-Multi-Window/dp/B0FLP554CZ" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1479px;"><p class="vanilla-image-block" style="padding-top:78.23%;"><img id="RieyhMD4q8Qys2uDrwLwWP" name="NXTPAPER 14" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/RieyhMD4q8Qys2uDrwLwWP.jpg" mos="" align="middle" fullscreen="" width="1479" height="1157" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>This 14.3-inch Android tablet boasts a 10,000 mAh battery and a 2.4K display, but it’s the NXTPAPER 3.0 tech and 3:2 aspect ratio that really make it stand out. You get a paper-like feel when scrolling through documents or taking notes with the included T-Pen. The NXTPAPER 14 also comes with a folio-style carrying case.<a class="view-deal button" href="https://www.amazon.com/TCL-NXTPAPER-Paper-Like-4096-Level-Multi-Window/dp/B0FLP554CZ" target="_blank" rel="nofollow" data-dimension112="9a7290b1-b771-497a-aab4-dd39ed2c8af3" data-action="Deal Block" data-label="NXTPAPER 14" data-dimension48="NXTPAPER 14" data-dimension25="$369">View Deal</a></p></div><h2 id="from-tablet-to-portfolio">From tablet to portfolio</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kwnabDFk2FBcRtYVfTZdmW" name="TCL NXTPAPER 14--3" alt="The TCL NXTPAPER 14 unboxed on a desk" src="https://cdn.mos.cms.futurecdn.net/kwnabDFk2FBcRtYVfTZdmW.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>One thing I immediately appreciated about the NXTPAPER 14 is how TCL provides you with everything you need right in the box. You get a folio-style case with a magnetic cover, a lengthy charging cable and more surprisingly, a pressure-sensitive, active stylus with a USB-C port on the side for charging.</p><p>Even with many of the <a href="https://www.tomsguide.com/best-picks/best-tablet">best tablets</a>, you often find yourself hunting for accessories like a case or screen protector after the fact. TCL takes the guesswork out of protecting and making full use of its NXTPAPER tablets, so you can instantly go from unboxing to enjoying them. And while there isn’t a screen protector in the box, I wouldn’t recommend using one since that would mean missing out on the paper-like feel of the NXTPAPER 14’s matte display.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4caKnqvmwpxm2BsxmTsFtZ" name="TCL NXTPAPER 14--2" alt="The TCL NXTPAPER 14 in its case open on a desk" src="https://cdn.mos.cms.futurecdn.net/4caKnqvmwpxm2BsxmTsFtZ.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I’m no digital artist but I like having a stylus on hand for scrolling and signing the occasional document. TCL’s T-Pen is quite capable too with 4,096 levels of pressure sensitivity and around 100 hours of battery life on a single charge. What I like most about using it though is how the combination of its active tip and the matte texture of the NXTPAPER 14’s display feels. You don’t get that same drag when using a stylus like the <a href="https://www.tomsguide.com/opinion/apple-pencil-usb-c-3-things-i-like-and-3-i-dont">Apple Pencil</a> or the <a href="https://www.tomsguide.com/opinion/i-finally-got-the-right-stylus-for-my-chromebook-and-its-a-game-changer">Surface Pen</a> on a glass tablet.</p><p>Another thing I really enjoy about the NXTPAPER 14 is how it feels under my arm when carrying it from room to room around my house. With a screen slightly larger than your standard sheet of printer paper and an aluminum back, it really feels like I’m holding a clipboard folio that’s ready for any task.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OozPqW"></div>                            </div>                            <script src="https://kwizly.com/embed/OozPqW.js" async></script><h2 id="made-to-scroll">Made to scroll</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="57BBCRqWe5DV8ujUzX6Psc" name="TCL NXTPAPER 14--6" alt="A person scrolling through Google Discover on the TCL NXTPAPER 14" src="https://cdn.mos.cms.futurecdn.net/57BBCRqWe5DV8ujUzX6Psc.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As someone who’s constantly checking the news, it almost feels like I scroll for a living when I’m not hammering away on my keyboard. With 7.9 inches from top to bottom horizontally or an even larger 11.9 inches vertically, the NXTPAPER 14 just feels great for scrolling. It’s almost like going from a budget laptop to one of the <a href="https://www.tomsguide.com/computing/laptops/best-laptops">best laptops</a> with a much larger trackpad.</p><p>TCL doesn’t let the NXTPAPER 14’s extra screen real estate go to waste either. Not only can you have two apps running side by side, but you can also have one app in floating window mode while another runs full-size behind it—great for having a calculator or a quick chat window just a tap away.</p><p>Going all the way back to your app drawer can be a hassle on a massive tablet like this one, which is why TCL added its Edge Bar feature. By swiping in from the edge and briefly holding, you bring up a customizable mini dock with useful shortcuts and tools, but you can also add your own apps to the mix.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Qf3XfDFcds6E99j7VFBByf" name="TCL NXTPAPER 14--5" alt="A person scrolling through the redesigned Tom's Guide home page on the TCL NXTPAPER 14" src="https://cdn.mos.cms.futurecdn.net/Qf3XfDFcds6E99j7VFBByf.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As an avid reader, using the NXTPAPER 14 in portrait mode feels even better, at least for me. Whether I’m scrolling through a Google Doc or even the recently redesigned <a href="https://www.tomsguide.com/" target="_blank">Tom’s Guide home page</a>, I still can’t get over how much I can see at a time on this tablet’s larger display.</p><p>Though I covered this in more depth with the NXTPAPER 11 Plus, don’t forget that you aren’t limited to your standard reading modes here either. With a push of its namesake NXTPAPER Key, you can switch from the default Regular Mode to either Color Paper Mode or Ink Paper Mode. Both have their upsides, but I particularly like how using Ink Paper Mode on the NXTPAPER 14 extends its battery life significantly. There’s just something about seeing your remaining battery estimate jump from double to triple-digit hours with the push of a button.</p><p>If reading isn’t your thing, you’re still in luck because at 14.3 inches, the NXTPAPER 14 is around the same size as a <a href="https://www.tomsguide.com/computing/peripherals/i-added-a-portable-monitor-next-to-my-main-display-and-this-inexpensive-upgrade-is-a-game-changer">portable monitor</a>.</p><h2 id="a-smarter-portable-monitor">A smarter portable monitor</h2><p>You won’t have any trouble running the respective apps for any of the <a href="https://www.tomsguide.com/us/best-streaming-video-services,review-2625.html">best streaming services</a> on the NXTPAPER 14. However, when I first used it to stream video content, I did so a bit differently. I was wrapping Christmas presents in the sitting room where we don’t have a TV and wanted to put on something in the background. Instead of Netflix, I opened the app for the Ugreen NAS I <a href="https://www.tomsguide.com/computing/peripherals/i-finally-added-a-nas-to-my-home-network-and-i-cant-believe-i-waited-this-long">recently added to my home network</a> and watched one of my favorite holiday movies to help deal with the fact that I’m terrible at wrapping presents. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HoiUwJn9LeuBSYcH9jqsw6" name="TCL NXTPAPER 14--7" alt="A Nintendo Switch 2 connected to a TCL NXTPAPER 14 using the Genki Covert Dock 3 and Genki ShadowCast 3 Pro" src="https://cdn.mos.cms.futurecdn.net/HoiUwJn9LeuBSYcH9jqsw6.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As I recently had a chance to test out Genki’s new <a href="https://www.tomsguide.com/gaming/gaming-peripherals/i-tried-genkis-covert-dock-3-with-the-nintendo-switch-2-and-it-beats-the-official-dock-for-one-key-reason">Covert Dock 3</a> with my Switch 2, I wanted to see if I could get some more demanding games running on the NXTPAPER 14. With its octa-core MediaTek MT8781 processor, you can play some simple games, but you won’t be playing the mobile version of Red Dead Redemption anytime soon. That’s where Genki’s ShadowCast 3 Pro comes in.</p><p>I hooked up the Covert Dock 3 under my desk, but instead of plugging in an HDMI cable to go out to my TV, I used the ShadowCast 3 Pro to get the video feed from my Switch 2 on the NXTPAPER 14. I did have to buy and download the <a href="https://play.google.com/store/apps/details?id=me.dt2dev.uvcpreview.free&hl=en_US">Noir Pro: USB Camera</a> app for $9, but that’s a small price to pay to play my Switch 2 on a tablet. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HuAJ3fVA9pCvcPgxMbdjYL" name="TCL NXTPAPER 14--8" alt="A person playing Super Mario Galaxy on the Nintendo Switch 2 on the TCL NXTPAPER 14 using the Genki Covert Dock 3 and the Genki ShadowCast 3 Pro" src="https://cdn.mos.cms.futurecdn.net/HuAJ3fVA9pCvcPgxMbdjYL.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As I recently had a chance to test out Genki’s new <a href="https://www.tomsguide.com/gaming/gaming-peripherals/i-tried-genkis-covert-dock-3-with-the-nintendo-switch-2-and-it-beats-the-official-dock-for-one-key-reason">Covert Dock 3</a> with my Switch 2, I wanted to see if I could get some more demanding games running on the NXTPAPER 14. With its octa-core MediaTek MT8781 processor, you can play some simple games, but you won’t be playing the mobile version of Red Dead Redemption anytime soon. That’s where Genki’s ShadowCast 3 Pro comes in.</p><p>I hooked up the Covert Dock 3 under my desk, but instead of plugging in an HDMI cable to go out to my TV, I used the ShadowCast 3 Pro to get the video feed from my Switch 2 on the NXTPAPER 14. I did have to buy and download the <a href="https://play.google.com/store/apps/details?id=me.dt2dev.uvcpreview.free&hl=en_US">Noir Pro: USB Camera</a> app for $9, but that’s a small price to pay to play my Switch 2 on a tablet. </p><h2 id="not-quite-prime-real-estate">Not quite prime real estate</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="av7XxersZaSBrCp6MjmkLQ" name="TCL NXTPAPER 14--4" alt="A person carrying the TCL NXTPAPER 14 under their arm at a restauarant" src="https://cdn.mos.cms.futurecdn.net/av7XxersZaSBrCp6MjmkLQ.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The NXTPAPER 14 remains just as impressive after using it for several months now as it did when it literally stopped me in my tracks while walking through that mall in Taiwan. I always thought smaller was best when it comes to tablets, but after spending some quality time with its massive display, I now appreciate all that extra screen real estate.</p><p>Compared to more premium tablets like the <a href="https://www.tomsguide.com/computing/android-tablets/i-ditched-my-laptop-for-the-samsung-galaxy-tab-s11-ultra-heres-what-happened">Samsung Galaxy Tab S11 Ultra</a> or the <a href="https://www.tomsguide.com/computing/i-switched-from-my-laptop-to-the-ipad-pro-m5-and-its-now-a-tablet-i-can-finally-work-on">iPad Pro</a>, the NXTPAPER 14 does struggle at times with more demanding tasks. However, not only are you paying half or even a third less than those flagship prices, but you also don’t have to budget for the extra cost of accessories like a case or a stylus — TCL gives you the whole "clipboard folio" kit right in the box.</p><p>Given that TCL was kind enough to send over both the NXTPAPER 14 and the 11 Plus, I’m going to use the latter when I need portable power and the former when sheer screen size is most important. Still, you can’t go wrong with either of these more affordable tablets, especially as they pack in plenty of unique features you just won’t find anywhere else.</p><p>Who knows? Maybe TCL will go even larger with its next NXTPAPER tablet. Even if it doesn’t, though, I’d love to see a second-generation NXTPAPER 14 with just a bit more power under the hood to match its massive potential.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/opinion/i-use-these-3-tricks-with-all-my-tablets-so-they-dont-just-feel-like-a-bigger-phone">I use these 3 tricks with all my tablets so they don’t just feel like a bigger phone</a></li><li><a href="https://www.tomsguide.com/best-picks/best-tablets-under-dollar500">These are the best budget tablets under $500</a></li><li><a href="https://www.tomsguide.com/computing/tablets/samsung-galaxy-tab-s11-ultra-vs-ipad-pro-m5-which-tablet-should-you-buy">Samsung Galaxy Tab S11 Ultra vs. iPad Pro M5 — which tablet should you buy?</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ TCL QM8L vs QM8K: Is the new SQD TV worth the upgrade? ]]></title>
                                                                                                <dc:content><![CDATA[ <p>In 2025, the <a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review">TCL QM8K</a> was one of the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TVs</a> of the year. Its bright, quantum dot-bolstered picture and frequent discounts made it an attractive option for those looking for a bargain on a high-performing TV.</p><p>The <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L</a> is a brand-new TV for 2026. Unlike its predecessor, the QM8L leverages a new type of Mini-LED display that TCL is calling Super Quantum Dot (SQD). It recently launched for a relatively high price tag, but just like the QM8K, it's on sale now.</p><p>If you're looking to upgrade your TV this year and you've got an eye for premium performance, there's a good chance you'll be choosing between these two sets. Here's how the QM8L and last-year's QM8K compare — from performance to features and price.</p>        <div class="featured_product_block featured_block_versus" data-id="27c98386-334a-46f4-9d66-2e8abb5a5403">            <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review" data-model-name="TCL 75QM8L SQD-Mini LED" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/y6zxm2KoohC6JFqu4fBaof.jpg" alt="The TCL QM8L SQD Mini-LED TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL QM8L</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="80" /></span></div>                                        <p><p>The QM8L is a brand-new TV for 2026. Like the QM8K, it features Mini-LED backlighting, but the QM8L is also equipped with the brand's newest display technology, Super Quantum Dot, which gives it a slight edge over the QM8K.</p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_versus" data-id="6e4f4178-db48-4095-a276-0af35096717b">            <a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review" data-model-name="TLC QM8K QLED 4K TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/cvcbX4Rrye3D4md3cybmtb.jpg" alt="TCL QM8K Mini-LED TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL QM8K</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="80" /></span></div>                                        <p><p>The QM8K is one of TCL's top-performing TVs from 2025. It delivers a bright, colorful picture and plenty of features, and since it's been on shelves for a year, you can find it on sale for less than what you'll pay for its successor, the QM8L.</p></p>                </div>                            </div>        </div><h2 id="tcl-qm8l-vs-qm8k-specs-compared">TCL QM8L vs QM8K: specs compared</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL QM8L</p></th><th  ><p>TCL QM8K</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Sizes</strong></p></td><td  ><p>65", 75", 85", 98"</p></td><td  ><p>65", 75", 85", 98"</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>4x HDMI 2.1</p></td><td  ><p>2x HDMI 2.1, 2x HDMI 2.0</p></td></tr><tr><td class="firstcol " ><p><strong>Resolution</strong></p></td><td  ><p>3,840 x 2,160p</p></td><td  ><p>3,840 x 2,160p</p></td></tr><tr><td class="firstcol " ><p><strong>Refresh rate</strong></p></td><td  ><p>144Hz</p></td><td  ><p>144Hz</p></td></tr><tr><td class="firstcol " ><p><strong>HDR</strong></p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td></tr><tr><td class="firstcol " ><p><strong>Smart TV software</strong></p></td><td  ><p>Google TV</p></td><td  ><p>Google TV</p></td></tr><tr><td class="firstcol " ><p><strong>ATSC 3.0 support?</strong></p></td><td  ><p>Yes</p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Processor</strong></p></td><td  ><p>TSR AI Pro Processor</p></td><td  ><p>AIPQ PRO Processor</p></td></tr></tbody></table></div><p>Both sets come in screen sizes between 65 and 98 inches. Folks in the market for something smaller (like the ever-popular 55-inch screen size) will have to shop around. More similarities: Both TVs support Dolby Vision as well as the royalty-free version of Dolby Vision, HDR10+. </p><p>In addition, both of these TCL TVs conveniently come with ATSC 3.0 support. This feature allows over-the-air broadcasts to be piped-in at native 4K resolution via antenna. 4K over-the-air broadcasts are still few and far between, but for folks who watch TV via antenna, ATSC 3.0 is a very nice feature to have.</p><p>Both sets serve up HDMI 2.1-compatible inputs and support 4K gaming at 120Hz. This spec can be pushed to 4K/144Hz when a gaming PC is in play. </p><p>Crucially, though, only the QM8L offers a full suite of four HDMI 2.1 inputs. On the QM8K, you're only getting two high-bandwidth ports. For this reason, the QM8L is better suited for people with multiple gaming devices, as they won't have to worry about a console being plugged into a less-capable port.</p><p><em><strong>Winner: </strong></em><em>TCL QM8L</em></p><h2 id="tcl-qm8l-vs-qm8k-design">TCL QM8L vs QM8K: design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="d8mR67WQMwWr25Zdb7Um9h" name="TCL-75QM8L-TV-15" alt="The back of a TCL QM8L TV" src="https://cdn.mos.cms.futurecdn.net/d8mR67WQMwWr25Zdb7Um9h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The QM8L (seen above) is a thicker, heavier TV than many LED-based sets. Thankfully, the look doesn't cross over into something industrial.</p><p>From a profile view, the QM8L's panel-and-chassis combo is mostly uniform, which goes a long way towards preserving its non-industrial vibe. The whole package sits atop a heavy, pedestal-style stand positioned below the center of the screen.</p><p>The stand design is helpful if you intend to place the QM8L on a narrow credenza or media console. Were there wide-set feet straddling the corners of the screen instead, folks who opt for a larger-sized QM8L would need a wide-enough surface to accommodate the setup.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nnAmZ9ctVXDSJVXyhHWB5h" name="TG_TCL-QM8K-TV-1" alt="The back of a TCL QM8K QD-Mini LED TV." src="https://cdn.mos.cms.futurecdn.net/nnAmZ9ctVXDSJVXyhHWB5h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The QM8K (seen above) is nearly identical in its design approach. It, too, comes with a pedestal-style stand. Like its successor, the QM8K's thicker-than-average, Mini-LED display is also mostly uniform when viewed from the side.</p><p>Both TVs arrive with a similarly designed remote control, as well. I appreciate this quite a bit, as I find TCL's latest remote design to be both useful in its button layout and comfortable to hold. Best of all? These clickers are backlit, a feature whose convenience can't be understated whenever the lights are off.</p><p>Given their near-identical designs, this category is a draw. Both of these TCL TVs are among the best-designed sets in the brand's catalogue.</p><p><em><strong>Winner:</strong></em><em> Draw</em></p><h2 id="tcl-qm8l-vs-qm8k-performance">TCL QM8L vs QM8K: performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="dEjS8SCpepPQiFTrGu485h" name="TG_TCL-QM8K-TV-8" alt="Spider-Man: Across the Universe on a TCL QM8K QD-Mini LED TV." src="https://cdn.mos.cms.futurecdn.net/dEjS8SCpepPQiFTrGu485h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Before we dive into which of these TVs is the better performer, let's compare their test results. (Both TVs were in their respective Filmmaker picture modes when these tests were taken.)</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>TCL QM8L</strong></p></th><th  ><p><strong>TCL QM8K</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>SDR Brightness (10%, in nits)    </strong></p></td><td  ><p>229</p></td><td  ><p>231</p></td></tr><tr><td class="firstcol " ><p><strong>Delta-E (lower is better)    </strong></p></td><td  ><p>3.7</p></td><td  ><p>2.7</p></td></tr><tr><td class="firstcol " ><p><strong>HDR Brightness (10%, in nits)    </strong></p></td><td  ><p>3,719</p></td><td  ><p>3,333</p></td></tr><tr><td class="firstcol " ><p><strong>UHDA-P3 Gamut Coverage    </strong></p></td><td  ><p>97.97%</p></td><td  ><p>97.28%</p></td></tr><tr><td class="firstcol " ><p><strong>Rec.2020 Gamut Coverage    </strong></p></td><td  ><p>90.34% </p></td><td  ><p>80.11%</p></td></tr><tr><td class="firstcol " ><p><strong>Input latency (milliseconds)   </strong></p></td><td  ><p>9.5</p></td><td  ><p>13</p></td></tr></tbody></table></div><p>It's important to acknowledge just how similarly these TVs perform across all content — not just 4K, HDR-mastered movies and shows.</p><p>While the QM8L is undoubtedly the brighter of the two sets, most people would be hard-pressed to clock a difference in brightness during a side-by-side comparison. More importantly, both of these Mini-LED TVs do a fine job of minimizing light bloom whenever bright picture elements clash with dark backgrounds (though the QM8L is a bit better with its backlight control).</p><p>According to our test results, the year-old QM8K does a slightly better job dialing-in its color points in TCL's Filmmaker mode. However, the difference between a Delta-E of 2.7 and 3.7 isn't dramatic, so you can expect a comparable out-of-the-box experience on the newer QM8L.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="ocZjqjYRGHtmAdkWGHbsVc" name="TCL-75QM8L-TV-2" alt="A 75-inch TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/ocZjqjYRGHtmAdkWGHbsVc.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Performance begins to diverge when we compare color volume. Thanks to TCL's SQD technology (a new spin on quantum-dot color), the QM8L covers a whopping 90% of the BT.2020 color space. The QM8K is no slouch, but its 80% figure is closer to what we measure on standard, non-SQD Mini-LED TVs.</p><p>Yes, both TVs are bright and colorful-enough to deliver a punchy, room-filling experience during HDR-mastered content. If you were to look at them side by side, however, there's a good chance you'd clock redder reds and brighter highlights on the QM8L.</p><p>It's tempting to dock the QM8L for its relatively high color error score in Filmmaker mode, but I must stress that these TVs are close enough in performance while set to their most-accurate picture modes that the average person won't need to worry about this.</p><p>When you take it all together, the QM8L's slightly higher brightness, added color and lower input latency make for superior performance — if only by a little.</p><p><em><strong>Winner:</strong></em><em> TCL QM8L</em></p><h2 id="tcl-qm8l-vs-qm8k-smart-platform-and-features">TCL QM8L vs QM8K: smart platform and features</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="rKFT26Nuo5fc4ycgaECXPc" name="TCL-75QM8L-TV-13" alt="A 75-inch TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/rKFT26Nuo5fc4ycgaECXPc.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As is the case with picture quality, both of these TVs are quite similar when it comes to their streaming- and gaming-related features.</p><p>Both the TCL QM8L and the QM8K are built around the Google TV smart platform. Pound for pound, I prefer Google TV over every smart platform <em>not </em>named "Roku," as its interface is easier to navigate than LG's webOS and Samsung's Smart Hub.</p><p>Yes, there are ads all over Google TV. But I don't often find that the ads are getting in the way of my navigation, which happens often when I'm using rival software suites. Google TV is also connected to a vast library of downloadable apps, so it's more than capable of being a daily driver.</p><p>The QM8L and QM8K both come with a similar set of gaming features. Variable Refresh Rate (VRR) and AMD FreeSync Premium Pro, which ensure artifact-free performance when games get fast paced. TCL's Game Bar — a quick-access menu that puts gaming-related settings on your screen immediately — is represented on both models, too.</p><p>As mentioned, in order to access the QM8K's full set of features, a device must be plugged into one of its two only HDMI 2.1 inputs. The QM8L, on the other hand, is outfitted with four high-bandwidth inputs.</p><p>We've already come to terms with this difference in HDMI hardware when comparing these TVs' specs. As far as features go, they're almost the same TV.</p><p><em><strong>Winner:  </strong></em><em>Draw</em></p><h2 id="tcl-qm8l-vs-qm8k-outlook">TCL QM8L vs QM8K: outlook</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL QM8L</p></th><th  ><p>TCL QM8K</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Specs (25)</strong></p></td><td  ><p>23</p></td><td  ><p>21</p></td></tr><tr><td class="firstcol " ><p><strong>Design (25)</strong></p></td><td  ><p>22</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Performance (25)</strong></p></td><td  ><p>23</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Features (25)</strong></p></td><td  ><p>23</p></td><td  ><p>23</p></td></tr><tr><td class="firstcol " ><p><strong>Total Score (100)</strong></p></td><td  ><p><strong>91</strong></p></td><td  ><p><strong>88</strong></p></td></tr></tbody></table></div><p>The QM8L and QM8K are nearly carbon copies. The QM8L delivers better performance (thanks to slightly higher brightness, better color volume and lower input latency), but it's up to you to determine if those marginal benefits are worth the added price.</p><p>The QM8L just launched at $2,499 for a 65-inch version, but it didn't take long to go on sale. Right now, you can get the <a href="https://www.bestbuy.com/product/tcl-65-class-qm8l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH359" target="_blank" rel="nofollow">65-inch TCL QM8L for $1,799 at Best Buy</a>. The <a href="https://www.bestbuy.com/product/tcl-75-class-qm8l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH3FX" target="_blank" rel="nofollow">75-inch QM8L is just $1,999 at Best Buy</a> at the time of publishing.</p><p>The QM8K, on the other hand, is much more affordable. You can nab the <a href="https://www.amazon.com/TCL-65QM8K-120HZ-144HZ-Reflective-Television/dp/B0F53CZ4WT?th=1" target="_blank" rel="nofollow">65-inch QM8K at Amazon for just $997</a>. The <a href="https://www.bestbuy.com/product/tcl-75-class-qm8k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQZ3P" target="_blank" rel="nofollow">75-inch QM8K is $1,447 at Best Buy</a>.</p><p>If I happened to be choosing between these two TVs, I'd likely spring for the newer QM8L — but not because of its slightly superior picture. The inclusion of two extra HDMI 2.1-compatible inputs is hugely helpful, as someone who does a fair amount of gaming across multiple devices.</p><p>If this sounds like you, the QM8L's added cost might be justified. You'll also be getting a more-colorful presentation.</p><p>For everyone else, I recommend saving as much money as possible by opting for the QM8K. The QM8L's price will likely continue to fall throughout the year, but as a 2025 release, the QM8K's stock won't last much longer.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L review</a></li><li><a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review">TCL QM8K review</a></li><li><a href="https://www.tomsguide.com/tvs/the-ram-crisis-came-for-computers-first-and-now-its-coming-for-tvs-heres-why-i-recommend-upgrading-while-you-still-can">The RAM crisis came for computers first and now it's coming for TVs — here's why I recommend upgrading while you still can</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/tcl-qm8l-vs-qm8k-is-the-new-sqd-tv-worth-the-upgrade</link>
                                                                            <description>
                            <![CDATA[ The TCL QM8K is one of the best TCL Mini-LED TVs of 2025, but the QM8L is the brand's all-new, Super Quantum Dot (SQD) TV. Here's how they compare — from performance to features and price. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">7uJwAkEWP6fViyoUz9Khxj</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/rrBTKqFowtzjHM7oFKria5-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 01 May 2026 08:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/rrBTKqFowtzjHM7oFKria5-1280-80.jpg">
                                                            <media:credit><![CDATA[TCL]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The TCL QM8L SQD Mini-LED TV and the QM8K Mini-LED TV side by side]]></media:description>                                                            <media:text><![CDATA[The TCL QM8L SQD Mini-LED TV and the QM8K Mini-LED TV side by side]]></media:text>
                                <media:title type="plain"><![CDATA[The TCL QM8L SQD Mini-LED TV and the QM8K Mini-LED TV side by side]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/rrBTKqFowtzjHM7oFKria5-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>In 2025, the <a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review">TCL QM8K</a> was one of the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TVs</a> of the year. Its bright, quantum dot-bolstered picture and frequent discounts made it an attractive option for those looking for a bargain on a high-performing TV.</p><p>The <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L</a> is a brand-new TV for 2026. Unlike its predecessor, the QM8L leverages a new type of Mini-LED display that TCL is calling Super Quantum Dot (SQD). It recently launched for a relatively high price tag, but just like the QM8K, it's on sale now.</p><p>If you're looking to upgrade your TV this year and you've got an eye for premium performance, there's a good chance you'll be choosing between these two sets. Here's how the QM8L and last-year's QM8K compare — from performance to features and price.</p>        <div class="featured_product_block featured_block_versus" data-id="27c98386-334a-46f4-9d66-2e8abb5a5403">            <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review" data-model-name="TCL 75QM8L SQD-Mini LED" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/y6zxm2KoohC6JFqu4fBaof.jpg" alt="The TCL QM8L SQD Mini-LED TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL QM8L</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="80" /></span></div>                                        <p><p>The QM8L is a brand-new TV for 2026. Like the QM8K, it features Mini-LED backlighting, but the QM8L is also equipped with the brand's newest display technology, Super Quantum Dot, which gives it a slight edge over the QM8K.</p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_versus" data-id="6e4f4178-db48-4095-a276-0af35096717b">            <a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review" data-model-name="TLC QM8K QLED 4K TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/cvcbX4Rrye3D4md3cybmtb.jpg" alt="TCL QM8K Mini-LED TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL QM8K</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="80" /></span></div>                                        <p><p>The QM8K is one of TCL's top-performing TVs from 2025. It delivers a bright, colorful picture and plenty of features, and since it's been on shelves for a year, you can find it on sale for less than what you'll pay for its successor, the QM8L.</p></p>                </div>                            </div>        </div><h2 id="tcl-qm8l-vs-qm8k-specs-compared">TCL QM8L vs QM8K: specs compared</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL QM8L</p></th><th  ><p>TCL QM8K</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Sizes</strong></p></td><td  ><p>65", 75", 85", 98"</p></td><td  ><p>65", 75", 85", 98"</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>4x HDMI 2.1</p></td><td  ><p>2x HDMI 2.1, 2x HDMI 2.0</p></td></tr><tr><td class="firstcol " ><p><strong>Resolution</strong></p></td><td  ><p>3,840 x 2,160p</p></td><td  ><p>3,840 x 2,160p</p></td></tr><tr><td class="firstcol " ><p><strong>Refresh rate</strong></p></td><td  ><p>144Hz</p></td><td  ><p>144Hz</p></td></tr><tr><td class="firstcol " ><p><strong>HDR</strong></p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td></tr><tr><td class="firstcol " ><p><strong>Smart TV software</strong></p></td><td  ><p>Google TV</p></td><td  ><p>Google TV</p></td></tr><tr><td class="firstcol " ><p><strong>ATSC 3.0 support?</strong></p></td><td  ><p>Yes</p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Processor</strong></p></td><td  ><p>TSR AI Pro Processor</p></td><td  ><p>AIPQ PRO Processor</p></td></tr></tbody></table></div><p>Both sets come in screen sizes between 65 and 98 inches. Folks in the market for something smaller (like the ever-popular 55-inch screen size) will have to shop around. More similarities: Both TVs support Dolby Vision as well as the royalty-free version of Dolby Vision, HDR10+. </p><p>In addition, both of these TCL TVs conveniently come with ATSC 3.0 support. This feature allows over-the-air broadcasts to be piped-in at native 4K resolution via antenna. 4K over-the-air broadcasts are still few and far between, but for folks who watch TV via antenna, ATSC 3.0 is a very nice feature to have.</p><p>Both sets serve up HDMI 2.1-compatible inputs and support 4K gaming at 120Hz. This spec can be pushed to 4K/144Hz when a gaming PC is in play. </p><p>Crucially, though, only the QM8L offers a full suite of four HDMI 2.1 inputs. On the QM8K, you're only getting two high-bandwidth ports. For this reason, the QM8L is better suited for people with multiple gaming devices, as they won't have to worry about a console being plugged into a less-capable port.</p><p><em><strong>Winner: </strong></em><em>TCL QM8L</em></p><h2 id="tcl-qm8l-vs-qm8k-design">TCL QM8L vs QM8K: design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="d8mR67WQMwWr25Zdb7Um9h" name="TCL-75QM8L-TV-15" alt="The back of a TCL QM8L TV" src="https://cdn.mos.cms.futurecdn.net/d8mR67WQMwWr25Zdb7Um9h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The QM8L (seen above) is a thicker, heavier TV than many LED-based sets. Thankfully, the look doesn't cross over into something industrial.</p><p>From a profile view, the QM8L's panel-and-chassis combo is mostly uniform, which goes a long way towards preserving its non-industrial vibe. The whole package sits atop a heavy, pedestal-style stand positioned below the center of the screen.</p><p>The stand design is helpful if you intend to place the QM8L on a narrow credenza or media console. Were there wide-set feet straddling the corners of the screen instead, folks who opt for a larger-sized QM8L would need a wide-enough surface to accommodate the setup.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nnAmZ9ctVXDSJVXyhHWB5h" name="TG_TCL-QM8K-TV-1" alt="The back of a TCL QM8K QD-Mini LED TV." src="https://cdn.mos.cms.futurecdn.net/nnAmZ9ctVXDSJVXyhHWB5h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The QM8K (seen above) is nearly identical in its design approach. It, too, comes with a pedestal-style stand. Like its successor, the QM8K's thicker-than-average, Mini-LED display is also mostly uniform when viewed from the side.</p><p>Both TVs arrive with a similarly designed remote control, as well. I appreciate this quite a bit, as I find TCL's latest remote design to be both useful in its button layout and comfortable to hold. Best of all? These clickers are backlit, a feature whose convenience can't be understated whenever the lights are off.</p><p>Given their near-identical designs, this category is a draw. Both of these TCL TVs are among the best-designed sets in the brand's catalogue.</p><p><em><strong>Winner:</strong></em><em> Draw</em></p><h2 id="tcl-qm8l-vs-qm8k-performance">TCL QM8L vs QM8K: performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="dEjS8SCpepPQiFTrGu485h" name="TG_TCL-QM8K-TV-8" alt="Spider-Man: Across the Universe on a TCL QM8K QD-Mini LED TV." src="https://cdn.mos.cms.futurecdn.net/dEjS8SCpepPQiFTrGu485h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Before we dive into which of these TVs is the better performer, let's compare their test results. (Both TVs were in their respective Filmmaker picture modes when these tests were taken.)</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>TCL QM8L</strong></p></th><th  ><p><strong>TCL QM8K</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>SDR Brightness (10%, in nits)    </strong></p></td><td  ><p>229</p></td><td  ><p>231</p></td></tr><tr><td class="firstcol " ><p><strong>Delta-E (lower is better)    </strong></p></td><td  ><p>3.7</p></td><td  ><p>2.7</p></td></tr><tr><td class="firstcol " ><p><strong>HDR Brightness (10%, in nits)    </strong></p></td><td  ><p>3,719</p></td><td  ><p>3,333</p></td></tr><tr><td class="firstcol " ><p><strong>UHDA-P3 Gamut Coverage    </strong></p></td><td  ><p>97.97%</p></td><td  ><p>97.28%</p></td></tr><tr><td class="firstcol " ><p><strong>Rec.2020 Gamut Coverage    </strong></p></td><td  ><p>90.34% </p></td><td  ><p>80.11%</p></td></tr><tr><td class="firstcol " ><p><strong>Input latency (milliseconds)   </strong></p></td><td  ><p>9.5</p></td><td  ><p>13</p></td></tr></tbody></table></div><p>It's important to acknowledge just how similarly these TVs perform across all content — not just 4K, HDR-mastered movies and shows.</p><p>While the QM8L is undoubtedly the brighter of the two sets, most people would be hard-pressed to clock a difference in brightness during a side-by-side comparison. More importantly, both of these Mini-LED TVs do a fine job of minimizing light bloom whenever bright picture elements clash with dark backgrounds (though the QM8L is a bit better with its backlight control).</p><p>According to our test results, the year-old QM8K does a slightly better job dialing-in its color points in TCL's Filmmaker mode. However, the difference between a Delta-E of 2.7 and 3.7 isn't dramatic, so you can expect a comparable out-of-the-box experience on the newer QM8L.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="ocZjqjYRGHtmAdkWGHbsVc" name="TCL-75QM8L-TV-2" alt="A 75-inch TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/ocZjqjYRGHtmAdkWGHbsVc.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Performance begins to diverge when we compare color volume. Thanks to TCL's SQD technology (a new spin on quantum-dot color), the QM8L covers a whopping 90% of the BT.2020 color space. The QM8K is no slouch, but its 80% figure is closer to what we measure on standard, non-SQD Mini-LED TVs.</p><p>Yes, both TVs are bright and colorful-enough to deliver a punchy, room-filling experience during HDR-mastered content. If you were to look at them side by side, however, there's a good chance you'd clock redder reds and brighter highlights on the QM8L.</p><p>It's tempting to dock the QM8L for its relatively high color error score in Filmmaker mode, but I must stress that these TVs are close enough in performance while set to their most-accurate picture modes that the average person won't need to worry about this.</p><p>When you take it all together, the QM8L's slightly higher brightness, added color and lower input latency make for superior performance — if only by a little.</p><p><em><strong>Winner:</strong></em><em> TCL QM8L</em></p><h2 id="tcl-qm8l-vs-qm8k-smart-platform-and-features">TCL QM8L vs QM8K: smart platform and features</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="rKFT26Nuo5fc4ycgaECXPc" name="TCL-75QM8L-TV-13" alt="A 75-inch TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/rKFT26Nuo5fc4ycgaECXPc.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As is the case with picture quality, both of these TVs are quite similar when it comes to their streaming- and gaming-related features.</p><p>Both the TCL QM8L and the QM8K are built around the Google TV smart platform. Pound for pound, I prefer Google TV over every smart platform <em>not </em>named "Roku," as its interface is easier to navigate than LG's webOS and Samsung's Smart Hub.</p><p>Yes, there are ads all over Google TV. But I don't often find that the ads are getting in the way of my navigation, which happens often when I'm using rival software suites. Google TV is also connected to a vast library of downloadable apps, so it's more than capable of being a daily driver.</p><p>The QM8L and QM8K both come with a similar set of gaming features. Variable Refresh Rate (VRR) and AMD FreeSync Premium Pro, which ensure artifact-free performance when games get fast paced. TCL's Game Bar — a quick-access menu that puts gaming-related settings on your screen immediately — is represented on both models, too.</p><p>As mentioned, in order to access the QM8K's full set of features, a device must be plugged into one of its two only HDMI 2.1 inputs. The QM8L, on the other hand, is outfitted with four high-bandwidth inputs.</p><p>We've already come to terms with this difference in HDMI hardware when comparing these TVs' specs. As far as features go, they're almost the same TV.</p><p><em><strong>Winner:  </strong></em><em>Draw</em></p><h2 id="tcl-qm8l-vs-qm8k-outlook">TCL QM8L vs QM8K: outlook</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL QM8L</p></th><th  ><p>TCL QM8K</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Specs (25)</strong></p></td><td  ><p>23</p></td><td  ><p>21</p></td></tr><tr><td class="firstcol " ><p><strong>Design (25)</strong></p></td><td  ><p>22</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Performance (25)</strong></p></td><td  ><p>23</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Features (25)</strong></p></td><td  ><p>23</p></td><td  ><p>23</p></td></tr><tr><td class="firstcol " ><p><strong>Total Score (100)</strong></p></td><td  ><p><strong>91</strong></p></td><td  ><p><strong>88</strong></p></td></tr></tbody></table></div><p>The QM8L and QM8K are nearly carbon copies. The QM8L delivers better performance (thanks to slightly higher brightness, better color volume and lower input latency), but it's up to you to determine if those marginal benefits are worth the added price.</p><p>The QM8L just launched at $2,499 for a 65-inch version, but it didn't take long to go on sale. Right now, you can get the <a href="https://www.bestbuy.com/product/tcl-65-class-qm8l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH359" target="_blank" rel="nofollow">65-inch TCL QM8L for $1,799 at Best Buy</a>. The <a href="https://www.bestbuy.com/product/tcl-75-class-qm8l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH3FX" target="_blank" rel="nofollow">75-inch QM8L is just $1,999 at Best Buy</a> at the time of publishing.</p><p>The QM8K, on the other hand, is much more affordable. You can nab the <a href="https://www.amazon.com/TCL-65QM8K-120HZ-144HZ-Reflective-Television/dp/B0F53CZ4WT?th=1" target="_blank" rel="nofollow">65-inch QM8K at Amazon for just $997</a>. The <a href="https://www.bestbuy.com/product/tcl-75-class-qm8k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQZ3P" target="_blank" rel="nofollow">75-inch QM8K is $1,447 at Best Buy</a>.</p><p>If I happened to be choosing between these two TVs, I'd likely spring for the newer QM8L — but not because of its slightly superior picture. The inclusion of two extra HDMI 2.1-compatible inputs is hugely helpful, as someone who does a fair amount of gaming across multiple devices.</p><p>If this sounds like you, the QM8L's added cost might be justified. You'll also be getting a more-colorful presentation.</p><p>For everyone else, I recommend saving as much money as possible by opting for the QM8K. The QM8L's price will likely continue to fall throughout the year, but as a 2025 release, the QM8K's stock won't last much longer.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L review</a></li><li><a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review">TCL QM8K review</a></li><li><a href="https://www.tomsguide.com/tvs/the-ram-crisis-came-for-computers-first-and-now-its-coming-for-tvs-heres-why-i-recommend-upgrading-while-you-still-can">The RAM crisis came for computers first and now it's coming for TVs — here's why I recommend upgrading while you still can</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ LG C6 vs TCL QM8L: Should you buy the OLED or SQD TV? ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c6-oled-review">C6 OLED </a>is LG's newest, mid-range OLED for 2026. It's the latest in a long line of massively popular, award-winning OLEDs that sit in the sweet spot between value-forward pricing and incredible performance.</p><p>The <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L</a> is also a brand-new TV, but it leverages a new type of Mini-LED display that TCL is calling Super Quantum Dot (SQD). It recently launched for a relatively high price tag, but you can already find it on sale for a lower price than the LG C6.</p>        <div class="featured_product_block featured_block_versus" data-id="6e4f4178-db48-4095-a276-0af35096717b">            <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c6-oled-review" data-model-name="LG C6 OLED TV,LG C6 65-inch OLED TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/yZJJv6Rpskz5oXrVozrW7o.jpg" alt="The LG C6 OLED TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">LG C6</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="90" /></span></div>                                        <p><p>The LG C6 delivers an excellent blend of performance and value. That said, it's an incremental upgrade over its predecessor, and the TCL QM8L is a better fit for bright-room viewing.</p></p>                </div>                            </div>        </div><p>If you're looking to upgrade your TV this year and you've got an eye for premium performance, there's a good chance you'll be choosing between these two sets. Here's how the C6 and QM8L compare — from performance to features and price.</p>        <div class="featured_product_block featured_block_versus" data-id="27c98386-334a-46f4-9d66-2e8abb5a5403">            <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review" data-model-name="TCL 75QM8L SQD-Mini LED" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/y6zxm2KoohC6JFqu4fBaof.jpg" alt="The TCL QM8L SQD Mini-LED TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL QM8L</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="80" /></span></div>                                        <p><p>The QM8L is brighter and more colorful than the LG C5, but its presentation isn't as accurate as LG's mid-range OLED. Right now, the QM8L is more affordable than the C5 in many sizes, as both models are new for 2026.</p></p>                </div>                            </div>        </div><h2 id="lg-c6-vs-tcl-qm8l-specs-compared">LG C6 vs TCL QM8L: specs compared</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>LG C6</p></th><th  ><p>TCL QM8L</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Sizes</strong></p></td><td  ><p>42", 48", 55", 65"</p></td><td  ><p>65", 75", 85", 98"</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>4x HDMI 2.1</p></td><td  ><p>4x HDMI 2.1</p></td></tr><tr><td class="firstcol " ><p><strong>Resolution</strong></p></td><td  ><p>3,840 x 2,160p</p></td><td  ><p>3,840 x 2,160p</p></td></tr><tr><td class="firstcol " ><p><strong>Refresh rate</strong></p></td><td  ><p>165Hz</p></td><td  ><p>144Hz</p></td></tr><tr><td class="firstcol " ><p><strong>HDR</strong></p></td><td  ><p>Dolby Vision, HDR10, HLG</p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td></tr><tr><td class="firstcol " ><p><strong>Smart TV software</strong></p></td><td  ><p>webOS 26</p></td><td  ><p>Google TV</p></td></tr><tr><td class="firstcol " ><p><strong>ATSC 3.0 support?</strong></p></td><td  ><p>No</p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Processor</strong></p></td><td  ><p>a11 AI Processor 4K Gen3</p></td><td  ><p>TSR AI Pro Processor</p></td></tr></tbody></table></div><p>Let's start with size availability between the C6 and QM8L. The QM8L is available in all of the most-popular sizes for an LED TV <em>except</em> 55 inches. We've tested the 75-inch version of the QM8L, and the smallest size in the series is 65 inches.</p><p>The C6 is also<em> </em>available in 77- and 83-inch versions, but these sizes are classified as an altogether different model: the LG C6H. If you want a 77- or 83-inch C6, you're technically buying the C6H OLED. </p><p>We should point out here that, while haven't tested the C6H in our labs yet, LG promises better performance on these sets as they're equipped with LG Display's newest RGB Tandem OLED. The 42- to 65-inch versions of the C6, on the other hand, leverage a standard WOLED display. That's not such a bad thing, as the numbers below will prove to you, but it's worth knowing what you're paying for.</p><p>Both TVs support Dolby Vision, but the QM8L also supports the royalty-free version of Dolby Vision, HDR10+. Of the two, Dolby Vision remains the most popular among streaming platforms and physical media.</p><p>Like all LG OLEDs, the C6 does not support ATSC 3.0 support. The QM8L does. This feature allows over-the-air broadcasts to be piped-in at native 4K resolution via antenna. 4K, over-the-air broadcasts are still few and far between, but for folks who watch TV via antenna, ATSC 3.0 is a very nice feature to have.</p><p>Both sets serve up four HDMI 2.1-compatible inputs and support 4K gaming at 120Hz. With a gaming PC linked up, 4K games can be pushed up to 165Hz on the C6 and 144Hz on the QM8L.</p><p><em><strong>Winner: </strong></em><em>LG C6</em></p><h2 id="lg-c6-vs-tcl-qm8l-design">LG C6 vs TCL QM8L: design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1794px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="4hk6YBsm54ZTtJ2tU5FFSi" name="LG-C6--9" alt="LG C6 OLED TV shown on a wood table" src="https://cdn.mos.cms.futurecdn.net/4hk6YBsm54ZTtJ2tU5FFSi.jpg" mos="" align="middle" fullscreen="" width="1794" height="1009" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The C6 (seen above) follows the design approach of its predecessor, the <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c5-oled-tv-review">LG C5</a>. Its wedge-shaped stand attaches itself to the TV's chassis, and the stand's shape keeps the C6's screen relatively close to its surface. It's an elegant look, but you folks with tall soundbars should make sure that there's enough clearance. (I also appreciate the marble-like finish on the back of the panel even though it's less likely to be seen.)</p><p>Thanks to the nifty, narrow nature of OLED displays, the C6's panel is super-thin across most of its form. Its chassis bulges out around the panel's midsection, but even with this compartment, the C6 is a slim customer.</p><p>The C6 arrives with the newest version of LG's Magic Remote, which can be used to point and click at the screen. The remote also comes with a directional pad and scrolling wheel if you decide to forgo its Wiimote-like functionality.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="d8mR67WQMwWr25Zdb7Um9h" name="TCL-75QM8L-TV-15" alt="The back of a TCL QM8L TV" src="https://cdn.mos.cms.futurecdn.net/d8mR67WQMwWr25Zdb7Um9h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>While the C6 is a wafer-thin screen with a modest chassis attached to it, the QM8L (seen above) is more along the lines of a heavy, thick slab. TCL's latest take on a Mini-LED display leads to a beefier panel than what we typically see on QLED TVs.</p><p>I wouldn't call the QM8L's look distracting, but for folks after a TV that quietly blends in with its surroundings will almost certainly appreciate the look and feel of the C6 more. Though, for what it's worth, I find the crosshatched etching on the back of the QM8L to be a nice touch.</p><p>Unlike the C6's motion-activated remote, the QM8L arrives with a slim, standard remote with a sensible selection of buttons on its face. I prefer the QM8L's backlit buttons over the C6's motion controls, but your mileage may vary.</p><p>Both sets feature thoughtful designs. But as much as I appreciate a backlit remote control, the LG C6 strikes a better pose.</p><p><em><strong>Winner:</strong></em><em> LG C6</em></p><h2 id="lg-c6-vs-tcl-qm8l-performance">LG C6 vs TCL QM8L: performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="ocZjqjYRGHtmAdkWGHbsVc" name="TCL-75QM8L-TV-2" alt="A 75-inch TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/ocZjqjYRGHtmAdkWGHbsVc.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Before we dive into which of these TVs is the better performer, let's compare their test results. (Both TVs were in their respective Filmmaker picture modes when these tests were taken.)</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>LG C6</strong></p></th><th  ><p><strong>TCL QM8L</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>SDR Brightness (10%, in nits)    </strong></p></td><td  ><p>355</p></td><td  ><p>229</p></td></tr><tr><td class="firstcol " ><p><strong>Delta-E (lower is better)    </strong></p></td><td  ><p>1.5</p></td><td  ><p>3.7</p></td></tr><tr><td class="firstcol " ><p><strong>HDR Brightness (10%, in nits)    </strong></p></td><td  ><p>1,355</p></td><td  ><p>3,719</p></td></tr><tr><td class="firstcol " ><p><strong>UHDA-P3 Gamut Coverage    </strong></p></td><td  ><p>99.77%</p></td><td  ><p>97.97%</p></td></tr><tr><td class="firstcol " ><p><strong>Rec.2020 Gamut Coverage    </strong></p></td><td  ><p>75.92%</p></td><td  ><p>90.34% </p></td></tr><tr><td class="firstcol " ><p><strong>Input latency (milliseconds)   </strong></p></td><td  ><p>9.1</p></td><td  ><p>9.5</p></td></tr></tbody></table></div><p>There's a lot to unpack here. The first thing that ought to jump out at you is brightness. Despite offering slightly brighter highlights during SDR content, the C6 is nowhere near as bright as the QM8L. In fact, during regular, everyday content, the QM8L's average picture brightness (that is, the luminance of the entire picture) is much higher than that of the C6.</p><p>During HDR content, the QM8L delivers intense, room-filling brightness, too. Specular highlights (like a glint of sunlight reflecting off a sword) are nearly three times brighter on the QM8L than the C6.</p><p>The advantages associated with added brightness carry over into the QM8L's color performance. Thanks to TCL's SQD technology (a new spin on quantum-dot color), the QM8L covers a whopping 90% of the BT.2020 color space. Were you to view the C6 and the QM8L side by side, there's a good chance you'd notice the latter's punchier color first.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="jg7j6rWsv5fcAUR3h2qbTi" name="LG-C6--2" alt="LG C6 OLED TV shown on a wood table" src="https://cdn.mos.cms.futurecdn.net/jg7j6rWsv5fcAUR3h2qbTi.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div><blockquote><p>There's a very good argument to be made that the C6 is the better-performing TV.</p></blockquote></div><p>This all points in one direction: From a purely performance-related standpoint, the QM8L is an all-around better choice for people with sun-soaked living spaces, or for folks who just want their next TV to provide a bright and bold cinematic picture.</p><p>But there's a very good argument to be made that the C6 is the better-performing TV. Its OLED-driven picture results in perfect black levels and pixel-level dimming. Despite its lower brightness ceiling and relatively limited color palette compared to the QM8L, the advantages of OLED display technology are massive.</p><p>Since specular highlights can be controlled with razor-like precision, HDR highlights on the C6 tend to stand out more. This allows for a deeper, detail-rich picture — a presentation that, at times, looks more realistic.</p><p>In addition, in its most-accurate picture mode, the C6 is much more dialed-in in its out-of-the-box state. You can see this in our test results, as the C6's Delta-E (a figure that describes color error) is lower than the QM8L's.</p><p>The ever-important performance category is a draw. The QM8L is a brighter, more-colorful TV that will stand up better during daytime viewing, but the C6 is a much better option for A/V enthusiasts who value reference accuracy.</p><p><em><strong>Winner:</strong></em><em> Draw</em></p><h2 id="lg-c6-vs-tcl-qm8l-smart-platform-and-features">LG C6 vs TCL QM8L: smart platform and features</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1805px;"><p class="vanilla-image-block" style="padding-top:56.18%;"><img id="sdYXGmHMCP7u9WFkt43kRi" name="LG-C6--8" alt="LG C6 OLED TV shown on a wood table" src="https://cdn.mos.cms.futurecdn.net/sdYXGmHMCP7u9WFkt43kRi.jpg" mos="" align="middle" fullscreen="" width="1805" height="1014" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The C6 arrives with the newest version of LG's webOS right out of the box. It's a similar experience to last year's version of webOS, but LG has also added some new, AI-based features this year. Unfortunately, my colleague Dylan Haas referred to them as "meaningless" if you don't already incorporate AI into your daily life (and I'm inclined to agree).</p><p>As far as smart platform software goes, LG's webOS isn't my first choice. I find its interface to be cluttered and navigation to slow down occasionally. That said, most users will see no problem using it as their daily driver, should they decide to forgo a dedicated streaming device.</p><p>You're getting a full spread of HDMI 2.1-compatible inputs on both TVs, which is good news for dedicated gamers. On LG's side, the C6 arrives with almost every gaming-related feature under the sun, including support for 4K gaming at 120Hz (and up to 165Hz), Variable Refresh Rate (VRR) and AMD FreeSync Premium.</p><p>One of its best gaming-related features is the inclusion of LG's Game Optimizer mode. This dedicated gaming menu puts all of your most-important settings all in one place, and it automatically appears when accessing the primary settings menu during gameplay.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="rKFT26Nuo5fc4ycgaECXPc" name="TCL-75QM8L-TV-13" alt="A 75-inch TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/rKFT26Nuo5fc4ycgaECXPc.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The TCL QM8L is built around the Google TV smart platform. Pound for pound, I prefer Google TV over LG's webOS software suite, as its interface is easier to navigate. Along with Roku, Google TV is one of my top picks for built-in streaming.</p><p>For gaming, the QM8L is loaded with upside, though it's not quite as complete an experience as the C6. It, too, arrives with VRR, FreeSync Premium Pro and support for 4K gaming at 120Hz, but while the C6 stretches all the way up to 165Hz during PC gaming, the QM8L tops out at 144Hz. Fortunately, this will only be relevant for a small slice of shoppers.</p><p>Having used it for a while, I can say that LG's Game Optimizer mode is quite nice to have in one's back pocket. The C6 has the edge here, but if you're not a gamer, there's a higher likelihood that the QM8L's inclusion of Google TV will be better for you in the long run than the C6's reliance on webOS.</p><p><em><strong>Winner:  </strong></em><em>LG C6</em></p><h2 id="lg-c6-vs-tcl-qm8l-outlook">LG C6 vs TCL QM8L: outlook</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>LG C6</p></th><th  ><p>TCL QM8L</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Specs (25)</strong></p></td><td  ><p>24</p></td><td  ><p>23</p></td></tr><tr><td class="firstcol " ><p><strong>Design (25)</strong></p></td><td  ><p>23</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Performance (25)</strong></p></td><td  ><p>23</p></td><td  ><p>23</p></td></tr><tr><td class="firstcol " ><p><strong>Features (25)</strong></p></td><td  ><p>24</p></td><td  ><p>23</p></td></tr><tr><td class="firstcol " ><p><strong>Total Score (100)</strong></p></td><td  ><p><strong>94</strong></p></td><td  ><p><strong>91</strong></p></td></tr></tbody></table></div><p>Setting aside price, the C6 is an all-around better choice for home theater enthusiasts, picture purists and gamers. It's not as bright as the QM8L (nor as colorful), but if your goal is to splash out on an impressive, <em>accurate</em> picture, the C6 is the superior pick. (And, while we've yet to test this, I suspect that the above is especially true for the 77- and 83-inch versions of the C6H, which purportedly offers better brightness and color.)</p><p>The QM8L is a safer pick for people who watch a ton of TV during the day, or for folks who just want a bright, visually arresting picture when the lights are off. As a Mini-LED TV, its ability to control contrast isn't nearly as impressive as the C6, though it <em>is</em> packed with nearly the same set of gaming features.</p><p>If you still can't choose between the two, perhaps you'll be swayed by their respective price tags. Today, you can spring for a <a href="https://www.amazon.com/LG-Upscaling-Filmmaker-Compatible-OLED65C6PUA/dp/B0GRK5D3RW/" target="_blank" rel="nofollow">65-inch C6 for $2,699 on Amazon</a>.  The <a href="https://www.amazon.com/LG-Upscaling-Filmmaker-Compatible-OLED55C6PUA/dp/B0GS4231WF/" target="_blank" rel="nofollow">55-inch LG C6 can be had for $1,999</a>.</p><p>The QM8L just launched at $2,499 for a 65-inch version, but it didn't take long to go on sale. Right now, you can get the <a href="https://www.bestbuy.com/product/tcl-65-class-qm8l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH359" target="_blank" rel="nofollow">65-inch TCL QM8L for $1,799 at Best Buy</a>. The <a href="https://www.bestbuy.com/product/tcl-75-class-qm8l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH3FX" target="_blank" rel="nofollow">75-inch QM8L is just $1,999 at Best Buy</a> at the time of publishing — the same price as the 55-inch C6.</p><p>In the coming months, both TVs will likely drop in price. For a brighter, more-affordable experience, the QM8L will remain the better option. For a more precise picture with better gaming features, the C6 will continue to be the way to go.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c6-oled-review">LG C6 OLED review</a></li><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L TV review: SQD-Mini LED delivers big color, high brightness</a></li><li><a href="https://www.tomsguide.com/tvs/the-ram-crisis-came-for-computers-first-and-now-its-coming-for-tvs-heres-why-i-recommend-upgrading-while-you-still-can">The RAM crisis came for computers first and now it's coming for TVs — here's why I recommend upgrading while you still can</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/lg-c6-vs-tcl-qm8l-should-you-buy-the-oled-or-sqd-tv</link>
                                                                            <description>
                            <![CDATA[ The LG C6 OLED and the TCL QM8L SQD Mini-LED TVs are both premium, high-performing TVs new for 2026. Here's how they compare — from performance to features and price. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">s26T9yHKENznoDXiN7z5F</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/CitophfLkpujXBoLMrzYui-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 30 Apr 2026 05:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/CitophfLkpujXBoLMrzYui-1280-80.jpg">
                                                            <media:credit><![CDATA[LG / TCL]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The LG C6 OLED and the TCL QM8L SQD Mini-LED TV in a side-by-side composite]]></media:description>                                                            <media:text><![CDATA[The LG C6 OLED and the TCL QM8L SQD Mini-LED TV in a side-by-side composite]]></media:text>
                                <media:title type="plain"><![CDATA[The LG C6 OLED and the TCL QM8L SQD Mini-LED TV in a side-by-side composite]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/CitophfLkpujXBoLMrzYui-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c6-oled-review">C6 OLED </a>is LG's newest, mid-range OLED for 2026. It's the latest in a long line of massively popular, award-winning OLEDs that sit in the sweet spot between value-forward pricing and incredible performance.</p><p>The <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L</a> is also a brand-new TV, but it leverages a new type of Mini-LED display that TCL is calling Super Quantum Dot (SQD). It recently launched for a relatively high price tag, but you can already find it on sale for a lower price than the LG C6.</p>        <div class="featured_product_block featured_block_versus" data-id="6e4f4178-db48-4095-a276-0af35096717b">            <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c6-oled-review" data-model-name="LG C6 OLED TV,LG C6 65-inch OLED TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/yZJJv6Rpskz5oXrVozrW7o.jpg" alt="The LG C6 OLED TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">LG C6</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="90" /></span></div>                                        <p><p>The LG C6 delivers an excellent blend of performance and value. That said, it's an incremental upgrade over its predecessor, and the TCL QM8L is a better fit for bright-room viewing.</p></p>                </div>                            </div>        </div><p>If you're looking to upgrade your TV this year and you've got an eye for premium performance, there's a good chance you'll be choosing between these two sets. Here's how the C6 and QM8L compare — from performance to features and price.</p>        <div class="featured_product_block featured_block_versus" data-id="27c98386-334a-46f4-9d66-2e8abb5a5403">            <a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review" data-model-name="TCL 75QM8L SQD-Mini LED" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/y6zxm2KoohC6JFqu4fBaof.jpg" alt="The TCL QM8L SQD Mini-LED TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL QM8L</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="80" /></span></div>                                        <p><p>The QM8L is brighter and more colorful than the LG C5, but its presentation isn't as accurate as LG's mid-range OLED. Right now, the QM8L is more affordable than the C5 in many sizes, as both models are new for 2026.</p></p>                </div>                            </div>        </div><h2 id="lg-c6-vs-tcl-qm8l-specs-compared">LG C6 vs TCL QM8L: specs compared</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>LG C6</p></th><th  ><p>TCL QM8L</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Sizes</strong></p></td><td  ><p>42", 48", 55", 65"</p></td><td  ><p>65", 75", 85", 98"</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>4x HDMI 2.1</p></td><td  ><p>4x HDMI 2.1</p></td></tr><tr><td class="firstcol " ><p><strong>Resolution</strong></p></td><td  ><p>3,840 x 2,160p</p></td><td  ><p>3,840 x 2,160p</p></td></tr><tr><td class="firstcol " ><p><strong>Refresh rate</strong></p></td><td  ><p>165Hz</p></td><td  ><p>144Hz</p></td></tr><tr><td class="firstcol " ><p><strong>HDR</strong></p></td><td  ><p>Dolby Vision, HDR10, HLG</p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td></tr><tr><td class="firstcol " ><p><strong>Smart TV software</strong></p></td><td  ><p>webOS 26</p></td><td  ><p>Google TV</p></td></tr><tr><td class="firstcol " ><p><strong>ATSC 3.0 support?</strong></p></td><td  ><p>No</p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Processor</strong></p></td><td  ><p>a11 AI Processor 4K Gen3</p></td><td  ><p>TSR AI Pro Processor</p></td></tr></tbody></table></div><p>Let's start with size availability between the C6 and QM8L. The QM8L is available in all of the most-popular sizes for an LED TV <em>except</em> 55 inches. We've tested the 75-inch version of the QM8L, and the smallest size in the series is 65 inches.</p><p>The C6 is also<em> </em>available in 77- and 83-inch versions, but these sizes are classified as an altogether different model: the LG C6H. If you want a 77- or 83-inch C6, you're technically buying the C6H OLED. </p><p>We should point out here that, while haven't tested the C6H in our labs yet, LG promises better performance on these sets as they're equipped with LG Display's newest RGB Tandem OLED. The 42- to 65-inch versions of the C6, on the other hand, leverage a standard WOLED display. That's not such a bad thing, as the numbers below will prove to you, but it's worth knowing what you're paying for.</p><p>Both TVs support Dolby Vision, but the QM8L also supports the royalty-free version of Dolby Vision, HDR10+. Of the two, Dolby Vision remains the most popular among streaming platforms and physical media.</p><p>Like all LG OLEDs, the C6 does not support ATSC 3.0 support. The QM8L does. This feature allows over-the-air broadcasts to be piped-in at native 4K resolution via antenna. 4K, over-the-air broadcasts are still few and far between, but for folks who watch TV via antenna, ATSC 3.0 is a very nice feature to have.</p><p>Both sets serve up four HDMI 2.1-compatible inputs and support 4K gaming at 120Hz. With a gaming PC linked up, 4K games can be pushed up to 165Hz on the C6 and 144Hz on the QM8L.</p><p><em><strong>Winner: </strong></em><em>LG C6</em></p><h2 id="lg-c6-vs-tcl-qm8l-design">LG C6 vs TCL QM8L: design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1794px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="4hk6YBsm54ZTtJ2tU5FFSi" name="LG-C6--9" alt="LG C6 OLED TV shown on a wood table" src="https://cdn.mos.cms.futurecdn.net/4hk6YBsm54ZTtJ2tU5FFSi.jpg" mos="" align="middle" fullscreen="" width="1794" height="1009" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The C6 (seen above) follows the design approach of its predecessor, the <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c5-oled-tv-review">LG C5</a>. Its wedge-shaped stand attaches itself to the TV's chassis, and the stand's shape keeps the C6's screen relatively close to its surface. It's an elegant look, but you folks with tall soundbars should make sure that there's enough clearance. (I also appreciate the marble-like finish on the back of the panel even though it's less likely to be seen.)</p><p>Thanks to the nifty, narrow nature of OLED displays, the C6's panel is super-thin across most of its form. Its chassis bulges out around the panel's midsection, but even with this compartment, the C6 is a slim customer.</p><p>The C6 arrives with the newest version of LG's Magic Remote, which can be used to point and click at the screen. The remote also comes with a directional pad and scrolling wheel if you decide to forgo its Wiimote-like functionality.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="d8mR67WQMwWr25Zdb7Um9h" name="TCL-75QM8L-TV-15" alt="The back of a TCL QM8L TV" src="https://cdn.mos.cms.futurecdn.net/d8mR67WQMwWr25Zdb7Um9h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>While the C6 is a wafer-thin screen with a modest chassis attached to it, the QM8L (seen above) is more along the lines of a heavy, thick slab. TCL's latest take on a Mini-LED display leads to a beefier panel than what we typically see on QLED TVs.</p><p>I wouldn't call the QM8L's look distracting, but for folks after a TV that quietly blends in with its surroundings will almost certainly appreciate the look and feel of the C6 more. Though, for what it's worth, I find the crosshatched etching on the back of the QM8L to be a nice touch.</p><p>Unlike the C6's motion-activated remote, the QM8L arrives with a slim, standard remote with a sensible selection of buttons on its face. I prefer the QM8L's backlit buttons over the C6's motion controls, but your mileage may vary.</p><p>Both sets feature thoughtful designs. But as much as I appreciate a backlit remote control, the LG C6 strikes a better pose.</p><p><em><strong>Winner:</strong></em><em> LG C6</em></p><h2 id="lg-c6-vs-tcl-qm8l-performance">LG C6 vs TCL QM8L: performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="ocZjqjYRGHtmAdkWGHbsVc" name="TCL-75QM8L-TV-2" alt="A 75-inch TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/ocZjqjYRGHtmAdkWGHbsVc.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Before we dive into which of these TVs is the better performer, let's compare their test results. (Both TVs were in their respective Filmmaker picture modes when these tests were taken.)</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>LG C6</strong></p></th><th  ><p><strong>TCL QM8L</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>SDR Brightness (10%, in nits)    </strong></p></td><td  ><p>355</p></td><td  ><p>229</p></td></tr><tr><td class="firstcol " ><p><strong>Delta-E (lower is better)    </strong></p></td><td  ><p>1.5</p></td><td  ><p>3.7</p></td></tr><tr><td class="firstcol " ><p><strong>HDR Brightness (10%, in nits)    </strong></p></td><td  ><p>1,355</p></td><td  ><p>3,719</p></td></tr><tr><td class="firstcol " ><p><strong>UHDA-P3 Gamut Coverage    </strong></p></td><td  ><p>99.77%</p></td><td  ><p>97.97%</p></td></tr><tr><td class="firstcol " ><p><strong>Rec.2020 Gamut Coverage    </strong></p></td><td  ><p>75.92%</p></td><td  ><p>90.34% </p></td></tr><tr><td class="firstcol " ><p><strong>Input latency (milliseconds)   </strong></p></td><td  ><p>9.1</p></td><td  ><p>9.5</p></td></tr></tbody></table></div><p>There's a lot to unpack here. The first thing that ought to jump out at you is brightness. Despite offering slightly brighter highlights during SDR content, the C6 is nowhere near as bright as the QM8L. In fact, during regular, everyday content, the QM8L's average picture brightness (that is, the luminance of the entire picture) is much higher than that of the C6.</p><p>During HDR content, the QM8L delivers intense, room-filling brightness, too. Specular highlights (like a glint of sunlight reflecting off a sword) are nearly three times brighter on the QM8L than the C6.</p><p>The advantages associated with added brightness carry over into the QM8L's color performance. Thanks to TCL's SQD technology (a new spin on quantum-dot color), the QM8L covers a whopping 90% of the BT.2020 color space. Were you to view the C6 and the QM8L side by side, there's a good chance you'd notice the latter's punchier color first.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="jg7j6rWsv5fcAUR3h2qbTi" name="LG-C6--2" alt="LG C6 OLED TV shown on a wood table" src="https://cdn.mos.cms.futurecdn.net/jg7j6rWsv5fcAUR3h2qbTi.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div><blockquote><p>There's a very good argument to be made that the C6 is the better-performing TV.</p></blockquote></div><p>This all points in one direction: From a purely performance-related standpoint, the QM8L is an all-around better choice for people with sun-soaked living spaces, or for folks who just want their next TV to provide a bright and bold cinematic picture.</p><p>But there's a very good argument to be made that the C6 is the better-performing TV. Its OLED-driven picture results in perfect black levels and pixel-level dimming. Despite its lower brightness ceiling and relatively limited color palette compared to the QM8L, the advantages of OLED display technology are massive.</p><p>Since specular highlights can be controlled with razor-like precision, HDR highlights on the C6 tend to stand out more. This allows for a deeper, detail-rich picture — a presentation that, at times, looks more realistic.</p><p>In addition, in its most-accurate picture mode, the C6 is much more dialed-in in its out-of-the-box state. You can see this in our test results, as the C6's Delta-E (a figure that describes color error) is lower than the QM8L's.</p><p>The ever-important performance category is a draw. The QM8L is a brighter, more-colorful TV that will stand up better during daytime viewing, but the C6 is a much better option for A/V enthusiasts who value reference accuracy.</p><p><em><strong>Winner:</strong></em><em> Draw</em></p><h2 id="lg-c6-vs-tcl-qm8l-smart-platform-and-features">LG C6 vs TCL QM8L: smart platform and features</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1805px;"><p class="vanilla-image-block" style="padding-top:56.18%;"><img id="sdYXGmHMCP7u9WFkt43kRi" name="LG-C6--8" alt="LG C6 OLED TV shown on a wood table" src="https://cdn.mos.cms.futurecdn.net/sdYXGmHMCP7u9WFkt43kRi.jpg" mos="" align="middle" fullscreen="" width="1805" height="1014" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The C6 arrives with the newest version of LG's webOS right out of the box. It's a similar experience to last year's version of webOS, but LG has also added some new, AI-based features this year. Unfortunately, my colleague Dylan Haas referred to them as "meaningless" if you don't already incorporate AI into your daily life (and I'm inclined to agree).</p><p>As far as smart platform software goes, LG's webOS isn't my first choice. I find its interface to be cluttered and navigation to slow down occasionally. That said, most users will see no problem using it as their daily driver, should they decide to forgo a dedicated streaming device.</p><p>You're getting a full spread of HDMI 2.1-compatible inputs on both TVs, which is good news for dedicated gamers. On LG's side, the C6 arrives with almost every gaming-related feature under the sun, including support for 4K gaming at 120Hz (and up to 165Hz), Variable Refresh Rate (VRR) and AMD FreeSync Premium.</p><p>One of its best gaming-related features is the inclusion of LG's Game Optimizer mode. This dedicated gaming menu puts all of your most-important settings all in one place, and it automatically appears when accessing the primary settings menu during gameplay.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="rKFT26Nuo5fc4ycgaECXPc" name="TCL-75QM8L-TV-13" alt="A 75-inch TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/rKFT26Nuo5fc4ycgaECXPc.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The TCL QM8L is built around the Google TV smart platform. Pound for pound, I prefer Google TV over LG's webOS software suite, as its interface is easier to navigate. Along with Roku, Google TV is one of my top picks for built-in streaming.</p><p>For gaming, the QM8L is loaded with upside, though it's not quite as complete an experience as the C6. It, too, arrives with VRR, FreeSync Premium Pro and support for 4K gaming at 120Hz, but while the C6 stretches all the way up to 165Hz during PC gaming, the QM8L tops out at 144Hz. Fortunately, this will only be relevant for a small slice of shoppers.</p><p>Having used it for a while, I can say that LG's Game Optimizer mode is quite nice to have in one's back pocket. The C6 has the edge here, but if you're not a gamer, there's a higher likelihood that the QM8L's inclusion of Google TV will be better for you in the long run than the C6's reliance on webOS.</p><p><em><strong>Winner:  </strong></em><em>LG C6</em></p><h2 id="lg-c6-vs-tcl-qm8l-outlook">LG C6 vs TCL QM8L: outlook</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>LG C6</p></th><th  ><p>TCL QM8L</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Specs (25)</strong></p></td><td  ><p>24</p></td><td  ><p>23</p></td></tr><tr><td class="firstcol " ><p><strong>Design (25)</strong></p></td><td  ><p>23</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Performance (25)</strong></p></td><td  ><p>23</p></td><td  ><p>23</p></td></tr><tr><td class="firstcol " ><p><strong>Features (25)</strong></p></td><td  ><p>24</p></td><td  ><p>23</p></td></tr><tr><td class="firstcol " ><p><strong>Total Score (100)</strong></p></td><td  ><p><strong>94</strong></p></td><td  ><p><strong>91</strong></p></td></tr></tbody></table></div><p>Setting aside price, the C6 is an all-around better choice for home theater enthusiasts, picture purists and gamers. It's not as bright as the QM8L (nor as colorful), but if your goal is to splash out on an impressive, <em>accurate</em> picture, the C6 is the superior pick. (And, while we've yet to test this, I suspect that the above is especially true for the 77- and 83-inch versions of the C6H, which purportedly offers better brightness and color.)</p><p>The QM8L is a safer pick for people who watch a ton of TV during the day, or for folks who just want a bright, visually arresting picture when the lights are off. As a Mini-LED TV, its ability to control contrast isn't nearly as impressive as the C6, though it <em>is</em> packed with nearly the same set of gaming features.</p><p>If you still can't choose between the two, perhaps you'll be swayed by their respective price tags. Today, you can spring for a <a href="https://www.amazon.com/LG-Upscaling-Filmmaker-Compatible-OLED65C6PUA/dp/B0GRK5D3RW/" target="_blank" rel="nofollow">65-inch C6 for $2,699 on Amazon</a>.  The <a href="https://www.amazon.com/LG-Upscaling-Filmmaker-Compatible-OLED55C6PUA/dp/B0GS4231WF/" target="_blank" rel="nofollow">55-inch LG C6 can be had for $1,999</a>.</p><p>The QM8L just launched at $2,499 for a 65-inch version, but it didn't take long to go on sale. Right now, you can get the <a href="https://www.bestbuy.com/product/tcl-65-class-qm8l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH359" target="_blank" rel="nofollow">65-inch TCL QM8L for $1,799 at Best Buy</a>. The <a href="https://www.bestbuy.com/product/tcl-75-class-qm8l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH3FX" target="_blank" rel="nofollow">75-inch QM8L is just $1,999 at Best Buy</a> at the time of publishing — the same price as the 55-inch C6.</p><p>In the coming months, both TVs will likely drop in price. For a brighter, more-affordable experience, the QM8L will remain the better option. For a more precise picture with better gaming features, the C6 will continue to be the way to go.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c6-oled-review">LG C6 OLED review</a></li><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review">TCL QM8L TV review: SQD-Mini LED delivers big color, high brightness</a></li><li><a href="https://www.tomsguide.com/tvs/the-ram-crisis-came-for-computers-first-and-now-its-coming-for-tvs-heres-why-i-recommend-upgrading-while-you-still-can">The RAM crisis came for computers first and now it's coming for TVs — here's why I recommend upgrading while you still can</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I’ve tested TVs for over a decade — this is one of the only 75-inch TVs under $600 I would actually buy ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Everyone wants to save money, but nobody wants to buy something that ends up being <em>too </em>cheap. This is especially true when it comes to TVs, as ultra-affordable sets often come with such poor performance that they don't even seem worth the sale price.</p><p>This is why I recommend shopping strategically — especially when shopping for a big screen. Need an example? The <a href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46" target="_blank" rel="nofollow">75-inch TCL QM5K is just $549 at Best Buy</a> right now. This TV already represented one of the most affordable ways to lock down Mini-LED backlighting in an extra-large size point, but this deal catapults it near the top of my list of best TV deals of the year.</p><div class="product"><a data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label="75" QM5K Mini-LED TV" data-dimension48="75" QM5K Mini-LED TV" data-dimension25="$549" href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="rRdoCj55QhqPM9wqYhpprE" name="TCL-QM5K-Mini-LED-TV-1-by-1-Deals-Block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/rRdoCj55QhqPM9wqYhpprE.jpg" mos="" align="middle" fullscreen="" width="2000" height="2000" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46" target="_blank" rel="nofollow" data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label='75" QM5K Mini-LED TV' data-dimension48='75" QM5K Mini-LED TV' data-dimension25="$549">75" QM5K Mini-LED TV: was $1199 now $549</a></strong><br>The QM5K arrives with built-in Google TV features for all of your streaming needs, plus Dolby Vision support. Its handiest feature is its Mini-LED backlighting, which is tough to find at this price point. If you're going to shop for a big-screen TV in an affordable price range, this ought to be at the top of your list of candidates.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46" target="_blank" rel="nofollow" data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label="75" QM5K Mini-LED TV" data-dimension48="75" QM5K Mini-LED TV" data-dimension25="$549">View Deal</a></p></div><p>What sets the QM5K apart from other affordable options? Its nifty display hardware. Take it from someone who's been testing and reviewing TVs for over a decade: If you're planning on putting a 75-inch screen in your home, you absolutely want Mini-LED backlighting instead of direct- or edge-lit LEDs.</p><p>Although the QM5K's array of Mini-LEDs isn't as advanced as what you'll find on higher-end Mini-LED TVs, it still makes a noticeable difference. Compared to garden-variety LEDs, Mini-LEDs typically result in better contrast and higher overall brightness. </p><p>75-inch TVs don't go on sale for $549 very often, and 75-inch <em>Mini-LED TVs </em>very rarely get this cheap. This is one of the reasons why I've been recommending this TV to people who want to save money, but who also want to avoid buying a so-so model.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="vCnRGsdCB3mnCFg3YgsEfh" name="TCL-QM5K-Mini-LED-TV-Google-TV-Home-Screen" alt="The TCL QM5K Mini-LED TV displaying the Google TV home screen" src="https://cdn.mos.cms.futurecdn.net/vCnRGsdCB3mnCFg3YgsEfh.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>The QM5K is also ready to take on your daily streaming duties, since it comes with the Google TV software suite built right in. Along with Roku, Google TV is one of my preferred smart platforms right now. It offers a relatively easy experience (thanks to a straightforward interface) as well as a ton of downloadable apps.</p><p>Having a reliable, built-in smart platform is especially important for the QM5K, too, because it's only equipped with three HDMI ports. With a reliable platform in tow, you won't have to burn one of these ports on a dedicated streaming device.</p><p>If you're trying to save money on a new, big-screen TV but don't want to get stuck with a lousy set, I recommend that you avoid scraping the bottom of the barrel for one that doesn't offer Mini-LED backlighting. The QM5K won't blow you away, but it's better than most of the alternatives under $600.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/sony-just-handed-its-tv-business-to-tcl-heres-what-it-means-for-you">Sony just handed its TV business to TCL — here’s what it means for you</a></li><li><a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">I tested TCL’s $8,000 SQD Mini-LED TV — here's my verdict</a></li><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-finally-added-this-key-feature-to-its-2025-tvs-heres-why-you-should-use-it">TCL finally added this key feature to its 2025 TVs — here's why you should use it</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/qled-tvs/dont-settle-for-a-cheap-75-inch-tv-that-stinks-this-one-is-usd549-right-now-and-i-actually-recommend-it</link>
                                                                            <description>
                            <![CDATA[ This is one of the best 75-inch 4K TV deals you can get right now. The QM5K comes with Mini-LED backlighting and built-in Google TV for easy streaming. Right now, it's down to $549 at Best Buy. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ggqseUpur2rah9TWA8kSyj</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/SRpjfVoeXivTaWPUeCZ46g-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 27 Apr 2026 16:50:03 +0000</pubDate>                                                                                                                                <updated>Tue, 28 Apr 2026 14:04:18 +0000</updated>
                                                                                                                                            <category><![CDATA[QLED TVs]]></category>
                                                    <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/SRpjfVoeXivTaWPUeCZ46g-1280-80.jpg">
                                                            <media:credit><![CDATA[Best Buy edited with Gemini]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[TCL QM5K 4K TV]]></media:description>                                                            <media:text><![CDATA[TCL QM5K 4K TV]]></media:text>
                                <media:title type="plain"><![CDATA[TCL QM5K 4K TV]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/SRpjfVoeXivTaWPUeCZ46g-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Everyone wants to save money, but nobody wants to buy something that ends up being <em>too </em>cheap. This is especially true when it comes to TVs, as ultra-affordable sets often come with such poor performance that they don't even seem worth the sale price.</p><p>This is why I recommend shopping strategically — especially when shopping for a big screen. Need an example? The <a href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46" target="_blank" rel="nofollow">75-inch TCL QM5K is just $549 at Best Buy</a> right now. This TV already represented one of the most affordable ways to lock down Mini-LED backlighting in an extra-large size point, but this deal catapults it near the top of my list of best TV deals of the year.</p><div class="product"><a data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label="75" QM5K Mini-LED TV" data-dimension48="75" QM5K Mini-LED TV" data-dimension25="$549" href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="rRdoCj55QhqPM9wqYhpprE" name="TCL-QM5K-Mini-LED-TV-1-by-1-Deals-Block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/rRdoCj55QhqPM9wqYhpprE.jpg" mos="" align="middle" fullscreen="" width="2000" height="2000" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46" target="_blank" rel="nofollow" data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label='75" QM5K Mini-LED TV' data-dimension48='75" QM5K Mini-LED TV' data-dimension25="$549">75" QM5K Mini-LED TV: was $1199 now $549</a></strong><br>The QM5K arrives with built-in Google TV features for all of your streaming needs, plus Dolby Vision support. Its handiest feature is its Mini-LED backlighting, which is tough to find at this price point. If you're going to shop for a big-screen TV in an affordable price range, this ought to be at the top of your list of candidates.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46" target="_blank" rel="nofollow" data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label="75" QM5K Mini-LED TV" data-dimension48="75" QM5K Mini-LED TV" data-dimension25="$549">View Deal</a></p></div><p>What sets the QM5K apart from other affordable options? Its nifty display hardware. Take it from someone who's been testing and reviewing TVs for over a decade: If you're planning on putting a 75-inch screen in your home, you absolutely want Mini-LED backlighting instead of direct- or edge-lit LEDs.</p><p>Although the QM5K's array of Mini-LEDs isn't as advanced as what you'll find on higher-end Mini-LED TVs, it still makes a noticeable difference. Compared to garden-variety LEDs, Mini-LEDs typically result in better contrast and higher overall brightness. </p><p>75-inch TVs don't go on sale for $549 very often, and 75-inch <em>Mini-LED TVs </em>very rarely get this cheap. This is one of the reasons why I've been recommending this TV to people who want to save money, but who also want to avoid buying a so-so model.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="vCnRGsdCB3mnCFg3YgsEfh" name="TCL-QM5K-Mini-LED-TV-Google-TV-Home-Screen" alt="The TCL QM5K Mini-LED TV displaying the Google TV home screen" src="https://cdn.mos.cms.futurecdn.net/vCnRGsdCB3mnCFg3YgsEfh.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>The QM5K is also ready to take on your daily streaming duties, since it comes with the Google TV software suite built right in. Along with Roku, Google TV is one of my preferred smart platforms right now. It offers a relatively easy experience (thanks to a straightforward interface) as well as a ton of downloadable apps.</p><p>Having a reliable, built-in smart platform is especially important for the QM5K, too, because it's only equipped with three HDMI ports. With a reliable platform in tow, you won't have to burn one of these ports on a dedicated streaming device.</p><p>If you're trying to save money on a new, big-screen TV but don't want to get stuck with a lousy set, I recommend that you avoid scraping the bottom of the barrel for one that doesn't offer Mini-LED backlighting. The QM5K won't blow you away, but it's better than most of the alternatives under $600.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/sony-just-handed-its-tv-business-to-tcl-heres-what-it-means-for-you">Sony just handed its TV business to TCL — here’s what it means for you</a></li><li><a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">I tested TCL’s $8,000 SQD Mini-LED TV — here's my verdict</a></li><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-finally-added-this-key-feature-to-its-2025-tvs-heres-why-you-should-use-it">TCL finally added this key feature to its 2025 TVs — here's why you should use it</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ TCL X11L vs TCL QM9K: Which top-shelf Mini-LED TV is best? ]]></title>
                                                                                                <dc:content><![CDATA[         <div class="featured_product_block featured_block_versus" data-id="6e4f4178-db48-4095-a276-0af35096717b">            <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review" data-model-name="TCL X11L 4K SQD Mini LED TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/viSrbyMKKroPjkqrdBfspf.jpg" alt="The TCL X11L SQD Mini-LED TV displaying a colorful, abstract picture"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL X11L</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="90" /></span></div>                                        <p><p>Thanks to an all-new spin on quantum-dot technology, the TCL X11L delivers some of the best (and brightest) performance we've ever seen on a Mini-LED TV. That said, it's <em>much</em> pricier than last-year's QM9K, and the marginal difference in performance might not be enough for most people to justify the price jump.</p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_versus" data-id="27c98386-334a-46f4-9d66-2e8abb5a5403">            <a href="https://www.tomsguide.com/tvs/tcl-qm9k-mini-led-tv-review" data-model-name="TCL QM9K QD-Mini LED 4K TV (2025)" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:60.13%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/mYhyRwenBUQFzbHyJxCpzh.jpg" alt="The TCL QM9K on a white background."></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL QM9K</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="80" /></span></div>                                        <p><p>The QM9K is one of TCL's last top-shelf TVs to feature a traditional blend of quantum-dot color and Mini-LED backlighting, so it's not as colorful as the Super Quantum Dot-equipped X11L. Nevertheless, it's an order of magnitude cheaper, making it a better buy for most people.</p></p>                </div>                            </div>        </div><p>TCL, makers of a wide range of QLEDs and Mini-LED TVs, is offering an impressive slate of top-shelf options in 2026. As is the case with every major TV brand, the <a href="https://www.tomsguide.com/best-picks/best-tcl-tvs">best TCL TVs</a> you can buy right now are a blend of last-year's top TVs and the newest high-end models.</p><p>The <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">TCL X11L</a> is the brand's most-premium offering in 2026; the <a href="https://www.tomsguide.com/tvs/tcl-qm9k-mini-led-tv-review">TCL QM9K</a>, on the other hand, is the top-performing TCL TV from 2025. Right now, they occupy the same shelf space.</p><p>Both sets leverage Mini-LED backlighting for a bright, punchy picture. But these two TCL TVs diverge when it comes to performance, features and price. Here's what you need to know before shopping.</p><h2 id="tcl-x11l-vs-tcl-qm9k-specs-compared">TCL X11L vs TCL QM9K: specs compared</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL X11L</p></th><th  ><p>TCL QM9K</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Sizes</strong></p></td><td  ><p>75", 85", 98"</p></td><td  ><p>65", 75", 85", 98"</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>4x HDMI 2.1</p></td><td  ><p>2x HDMI 2.1, 2x HDMI 2.0</p></td></tr><tr><td class="firstcol " ><p><strong>Resolution</strong></p></td><td  ><p>3,840 x 2,160p</p></td><td  ><p>3,840 x 2,160p</p></td></tr><tr><td class="firstcol " ><p><strong>Refresh rate</strong></p></td><td  ><p>144Hz</p></td><td  ><p>144Hz</p></td></tr><tr><td class="firstcol " ><p><strong>HDR</strong></p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td></tr><tr><td class="firstcol " ><p><strong>Smart TV software</strong></p></td><td  ><p>Google TV</p></td><td  ><p>Google TV</p></td></tr><tr><td class="firstcol " ><p><strong>ATSC 3.0 support?</strong></p></td><td  ><p>Yes</p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Processor</strong></p></td><td  ><p>TSR AI Processor</p></td><td  ><p>TCL AIPQ Pro Processor</p></td></tr></tbody></table></div><p>These are similarly spec'd TVs, but there a few noteworthy differences to highlight here. For one thing, the QM9K is the only one to come in a 65-inch variant. The X11L starts at 75 inches. If you want a screen below the 75-inch size point, the QM9K is the set that'll get you there.</p><p>Secondly, the QM9K only offers a pair of HDMI 2.1-compatible ports — the remaining pair is limited to HDMI 2.0. The X11L, meanwhile, features HDMI 2.1 compatibility across all four of its inputs.</p><p>This distinction is especially relevant for gamers. While both sets support 4K gaming at 120Hz (and up to 144Hz with a gaming PC linked up), only the X11L supports this functionality across every single HDMI input. With the QM9K, you're limited to just two of these high-bandwidth inputs. The lesser, HDMI 2.0-based inputs are limited to 4K content at up to 60Hz.</p><p>Everything else comes out in a wash. <a href="https://www.tomsguide.com/tvs/do-you-actually-need-dolby-vision-on-your-next-tv-heres-the-answer">Dolby Vision support</a> is in represented on both of these TVs, as well as HDR10+. Additionally, both the X11L and the QM9K come with ATSC 3.0 support. This allows over-the-air broadcasts to be piped-in at native 4K resolution when available. 4K broadcasts aren't very common, but this feature is nevertheless nice to have.</p><p>That said, the addition of two extra HDMI 2.1 inputs fills out the X11L's spec sheet. It's the full package.</p><p><em><strong>Winner:</strong></em><em> TCL X11L</em></p><h2 id="tcl-x11l-vs-tcl-qm9k-design">TCL X11L vs TCL QM9K: design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fVb4gMFxwMorM3ykPuRp7W" name="TCL X11L SQD Mini-LED TV-09" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/fVb4gMFxwMorM3ykPuRp7W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The TCL X11L (seen above) is packing some heavy-duty technology (which I'll get into shortly). It's also only available in 75-, 85- and 98-inch sizes. This combination means that its overall design needs to accommodate heavy hardware across big screens.</p><p>As a result, the X11L is a bit of a <em>chonkster</em>. While its panel isn't exactly thick, the chassis connected to the bottom of the panel's backside is pretty deep for a high end Mini-LED TVs. The TV's Bang & Olufsen-branded internal speakers creates a thick band at the bottom of the screen which adds to the X11L's larger-than-life appearance.</p><p>Its beefed-up chassis sits gingerly on a pair of narrow, wide-set feet. The juxtaposition of the big, honkin' screen and the slim, scaled-down feet is eye-catching, but you'll need an extra-wide credenza or media console if you're planning on plopping down a 75- or 85-inch X11L.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="RRAFnWgTovNpkZSPRzPQR5" name="TCL QM9K--08" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/RRAFnWgTovNpkZSPRzPQR5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>By contrast, the QM9K (seen above) relies on a pedestal-style stand. The heavy, wedge-shaped piece sits below the center of the screen, and because of this placement, the QM9K doesn't need as wide of a surface to sit on.</p><p>And although the QM9K isn't quite as slim as the X11L at its narrowest point, its profile appears more svelte since it doesn't bulge out as much as the X11L.</p><p>As far as contemporary TVs go, both of these sets feature good-looking designs. However, the QM9K is undoubtedly an easier-to-manage setup due to its pedestal-style stand.</p><p><em><strong>Winner:</strong></em><em> TCL QM9K</em></p><h2 id="tcl-x11l-vs-tcl-qm9k-performance">TCL X11L vs TCL QM9K: performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1447px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="f3EFaXwbkrGmeKJDfwUmwm" name="TCL X11L SQD Mini-LED TV-LIST2" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/f3EFaXwbkrGmeKJDfwUmwm.jpg" mos="" align="middle" fullscreen="" width="1447" height="814" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Before we dive into which of these TVs is the better performer, let's compare their test results. (Both TVs were in their respective Filmmaker picture mode when these tests were taken.)</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>TCL X11L</strong></p></th><th  ><p><strong>TCL QM9K</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p>SDR Brightness (10%, in nits)    </p></td><td  ><p>283</p></td><td  ><p>224</p></td></tr><tr><td class="firstcol " ><p>Delta-E (lower is better)    </p></td><td  ><p>1.9</p></td><td  ><p>1.8</p></td></tr><tr><td class="firstcol " ><p>HDR Brightness (10%, in nits)    </p></td><td  ><p>2,679</p></td><td  ><p>4,207</p></td></tr><tr><td class="firstcol " ><p>UHDA-P3 Gamut Coverage    </p></td><td  ><p>97.74%</p></td><td  ><p>97.05%</p></td></tr><tr><td class="firstcol " ><p>Rec. 2020 Gamut Coverage    </p></td><td  ><p>91.77%</p></td><td  ><p>80.29% </p></td></tr><tr><td class="firstcol " ><p>Input latency (milliseconds)   </p></td><td  ><p>11.7</p></td><td  ><p>13</p></td></tr></tbody></table></div><p>First, let's talk about brightness. Along with its gobsmacking color, brightness is the X11L's bread and butter. However, the X11L comes with several settings that throttle its blistering brightness by default. We measured a sensational 2,679 nits of HDR highlight brightness on the X11L, but it's worth noting that this set is capable of getting much, <em>much</em> brighter with its backlight completely cranked up.</p><p>This is especially true when measuring even smaller highlights on the X11L than the 10% window reported above. Indeed, the X11L is capable of brightness levels well above 6,000 nits, and despite the QM9K's 4,000+ nits of HDR highlight brightness, I'd wager that the X11L is the brighter TV during HDR-mastered content.</p><p>Brightness isn't the whole story, either. TCL refers to the X11L as a Super Quantum Dot (SQD) TV. This souped-up quantum-dot technology is engineered to squeeze as much color as it can out of a standard, Mini-LED-backed picture, and the numbers bear this out.</p><p>TCL's top-of-the-line SQD TV covers more of the BT.2020 color gamut than any Mini-LED TV we've measured to date. It even matches the high-water mark set by some quantum dot-enhanced OLED TVs we've measured in recent years.</p><div><blockquote><p>TCL's top-of-the-line SQD TV covers more of the BT.2020 color gamut than any Mini-LED TV we've measured to date. </p></blockquote></div><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xBYDuVQoypAAhD4x4qEFE5" name="TCL QM9K--07" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/xBYDuVQoypAAhD4x4qEFE5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>This doesn't mean the QM9K <em>isn't</em> impressive. As mentioned, it deploys a sensational level of HDR brightness and manages all of that horsepower responsibly with a well-engineered backlight system.</p><p>Colors, too, are a wonder to behold on the QM9K. While it can't quite reach the dizzying, psychedelic heights of the X11L, it nevertheless saturates about 80% of the BT.2020 color gamut.</p><p>Both TCL TVs come with an accurate, dialed-in presentation in Filmmaker mode. Both offer so-so input latency. But the X11L is the more colorful of the two, and despite our reported HDR highlight brightness in the table above, the X11L is capable of one of the brightest pictures money can buy — just as long as you tinker with the settings.</p><p>Each of these sets looks phenomenal on its own. In a side-by-side comparison, you'd almost certainly see the benefits of the X11L's SQD-driven picture. It's one of the best-performing TVs TCL has ever made.</p><p><em><strong>Winner:</strong></em><em> TCL X11L</em></p><h2 id="tcl-x11l-vs-tcl-qm9k-smart-platform-and-features">TCL X11L vs TCL QM9K: smart platform and features</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NCSPbAdY7umgEREUbDDR5W" name="TCL X11L SQD Mini-LED TV-10" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/NCSPbAdY7umgEREUbDDR5W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Both the X11L and the QM9K are built around the Google TV software suite, and it's a handy smart platform to have in your back pocket if you intend to do most of your streaming on your TV instead of an external streaming device.</p><p>I love how snappy Google TV feels to use. The user interface is relatively straightforward, and the overall performance of the software is fantastic on both the QM9K and the X11L.</p><p>As mentioned, the X11L is the only one of these two sets to come with four HDMI 2.1 inputs, so dedicated gamers with multiple devices will have a less-complicated relationship with the X11L than the QM9K.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mqwUAKQcD8ZWpjyxQpwNJk" name="TCL QM9K-17" alt="A TCL QM9K TV in a living room" src="https://cdn.mos.cms.futurecdn.net/mqwUAKQcD8ZWpjyxQpwNJk.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>But beyond their HDMI inputs, you're looking at two equally capable gaming TVs. The X11L and QM9K each come with Auto Low Latency Mode (ALLM), Variable Refresh Rate (VRR) and AMD FreeSync Premium Pro.</p><p>As mentioned, Dolby Vision support is available on both TVs, as is ATSC 3.0 support. They each come with built-in sound systems branded by Bang & Olufsen (though I find the audio experience on the X11L to be fuller).</p><p><em><strong>Winner: </strong></em><em>Draw</em></p><h2 id="tcl-x11l-vs-tcl-qm9k-outlook">TCL X11L vs TCL QM9K: outlook</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL X11L</p></th><th  ><p>TCL QM9K</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Specs (25)</strong></p></td><td  ><p>24</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Design (25)</strong></p></td><td  ><p>21</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Performance (25)</strong></p></td><td  ><p>23</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Features (25)</strong></p></td><td  ><p>24</p></td><td  ><p>24</p></td></tr><tr><td class="firstcol " ><p><strong>Total Score (100)</strong></p></td><td  ><p><strong>92</strong></p></td><td  ><p><strong>90</strong></p></td></tr></tbody></table></div><p>On paper and in person, there's no denying that the TCL X11L is a better-performing, more-accommodating TV for anyone shopping at the high-end level. But there's one critical factor that ought to be considered if you truly are trying to choose between them: price.</p><p>Right now, you can order the <a href="https://www.amazon.com/TCL-SQD-Mini-Ultimate-Brightness-Contrast/dp/B0GFDHZZ8F?th=1" target="_blank" rel="nofollow">75-inch TCL X11L for $6,999 at Amazon</a>. That's a lot of money for <em>any </em>TV, and the bigger sizes in the series are even pricier.</p><p>Meanwhile, you can grab the <a href="https://www.bestbuy.com/product/tcl-75-class-qm9k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQZ25" target="_blank" rel="nofollow">75-inch TCL QM9K for just $1,799 at Best Buy</a>. That's a staggering $5,200 less than the similarly sized X11L. This is before you take into account the fact that the QM9K is available in a 65-inch version. The 65-inch <a href="https://www.bestbuy.com/product/tcl-65-class-qm9k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQZXX" target="_blank" rel="nofollow">QM9K is on sale for $1,599 at Best Buy</a>.</p><p>As a new model, the price of the TCL X11L will almost certainly fall throughout the year. But here's the thing: <em>So will the price of the QM9K.</em></p><p>All told, the X11L is a better-performing TV that offers gamers more flexibility. But I can assure you that it's also not $4,000 to $5,000 <em>more </em>impressive than the QM9K. For most people, the QM9K is the better pick. It comes in a 65-inch variant, its design is better suited for smaller living spaces and it's substantially cheaper than the X11L.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">I tested TCL’s $8,000 SQD Mini-LED TV — here's my verdict</a></li><li><a href="https://www.tomsguide.com/tvs/tcl-qm9k-mini-led-tv-review">I tested the TCL QM9K Mini-LED TV and it’s incredibly bright — but not the best value</a></li><li><a href="https://www.tomsguide.com/tvs/the-ram-crisis-came-for-computers-first-and-now-its-coming-for-tvs-heres-why-i-recommend-upgrading-while-you-still-can">The RAM crisis came for computers first and now it's coming for TVs — here's why I recommend upgrading while you still can</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/tcl-x11l-vs-tcl-qm9k-which-top-shelf-mini-led-tv-is-best</link>
                                                                            <description>
                            <![CDATA[ The 2025 QM9K Mini-LED TV and the 2026 X11L SQD TV are two of the best TCL TVs you can buy.  Here's how they compare — from performance to features and price. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">7rwTH2HCmrDGiD42bSeryk</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/iFwcVAnYVooPxAqmBiwJLU-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 24 Apr 2026 09:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/iFwcVAnYVooPxAqmBiwJLU-1280-80.jpg">
                                                            <media:credit><![CDATA[TCL]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The TCL X11L SQD Mini-LED TV side by side with the TCL QM9K Mini-LED TV]]></media:description>                                                            <media:text><![CDATA[The TCL X11L SQD Mini-LED TV side by side with the TCL QM9K Mini-LED TV]]></media:text>
                                <media:title type="plain"><![CDATA[The TCL X11L SQD Mini-LED TV side by side with the TCL QM9K Mini-LED TV]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/iFwcVAnYVooPxAqmBiwJLU-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div class="featured_product_block featured_block_versus" data-id="6e4f4178-db48-4095-a276-0af35096717b">            <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review" data-model-name="TCL X11L 4K SQD Mini LED TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/viSrbyMKKroPjkqrdBfspf.jpg" alt="The TCL X11L SQD Mini-LED TV displaying a colorful, abstract picture"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL X11L</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="90" /></span></div>                                        <p><p>Thanks to an all-new spin on quantum-dot technology, the TCL X11L delivers some of the best (and brightest) performance we've ever seen on a Mini-LED TV. That said, it's <em>much</em> pricier than last-year's QM9K, and the marginal difference in performance might not be enough for most people to justify the price jump.</p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_versus" data-id="27c98386-334a-46f4-9d66-2e8abb5a5403">            <a href="https://www.tomsguide.com/tvs/tcl-qm9k-mini-led-tv-review" data-model-name="TCL QM9K QD-Mini LED 4K TV (2025)" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:60.13%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/mYhyRwenBUQFzbHyJxCpzh.jpg" alt="The TCL QM9K on a white background."></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL QM9K</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="80" /></span></div>                                        <p><p>The QM9K is one of TCL's last top-shelf TVs to feature a traditional blend of quantum-dot color and Mini-LED backlighting, so it's not as colorful as the Super Quantum Dot-equipped X11L. Nevertheless, it's an order of magnitude cheaper, making it a better buy for most people.</p></p>                </div>                            </div>        </div><p>TCL, makers of a wide range of QLEDs and Mini-LED TVs, is offering an impressive slate of top-shelf options in 2026. As is the case with every major TV brand, the <a href="https://www.tomsguide.com/best-picks/best-tcl-tvs">best TCL TVs</a> you can buy right now are a blend of last-year's top TVs and the newest high-end models.</p><p>The <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">TCL X11L</a> is the brand's most-premium offering in 2026; the <a href="https://www.tomsguide.com/tvs/tcl-qm9k-mini-led-tv-review">TCL QM9K</a>, on the other hand, is the top-performing TCL TV from 2025. Right now, they occupy the same shelf space.</p><p>Both sets leverage Mini-LED backlighting for a bright, punchy picture. But these two TCL TVs diverge when it comes to performance, features and price. Here's what you need to know before shopping.</p><h2 id="tcl-x11l-vs-tcl-qm9k-specs-compared">TCL X11L vs TCL QM9K: specs compared</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL X11L</p></th><th  ><p>TCL QM9K</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Sizes</strong></p></td><td  ><p>75", 85", 98"</p></td><td  ><p>65", 75", 85", 98"</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>4x HDMI 2.1</p></td><td  ><p>2x HDMI 2.1, 2x HDMI 2.0</p></td></tr><tr><td class="firstcol " ><p><strong>Resolution</strong></p></td><td  ><p>3,840 x 2,160p</p></td><td  ><p>3,840 x 2,160p</p></td></tr><tr><td class="firstcol " ><p><strong>Refresh rate</strong></p></td><td  ><p>144Hz</p></td><td  ><p>144Hz</p></td></tr><tr><td class="firstcol " ><p><strong>HDR</strong></p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td></tr><tr><td class="firstcol " ><p><strong>Smart TV software</strong></p></td><td  ><p>Google TV</p></td><td  ><p>Google TV</p></td></tr><tr><td class="firstcol " ><p><strong>ATSC 3.0 support?</strong></p></td><td  ><p>Yes</p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Processor</strong></p></td><td  ><p>TSR AI Processor</p></td><td  ><p>TCL AIPQ Pro Processor</p></td></tr></tbody></table></div><p>These are similarly spec'd TVs, but there a few noteworthy differences to highlight here. For one thing, the QM9K is the only one to come in a 65-inch variant. The X11L starts at 75 inches. If you want a screen below the 75-inch size point, the QM9K is the set that'll get you there.</p><p>Secondly, the QM9K only offers a pair of HDMI 2.1-compatible ports — the remaining pair is limited to HDMI 2.0. The X11L, meanwhile, features HDMI 2.1 compatibility across all four of its inputs.</p><p>This distinction is especially relevant for gamers. While both sets support 4K gaming at 120Hz (and up to 144Hz with a gaming PC linked up), only the X11L supports this functionality across every single HDMI input. With the QM9K, you're limited to just two of these high-bandwidth inputs. The lesser, HDMI 2.0-based inputs are limited to 4K content at up to 60Hz.</p><p>Everything else comes out in a wash. <a href="https://www.tomsguide.com/tvs/do-you-actually-need-dolby-vision-on-your-next-tv-heres-the-answer">Dolby Vision support</a> is in represented on both of these TVs, as well as HDR10+. Additionally, both the X11L and the QM9K come with ATSC 3.0 support. This allows over-the-air broadcasts to be piped-in at native 4K resolution when available. 4K broadcasts aren't very common, but this feature is nevertheless nice to have.</p><p>That said, the addition of two extra HDMI 2.1 inputs fills out the X11L's spec sheet. It's the full package.</p><p><em><strong>Winner:</strong></em><em> TCL X11L</em></p><h2 id="tcl-x11l-vs-tcl-qm9k-design">TCL X11L vs TCL QM9K: design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fVb4gMFxwMorM3ykPuRp7W" name="TCL X11L SQD Mini-LED TV-09" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/fVb4gMFxwMorM3ykPuRp7W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The TCL X11L (seen above) is packing some heavy-duty technology (which I'll get into shortly). It's also only available in 75-, 85- and 98-inch sizes. This combination means that its overall design needs to accommodate heavy hardware across big screens.</p><p>As a result, the X11L is a bit of a <em>chonkster</em>. While its panel isn't exactly thick, the chassis connected to the bottom of the panel's backside is pretty deep for a high end Mini-LED TVs. The TV's Bang & Olufsen-branded internal speakers creates a thick band at the bottom of the screen which adds to the X11L's larger-than-life appearance.</p><p>Its beefed-up chassis sits gingerly on a pair of narrow, wide-set feet. The juxtaposition of the big, honkin' screen and the slim, scaled-down feet is eye-catching, but you'll need an extra-wide credenza or media console if you're planning on plopping down a 75- or 85-inch X11L.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="RRAFnWgTovNpkZSPRzPQR5" name="TCL QM9K--08" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/RRAFnWgTovNpkZSPRzPQR5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>By contrast, the QM9K (seen above) relies on a pedestal-style stand. The heavy, wedge-shaped piece sits below the center of the screen, and because of this placement, the QM9K doesn't need as wide of a surface to sit on.</p><p>And although the QM9K isn't quite as slim as the X11L at its narrowest point, its profile appears more svelte since it doesn't bulge out as much as the X11L.</p><p>As far as contemporary TVs go, both of these sets feature good-looking designs. However, the QM9K is undoubtedly an easier-to-manage setup due to its pedestal-style stand.</p><p><em><strong>Winner:</strong></em><em> TCL QM9K</em></p><h2 id="tcl-x11l-vs-tcl-qm9k-performance">TCL X11L vs TCL QM9K: performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1447px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="f3EFaXwbkrGmeKJDfwUmwm" name="TCL X11L SQD Mini-LED TV-LIST2" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/f3EFaXwbkrGmeKJDfwUmwm.jpg" mos="" align="middle" fullscreen="" width="1447" height="814" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Before we dive into which of these TVs is the better performer, let's compare their test results. (Both TVs were in their respective Filmmaker picture mode when these tests were taken.)</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>TCL X11L</strong></p></th><th  ><p><strong>TCL QM9K</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p>SDR Brightness (10%, in nits)    </p></td><td  ><p>283</p></td><td  ><p>224</p></td></tr><tr><td class="firstcol " ><p>Delta-E (lower is better)    </p></td><td  ><p>1.9</p></td><td  ><p>1.8</p></td></tr><tr><td class="firstcol " ><p>HDR Brightness (10%, in nits)    </p></td><td  ><p>2,679</p></td><td  ><p>4,207</p></td></tr><tr><td class="firstcol " ><p>UHDA-P3 Gamut Coverage    </p></td><td  ><p>97.74%</p></td><td  ><p>97.05%</p></td></tr><tr><td class="firstcol " ><p>Rec. 2020 Gamut Coverage    </p></td><td  ><p>91.77%</p></td><td  ><p>80.29% </p></td></tr><tr><td class="firstcol " ><p>Input latency (milliseconds)   </p></td><td  ><p>11.7</p></td><td  ><p>13</p></td></tr></tbody></table></div><p>First, let's talk about brightness. Along with its gobsmacking color, brightness is the X11L's bread and butter. However, the X11L comes with several settings that throttle its blistering brightness by default. We measured a sensational 2,679 nits of HDR highlight brightness on the X11L, but it's worth noting that this set is capable of getting much, <em>much</em> brighter with its backlight completely cranked up.</p><p>This is especially true when measuring even smaller highlights on the X11L than the 10% window reported above. Indeed, the X11L is capable of brightness levels well above 6,000 nits, and despite the QM9K's 4,000+ nits of HDR highlight brightness, I'd wager that the X11L is the brighter TV during HDR-mastered content.</p><p>Brightness isn't the whole story, either. TCL refers to the X11L as a Super Quantum Dot (SQD) TV. This souped-up quantum-dot technology is engineered to squeeze as much color as it can out of a standard, Mini-LED-backed picture, and the numbers bear this out.</p><p>TCL's top-of-the-line SQD TV covers more of the BT.2020 color gamut than any Mini-LED TV we've measured to date. It even matches the high-water mark set by some quantum dot-enhanced OLED TVs we've measured in recent years.</p><div><blockquote><p>TCL's top-of-the-line SQD TV covers more of the BT.2020 color gamut than any Mini-LED TV we've measured to date. </p></blockquote></div><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xBYDuVQoypAAhD4x4qEFE5" name="TCL QM9K--07" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/xBYDuVQoypAAhD4x4qEFE5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>This doesn't mean the QM9K <em>isn't</em> impressive. As mentioned, it deploys a sensational level of HDR brightness and manages all of that horsepower responsibly with a well-engineered backlight system.</p><p>Colors, too, are a wonder to behold on the QM9K. While it can't quite reach the dizzying, psychedelic heights of the X11L, it nevertheless saturates about 80% of the BT.2020 color gamut.</p><p>Both TCL TVs come with an accurate, dialed-in presentation in Filmmaker mode. Both offer so-so input latency. But the X11L is the more colorful of the two, and despite our reported HDR highlight brightness in the table above, the X11L is capable of one of the brightest pictures money can buy — just as long as you tinker with the settings.</p><p>Each of these sets looks phenomenal on its own. In a side-by-side comparison, you'd almost certainly see the benefits of the X11L's SQD-driven picture. It's one of the best-performing TVs TCL has ever made.</p><p><em><strong>Winner:</strong></em><em> TCL X11L</em></p><h2 id="tcl-x11l-vs-tcl-qm9k-smart-platform-and-features">TCL X11L vs TCL QM9K: smart platform and features</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NCSPbAdY7umgEREUbDDR5W" name="TCL X11L SQD Mini-LED TV-10" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/NCSPbAdY7umgEREUbDDR5W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Both the X11L and the QM9K are built around the Google TV software suite, and it's a handy smart platform to have in your back pocket if you intend to do most of your streaming on your TV instead of an external streaming device.</p><p>I love how snappy Google TV feels to use. The user interface is relatively straightforward, and the overall performance of the software is fantastic on both the QM9K and the X11L.</p><p>As mentioned, the X11L is the only one of these two sets to come with four HDMI 2.1 inputs, so dedicated gamers with multiple devices will have a less-complicated relationship with the X11L than the QM9K.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mqwUAKQcD8ZWpjyxQpwNJk" name="TCL QM9K-17" alt="A TCL QM9K TV in a living room" src="https://cdn.mos.cms.futurecdn.net/mqwUAKQcD8ZWpjyxQpwNJk.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>But beyond their HDMI inputs, you're looking at two equally capable gaming TVs. The X11L and QM9K each come with Auto Low Latency Mode (ALLM), Variable Refresh Rate (VRR) and AMD FreeSync Premium Pro.</p><p>As mentioned, Dolby Vision support is available on both TVs, as is ATSC 3.0 support. They each come with built-in sound systems branded by Bang & Olufsen (though I find the audio experience on the X11L to be fuller).</p><p><em><strong>Winner: </strong></em><em>Draw</em></p><h2 id="tcl-x11l-vs-tcl-qm9k-outlook">TCL X11L vs TCL QM9K: outlook</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL X11L</p></th><th  ><p>TCL QM9K</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Specs (25)</strong></p></td><td  ><p>24</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Design (25)</strong></p></td><td  ><p>21</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Performance (25)</strong></p></td><td  ><p>23</p></td><td  ><p>22</p></td></tr><tr><td class="firstcol " ><p><strong>Features (25)</strong></p></td><td  ><p>24</p></td><td  ><p>24</p></td></tr><tr><td class="firstcol " ><p><strong>Total Score (100)</strong></p></td><td  ><p><strong>92</strong></p></td><td  ><p><strong>90</strong></p></td></tr></tbody></table></div><p>On paper and in person, there's no denying that the TCL X11L is a better-performing, more-accommodating TV for anyone shopping at the high-end level. But there's one critical factor that ought to be considered if you truly are trying to choose between them: price.</p><p>Right now, you can order the <a href="https://www.amazon.com/TCL-SQD-Mini-Ultimate-Brightness-Contrast/dp/B0GFDHZZ8F?th=1" target="_blank" rel="nofollow">75-inch TCL X11L for $6,999 at Amazon</a>. That's a lot of money for <em>any </em>TV, and the bigger sizes in the series are even pricier.</p><p>Meanwhile, you can grab the <a href="https://www.bestbuy.com/product/tcl-75-class-qm9k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQZ25" target="_blank" rel="nofollow">75-inch TCL QM9K for just $1,799 at Best Buy</a>. That's a staggering $5,200 less than the similarly sized X11L. This is before you take into account the fact that the QM9K is available in a 65-inch version. The 65-inch <a href="https://www.bestbuy.com/product/tcl-65-class-qm9k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQZXX" target="_blank" rel="nofollow">QM9K is on sale for $1,599 at Best Buy</a>.</p><p>As a new model, the price of the TCL X11L will almost certainly fall throughout the year. But here's the thing: <em>So will the price of the QM9K.</em></p><p>All told, the X11L is a better-performing TV that offers gamers more flexibility. But I can assure you that it's also not $4,000 to $5,000 <em>more </em>impressive than the QM9K. For most people, the QM9K is the better pick. It comes in a 65-inch variant, its design is better suited for smaller living spaces and it's substantially cheaper than the X11L.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">I tested TCL’s $8,000 SQD Mini-LED TV — here's my verdict</a></li><li><a href="https://www.tomsguide.com/tvs/tcl-qm9k-mini-led-tv-review">I tested the TCL QM9K Mini-LED TV and it’s incredibly bright — but not the best value</a></li><li><a href="https://www.tomsguide.com/tvs/the-ram-crisis-came-for-computers-first-and-now-its-coming-for-tvs-heres-why-i-recommend-upgrading-while-you-still-can">The RAM crisis came for computers first and now it's coming for TVs — here's why I recommend upgrading while you still can</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ TCL QM8L TV review: SQD-Mini LED delivers big color, high brightness ]]></title>
                                                                                                <dc:content><![CDATA[ <div  class="fancy-box"><div class="fancy_box-title">TCL QM8L: SPECS</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Price: </strong>$2,999<br><strong>Screen size: </strong>75-inch<br><strong>Resolution: </strong>3,840 x 2,160 (4K)<br><strong>HDR: </strong>Dolby Vision IQ (HDR10+, HLG), upgradeable to Dolby Vision 2 when available<br><strong>Refresh rate: </strong>144Hz<br><strong>VRR: </strong>48–288Hz (AMD FreeSync)<br><strong>Ports: </strong>4 HDMI 2.1 up to 4K/144Hz (port 1 with eARC), 1 USB 3.0, 1 USB 2.0, optical digital audio out, LAN, RF-in<br><strong>Audio: </strong>2.2-channel (Dolby Atmos, DTS Premium Sound)<br><strong>Smart TV software: </strong>Google TV with Gemini AI<br><strong>Size (without stand): </strong>61.7 × 2.0 × 37.4 inches (W×D×H)<br><strong>Weight (without stand): </strong>62.6 lbs</p></div></div><p>TCL introduced a raft of complex display technologies earlier this year, but reserved them for its rather expensive X11L line (one of this year’s <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html"><u>best TVs)</u></a>.</p><p>Now those technologies have made their way down to the cheaper (though not <em>cheap</em>) QM8L models. They include upgraded Mini-LED backlighting and smaller nanoscale color filters that have brought LED-LCD TVs up to par with OLED in a number of categories. The result is a new TV line with impressive picture quality — especially its deep blacks with fine detail, powerful dynamic range, and impressive brightness that holds up in well-lit rooms. </p><p>The QM8L compares favorably to the <a href="https://www.tomsguide.com/best-picks/best-75-inch-tvs"><u>best 75-inch TVs</u></a> available in stores right now, and while it might not be the cheapest Mini-LED on the market this year, I still recommend it for folks who want the latest in cutting-edge TV tech.</p><h3 class="article-body__section" id="section-tcl-qm8l-review-pricing-and-availability"><span>TCL QM8L review: Pricing and availability</span></h3><p>The QM8L sits just below the flagship <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review"><u>TCL X11L</u></a> line, but comes at a significant price decrease. The 75-inch version we evaluated lists for $2,999; a 65-inch version (the most-popular size for households buying a new set) has a $2,499 price tag. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="yPTXvArttbbFYo7hk6VzMh" name="TCL-75QM8L-TV-2" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/yPTXvArttbbFYo7hk6VzMh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>All things considered, that's a big discount from the 75-inch X11L's $7,000 price tag, but if three grand is too much for you (perfectly understandable) you can find still-impressive quality in cheaper 75-inch models from 2025, such as TCL's own <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review"><u>75QM6K</u></a> (under $1000), or the <a href="https://www.tomsguide.com/tvs/4k-tvs/hisense-u8qg-mini-led-tv-review"><u>Hisense 75U8QG</u></a> (around $1600). </p><p>To get better black levels, however, you might have to move into OLED models with pricing similar to the QM8L's, such as the excellent <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c5-oled-tv-review"><u>LG C5</u></a>. The 77-inch C5 originally listed for $3,699 but can now be had for less than $2000. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="d8mR67WQMwWr25Zdb7Um9h" name="TCL-75QM8L-TV-15" alt="The back of a TCL QM8L TV" src="https://cdn.mos.cms.futurecdn.net/d8mR67WQMwWr25Zdb7Um9h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Like the C5 mentioned above, expect the QM8L to drop in price later this year; If that’s not something you can wait for, TCL is also launching another new TV line, the QM7L, which incorporates similar — though less high-end — screen technologies at lower prices. That 75-inch model will be available for $1,999, while a 65-inch will only set you back $1,499. We opted to test the QM8L first, but will shortly call in the QM7L for review. </p><h3 class="article-body__section" id="section-tcl-qm8l-review-design"><span>TCL QM8L review: Design</span></h3><p>This TV is not especially skinny by modern standards, at two inches thick; but that's the reasonable trade-off for its sophisticated full-array LED backlighting behind the screen. The QM8L also leaves room for a speaker system, with mid-bass speakers for deeper tones.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="5dPnQ6P7CAoDnKfYRMThYg" name="TCL-75QM8L-TV-19" alt="The bezel on a TCL QM8L TV" src="https://cdn.mos.cms.futurecdn.net/5dPnQ6P7CAoDnKfYRMThYg.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As with most flat panels today, the QM8L's bezel is of negligible thickness, leaving essentially all screen and just the letters "TCL" at the bottom. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="Eqyiq64cY8a4AZxGx6efEh" name="TCL-75QM8L-TV-16" alt="The foot of a TCL QM8L TV" src="https://cdn.mos.cms.futurecdn.net/Eqyiq64cY8a4AZxGx6efEh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The screen sits on a central pedestal, allowing you to place it on a smaller table. (Cheaper TVs tend to have feet close to each end of the screen.) That's especially useful for the 75-inch model that measures nearly five-and-a-half feet wide.</p><h3 class="article-body__section" id="section-tcl-qm8l-review-ports"><span>TCL QM8L review: Ports</span></h3><p>The QM8L TV has a full array of connectivity. It starts with four HDMI ports, all supporting the 2.1 standard that allows input up to 4K at 144Hz (the panel's max refresh rate). Most video sources top out at 120Hz, although some high-end gaming rigs do go up to 144Hz. Pair that with the 9.5ms input lag (one of the fastest we've measured), and you have a cutting-edge gaming screen.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="i4dxDPfBC7YxUbW3zGiPKh" name="TCL-75QM8L-TV-17" alt="The porst on a TCL QM8L TV" src="https://cdn.mos.cms.futurecdn.net/i4dxDPfBC7YxUbW3zGiPKh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>One HDMI port features eARC, providing Dolby Atmos and DTS Premium Sound digital audio output to a soundbar or home-theater system. The QM8L also has optical S/PDIF audio output for legacy systems, however. In addition, this TV offers a range of wireless speaker options (more about them below).</p><p>The set sports a pair of USB ports. One supports the 2.0 standard, with adequate power (0.5 amp) for the <a href="https://www.tomsguide.com/entertainment/streaming-devices/best-streaming-devices"><u>best streaming sticks</u></a>, such as those from Amazon and Roku (providing an option if you don't like the Google TV interface). The other supports USB 3.0, with up to 0.9 amp — generally enough to power a small external hard drive and with the bandwidth to smoothly deliver large video files from it. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="62VrydPup4mpeSSmkkyGDh" name="TCL-75QM8L-TV-18" alt="The USB ports on a TCL QM8L TV" src="https://cdn.mos.cms.futurecdn.net/62VrydPup4mpeSSmkkyGDh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>There is a LAN networking port (pretty much a vestigial organ in the era of fast Wi-Fi), and the RF input attaches to a tuner supporting the latest <a href="https://www.tomsguide.com/best-picks/best-tvs-with-atsc-30-tuners"><u>ATSC 3.0 standard</u></a> for higher-quality broadcast TV features, such as high dynamic range (HDR). It has no bearing on content from online streaming or cable-TV boxes. </p><p>Aside from the power-cable input on the right, all ports cluster on the left side of the TV, when viewed from behind. </p><h3 class="article-body__section" id="section-how-we-test"><span>How we test</span></h3><p>We follow a standard testing protocol for every TV we review at Tom’s Guide. Our benchmarks include a series of technical and subjective tests designed to rate the set’s performance.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="imiHoG3up4TMyAfbn7Jg7h" name="TCL-75QM8L-TV-14" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/imiHoG3up4TMyAfbn7Jg7h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>For our technical tests, we set the TV to Filmmaker Mode (usually the most accurate out of the box) and take measurements using a Jeti spectraval 1501-HiRes spectroradiometer, a Klein K10-A colorimeter, a Murideo 8K-SIX-G Metal pattern generator, and<a href="https://www.portrait.com/calman-home/"> <u>Portrait Displays’s Calman TV-calibration software</u></a>. We also use a Leo Bodnar 4K Video Signal Lag Tester for determining the TV’s gaming prowess.</p><p>Subjective tests vary based on the reviewer but usually include anecdotes from a diverse selection of movies, TV shows, and other content reflecting the types of things you may actually want to watch on the TV. For a more detailed look at what we do and how we do it, check out our “<a href="https://www.tomsguide.com/us/how-we-test-tvs,review-2478.html"><u>How we test TVs</u></a>” page.</p><h3 class="article-body__section" id="section-tcl-qm8l-review-performance"><span>TCL QM8L review: Performance</span></h3><p>Image quality from the QM8L is generally excellent, with some minor caveats. Deep blacks and wide dynamic range are undisputed strengths. TCL emphasizes that this LCD-based screen is not an "OLED Killer," but it's pretty darn close. The claims for color reproduction are equally grand compared to the brand-new <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c6-oled-review"><u>LG C6 OLED</u></a>, though the test results are mixed.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="UihKWQGLsg96m6zUpttEhg" name="TCL-75QM8L-TV-7" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/UihKWQGLsg96m6zUpttEhg.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The QM8L leverages a full-array LED backlight, with 2,584 illumination zones behind the 75-inch screen, each zone tunable to over 67 million (26-bit) discrete brightness levels. (The 75-inch X11L is more expensive in part because it has even more zones, although TCL declined to specify how many.) </p><p>That fine degree of control is combined with other features, such as microlenses to concentrate the backlight and an LCD panel that TCL says better blocks light from bleeding through. The result is amazingly dark blacks, which could appear next to extremely bright items with none of the "blooming" or ghostly halos around them. We saw this in a photo of a brilliant blue neon sign against a deep-black background. Even the brightest, overexposed parts of the sign had distinct boundaries, with no gray zones around them.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="Z3xDomnAx3fJPV52hiZZGh" name="TCL-75QM8L-TV-8" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/Z3xDomnAx3fJPV52hiZZGh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Deep black is of little value if a TV can't also retain detail in the slightly less-than-black areas. The QM8L accomplishes that task. In a photo of a woman wearing a black straw hat, for instance, the details of the weave were clearly visible, as were the strands and shading in her dark brown hair. Yet the brighter elements also shined, without being washed out. </p><p>We saw the same in a digital restoration of "8½," Federico Fellini's 1963 black-and-white fever dream of a movie. One scene, set in a dim bedroom, shows details equally fine in people's dark clothing and a brilliant white sheet. A later scene in a sun-drenched garden achieves equal fidelity across the range of shades. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="93RwbkSjAhiy9o2vwMM84h" name="TCL-75QM8L-TV-3" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/93RwbkSjAhiy9o2vwMM84h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Both extremes were a bit overpowering in Standard Mode, however. The film had more subtle elegance in the TV’s Movie mode. While Filmmaker mode is meant to be the most accurate setting (and the benchmark for instrument testing), I tend to find it a bit dreary on all TVs: too warm and muted. For dark room viewing, I found the slightly livelier Movie mode more enjoyable.</p><p>The QM8L leverages its technology with newer high-dynamic range material, such as Chapter 4 in the Blu-ray of "Spiderman: No Way Home." Details are perfectly clear and luminous in the firelit conversation between Peter Parker and Dr. Strange, as well as the later scene in which Strange weaves his ill-fated fiery spell in a nearly black room. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="gha5aFhE8ZDxvQyVjW9X9h" name="TCL-75QM8L-TV-9" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/gha5aFhE8ZDxvQyVjW9X9h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I enjoyed the broad yet subdued range of hues in "Bridgerton" (Season 1, Ep 3, 17:00-19:00), especially the riot of colorful sundresses in a glittering outdoor scene. The QM8L also captured detail well in highlights, such as strong sunlight glinting off a woman's forehead. Like this Netflix series, the QM8L supports Dolby Vision, which embeds extra data to ensure that the TV more faithfully reproduces the content. I found the nearly identical Dolby Vision Light and Dolby Vision IQ best for preserving detail for faces that were shaded in an indoor party scene. Colors in our test photos were also pleasing, such as the muted-orange ribbon on the woman's hat.</p><h3 class="article-body__section" id="section-tcl-qm8l-review-test-results"><span>TCL QM8L review: Test results</span></h3><div ><table><tbody><tr><td class="firstcol empty" ></td><td  ><p><strong>TCL QM8L </strong></p></td><td  ><p><strong>TCL QM9K</strong></p></td><td  ><p><strong>Hisense U75QG</strong></p></td><td  ><p><strong>LG C6 OLED</strong></p></td><td  ><p><strong>Samsung QN90F</strong></p></td><td  ><p><strong>Sony Bravia 9 </strong></p></td></tr><tr><td class="firstcol " ><p><strong>SDR Brightness (10%, in nits)</strong></p></td><td  ><p>229</p></td><td  ><p>224</p></td><td  ><p>1144</p></td><td  ><p>360</p></td><td  ><p>266</p></td><td  ><p>498</p></td></tr><tr><td class="firstcol " ><p><strong>Delta-E (lower is better)</strong></p></td><td  ><p>3.7</p></td><td  ><p>1.8</p></td><td  ><p>2.8</p></td><td  ><p>1.6</p></td><td  ><p>1.83</p></td><td  ><p>1.79</p></td></tr><tr><td class="firstcol " ><p><strong>Rec. 709 Gamut Coverage</strong></p></td><td  ><p>99.55</p></td><td  ><p>99.44</p></td><td  ><p>99.58</p></td><td  ><p>97.80</p></td><td  ><p>99.16</p></td><td  ><p>99.17</p></td></tr><tr><td class="firstcol " ><p><strong>HDR Brightness (10%, in nits)</strong></p></td><td  ><p>3,719</p></td><td  ><p>4,208</p></td><td  ><p>2,951</p></td><td  ><p>1,251</p></td><td  ><p>2,109</p></td><td  ><p>2980</p></td></tr><tr><td class="firstcol " ><p><strong>UHDA-P3 Gamut Coverage</strong></p></td><td  ><p>97.97</p></td><td  ><p>97.05</p></td><td  ><p>94.9</p></td><td  ><p>99.68</p></td><td  ><p>94.5</p></td><td  ><p>95.32</p></td></tr><tr><td class="firstcol " ><p><strong>Rec. 2020 Gamut Coverage</strong></p></td><td  ><p>90.34</p></td><td  ><p>80.29</p></td><td  ><p>76.19</p></td><td  ><p>76.13</p></td><td  ><p>77.44</p></td><td  ><p>78.02</p></td></tr><tr><td class="firstcol " ><p><strong>Input Lag (ms)</strong></p></td><td  ><p>9.5</p></td><td  ><p>13</p></td><td  ><p>9.8</p></td><td  ><p>9.1</p></td><td  ><p>9.5</p></td><td  ><p>17</p></td></tr></tbody></table></div><p><em>*As measured in Filmmaker Mode</em></p><p>Lab tests back up these results: an astronomical HDR brightness of 3,719 nits (measured in the 10% window method). That's one of the highest we've recorded (the top TV being over 5,000 nits) and about twice the average for TVs tested in 2025 and 2026. These results were recorded in the set's Filmmaker mode, the benchmark setting for our tests of all TVs, although it was an equally impressive 3772 nits in Standard Mode, the default setting that many people will likely watch the TV in.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="js9jAZkYumQGSpbeaqFbFh" name="TCL-75QM8L-TV-11" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/js9jAZkYumQGSpbeaqFbFh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Color is a more nuanced story: TCL certainly packs the technology, which it dubs SQD-Mini LED. Instead of generating light from blue LEDs as many TVs do — or a pricey trio of red, green, and blue LEDs — this TV starts with white light. It passes through a quantum-dot layer (common in modern TVs), with crystals that re-emit deeper reds and greens, before reaching the color filters in each pixel. TCL went higher-end in these aspects, as well.</p><p>The company claims that its quantum-dot crystals are engineered to produce richer shades, and that the smaller nanoparticles in its color filters (just 5nm across) can dial in better hues at the pixel level. TCL puts a number on this technology, claiming it covers 100% of the massive BT.2020 color gamut. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="9m7fq63YSn5FGAEvtd5YDh" name="TCL-75QM8L-TV-10" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/9m7fq63YSn5FGAEvtd5YDh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>In our lab tests, however, we measured a bit less, at 90.34% in Filmmaker mode, which is the most color-accurate mode on this and generally all other TVs. The results were virtually identical in the Standard, Movie, and Vivid modes. It's worth noting, however, that little or no content is made to fill this color space, so the stat is more for theoretical bragging rights. </p><p>While the QM8L has big color guns, it doesn't aim them as accurately as other TVs: We saw that in Delta-E, a measure of how far a screen's colors differ from how they should appear, in which a lower number is better. In Filmmaker mode, the QM8L posted a Delta-E of 3.7. That's one of the worst in a field with a lowest measure of just 1.1 (essentially perfect) and an average of 2.5.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="XWSbUd2bADHT6vNyoW5wwg" name="TCL-75QM8L-TV-5" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/XWSbUd2bADHT6vNyoW5wwg.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Few people watch TV with a colorimeter in hand, however, and the 3.7 measured in Filmmaker mode is just on the edge of perceptibility for a casual viewer. Instruments aside, the real-life experience of watching the QM8L is quite pleasant. </p><h3 class="article-body__section" id="section-tcl-qm8l-review-audio"><span>TCL QM8L review: Audio</span></h3><p>TCL also claims bragging rights for the QM8L's sound system, provided by big-name audio company Bang & Olufsen. It's labeled as "2.2-channel" sound, indicating a pair of mini-subwoofers for deeper tones. However TCL describes these as mid-base drivers, not true subwoofers. The company did not respond to our request to clarify, nor to specify the wattage of the speakers. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="HMk5rjAFBVvkkfqJs8W25h" name="TCL-75QM8L-TV-4" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/HMk5rjAFBVvkkfqJs8W25h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>In practice, I found performance to be on the higher-end of built-in speaker systems, but not radically better than other TVs I've heard. For instance, the <a href="https://www.tomsguide.com/tvs/qled-tvs/hisense-qd7-qled-tv-review"><u>Hisense QD7</u></a> (about $500 for the 65-inch model I tested or around $550 for a 75-inch) produces rumbling bass from its 30-watt stereo system.</p><p>I found the Movie audio mode to be the best in all respects. Versus Standard, it produced a clearer and richer sound in the deep, soulful voiceover of the "Stranger Things: Part 3" trailer, for instance. (That clip also showed brilliant HDR detail, too.) The aforementioned conversation was a bit crisper in "Spiderman," as well.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="cxKfxMpAxWVsquovjzc4sg" name="TCL-75QM8L-TV-6" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/cxKfxMpAxWVsquovjzc4sg.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The difference was less dramatic in music from the "K-Pop Demon Hunters Sing Along" trailer, however. It still sounded better in Movie mode, but not by much, over Standard and Intelligent modes. Music mode also didn't yield the improvement one might expect. In fact, I scarcely noticed a difference between Standard and Intelligent modes with anything I listened to. Perhaps Intelligent was a bit clearer, but it's hard to say.</p><p>The QM8L also supports both the Dolby Atmos and DTS Premium Sound formats for enveloping spatial audio: either virtualized using the built-in speakers or in full effect with a surround sound system. The set also supports Dolby's new FlexConnect 4.1.4 system for attaching up to four wireless speakers (in addition to a wireless subwoofer) to provide true Dolby Atmos surround sound.</p><h3 class="article-body__section" id="section-tcl-qm8l-review-interface-and-remote"><span>TCL QM8L review: Interface and remote</span></h3><p>Navigating the QM8L's Google TV interface is a mixed experience. On the plus side, accessing device settings is as simple and intuitive as I've seen. Simply press the three-line "hamburger"-icon in the upper right of the remote to pull up a ribbon of settings at the bottom of the screen. These include brightness, picture mode, sound mode, and display & soundsettings. Tapping any one of these brings up the full set of controls for the category. </p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/fSNuFZxK2KbqircqAUqbPh.jpg" alt="The remote for a TCL QM8L TV" /><figcaption><small role="credit">Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/GTFYzsqt7N8jsZvTFQeL7h.jpg" alt="The remote for a TCL QM8L TV" /><figcaption><small role="credit">Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/q45xLtpZ2ZFuYtedvYxCLh.jpg" alt="The remote for a TCL QM8L TV" /><figcaption><small role="credit">Tom's Guide</small></figcaption></figure></figure><p>If you’re someone who’s concerned about personal data collection, I recommend going to Settings > Privacy and poking around. If you have signed in with your Google account, the TV will be collecting a lot of information on you. You can limit that by turning off location tracking, for instance, or deleting your Advertiser ID. Also take a look at what apps may be accessing other information, such as your calendar or email.</p><p>In the future, you may be able to put the remote down to do some of this. TCL plans to roll out new Google TV capabilities that allow Gemini to make adjustments based on natural language voice prompts such as, "my screen is too dark." Those features were not enabled when I tested the QM8L, however. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="iRxDSbGSMJ4Fcmf8L9cVhg" name="TCL-75QM8L-TV-12" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/iRxDSbGSMJ4Fcmf8L9cVhg.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>But I could take advantage of the current ability to ask Gemini for content recommendations, and it's up for the challenge. For instance, my colleague asked Gemini: "Can you suggest a romantic comedy that's also an action movie that's also a racing movie that also has Brad Pitt in it." Gemini suggested the 2025 film "F1," probably the best possible answer to that ridiculous request.</p><p>Although it’s not something I’ve seen reported elsewhere, I had issues initially getting Google TV set up: The Google TV app either failed to realize that I was trying to set up a TV, or it failed to transfer the wireless network settings from my phone. Signing into my Google account was also hit or miss. What's more: Setup often timed out as I was dealing with these glitches, forcing me to start all over again. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="NNA6EZgkqEXcTbrfwkDaCh" name="TCL-75QM8L-TV-13" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/NNA6EZgkqEXcTbrfwkDaCh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Issues aside, the Google TV interface is attractive, easy to navigate and responsive. I’m not sure if I’d say it’s better than Samsung’s Tizen or LG’s webOS platform, but those aren’t without their own set of flaws, either.</p><h3 class="article-body__section" id="section-tcl-qm8l-review-verdict"><span>TCL QM8L review: Verdict</span></h3><p>TCL's X11L and now its QM8L TV lines show how far LCD technology can be pushed into OLED territory. It may not quite reach perfect black-level performance, but it's getting closer. Its elegant, local-dimming white LED technology achieves far higher brightness levels than OLEDs. That huge brightness range can help blacks appear deeper than they actually are and achieve impressive high dynamic range. </p><p>Lab results for color are a bit mixed, with lackluster Delta-E in the Filmmaker mode — but the real-world effect is less significant than the numbers might indicate. The QM8L is a relatively strong performer on color fidelity in the other modes, such as Standard.</p><p>Then there's the price. It's reasonable for the cutting-edge tech and OLED-adjacent performance, but it's your call if bleeding-edge tech is worth bleeding your wallet. If not, you have two options: Select a still-good, cheaper top 75-inch TV or wait six months to a year for the price to drop. Either way, the QM8L proves SQD is here to stay.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/qled-tvs/tcl-sqd-mini-led-qm8l-75-inch-tv-review</link>
                                                                            <description>
                            <![CDATA[ TCL has brought some of the best features from its X11L flagship to its top mid-range model, and the QM8L delivers top-tier color, black levels, brightness, and shadow and highlight detail. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">5AoYJaBPs3TVkuUq5s4spC</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/d3sxi36ZHwEgwjr4opPeMh-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 22 Apr 2026 20:45:51 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[QLED TVs]]></category>
                                                    <category><![CDATA[TVs]]></category>
                                                                                                                    <dc:creator><![CDATA[ Sean Captain ]]></dc:creator>                                                                                                        <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/d3sxi36ZHwEgwjr4opPeMh-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A TCL QM8L TV on a desk]]></media:description>                                                            <media:text><![CDATA[A TCL QM8L TV on a desk]]></media:text>
                                <media:title type="plain"><![CDATA[A TCL QM8L TV on a desk]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/d3sxi36ZHwEgwjr4opPeMh-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div  class="fancy-box"><div class="fancy_box-title">TCL QM8L: SPECS</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Price: </strong>$2,999<br><strong>Screen size: </strong>75-inch<br><strong>Resolution: </strong>3,840 x 2,160 (4K)<br><strong>HDR: </strong>Dolby Vision IQ (HDR10+, HLG), upgradeable to Dolby Vision 2 when available<br><strong>Refresh rate: </strong>144Hz<br><strong>VRR: </strong>48–288Hz (AMD FreeSync)<br><strong>Ports: </strong>4 HDMI 2.1 up to 4K/144Hz (port 1 with eARC), 1 USB 3.0, 1 USB 2.0, optical digital audio out, LAN, RF-in<br><strong>Audio: </strong>2.2-channel (Dolby Atmos, DTS Premium Sound)<br><strong>Smart TV software: </strong>Google TV with Gemini AI<br><strong>Size (without stand): </strong>61.7 × 2.0 × 37.4 inches (W×D×H)<br><strong>Weight (without stand): </strong>62.6 lbs</p></div></div><p>TCL introduced a raft of complex display technologies earlier this year, but reserved them for its rather expensive X11L line (one of this year’s <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html"><u>best TVs)</u></a>.</p><p>Now those technologies have made their way down to the cheaper (though not <em>cheap</em>) QM8L models. They include upgraded Mini-LED backlighting and smaller nanoscale color filters that have brought LED-LCD TVs up to par with OLED in a number of categories. The result is a new TV line with impressive picture quality — especially its deep blacks with fine detail, powerful dynamic range, and impressive brightness that holds up in well-lit rooms. </p><p>The QM8L compares favorably to the <a href="https://www.tomsguide.com/best-picks/best-75-inch-tvs"><u>best 75-inch TVs</u></a> available in stores right now, and while it might not be the cheapest Mini-LED on the market this year, I still recommend it for folks who want the latest in cutting-edge TV tech.</p><h3 class="article-body__section" id="section-tcl-qm8l-review-pricing-and-availability"><span>TCL QM8L review: Pricing and availability</span></h3><p>The QM8L sits just below the flagship <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review"><u>TCL X11L</u></a> line, but comes at a significant price decrease. The 75-inch version we evaluated lists for $2,999; a 65-inch version (the most-popular size for households buying a new set) has a $2,499 price tag. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="yPTXvArttbbFYo7hk6VzMh" name="TCL-75QM8L-TV-2" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/yPTXvArttbbFYo7hk6VzMh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>All things considered, that's a big discount from the 75-inch X11L's $7,000 price tag, but if three grand is too much for you (perfectly understandable) you can find still-impressive quality in cheaper 75-inch models from 2025, such as TCL's own <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review"><u>75QM6K</u></a> (under $1000), or the <a href="https://www.tomsguide.com/tvs/4k-tvs/hisense-u8qg-mini-led-tv-review"><u>Hisense 75U8QG</u></a> (around $1600). </p><p>To get better black levels, however, you might have to move into OLED models with pricing similar to the QM8L's, such as the excellent <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c5-oled-tv-review"><u>LG C5</u></a>. The 77-inch C5 originally listed for $3,699 but can now be had for less than $2000. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="d8mR67WQMwWr25Zdb7Um9h" name="TCL-75QM8L-TV-15" alt="The back of a TCL QM8L TV" src="https://cdn.mos.cms.futurecdn.net/d8mR67WQMwWr25Zdb7Um9h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Like the C5 mentioned above, expect the QM8L to drop in price later this year; If that’s not something you can wait for, TCL is also launching another new TV line, the QM7L, which incorporates similar — though less high-end — screen technologies at lower prices. That 75-inch model will be available for $1,999, while a 65-inch will only set you back $1,499. We opted to test the QM8L first, but will shortly call in the QM7L for review. </p><h3 class="article-body__section" id="section-tcl-qm8l-review-design"><span>TCL QM8L review: Design</span></h3><p>This TV is not especially skinny by modern standards, at two inches thick; but that's the reasonable trade-off for its sophisticated full-array LED backlighting behind the screen. The QM8L also leaves room for a speaker system, with mid-bass speakers for deeper tones.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="5dPnQ6P7CAoDnKfYRMThYg" name="TCL-75QM8L-TV-19" alt="The bezel on a TCL QM8L TV" src="https://cdn.mos.cms.futurecdn.net/5dPnQ6P7CAoDnKfYRMThYg.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As with most flat panels today, the QM8L's bezel is of negligible thickness, leaving essentially all screen and just the letters "TCL" at the bottom. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="Eqyiq64cY8a4AZxGx6efEh" name="TCL-75QM8L-TV-16" alt="The foot of a TCL QM8L TV" src="https://cdn.mos.cms.futurecdn.net/Eqyiq64cY8a4AZxGx6efEh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The screen sits on a central pedestal, allowing you to place it on a smaller table. (Cheaper TVs tend to have feet close to each end of the screen.) That's especially useful for the 75-inch model that measures nearly five-and-a-half feet wide.</p><h3 class="article-body__section" id="section-tcl-qm8l-review-ports"><span>TCL QM8L review: Ports</span></h3><p>The QM8L TV has a full array of connectivity. It starts with four HDMI ports, all supporting the 2.1 standard that allows input up to 4K at 144Hz (the panel's max refresh rate). Most video sources top out at 120Hz, although some high-end gaming rigs do go up to 144Hz. Pair that with the 9.5ms input lag (one of the fastest we've measured), and you have a cutting-edge gaming screen.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="i4dxDPfBC7YxUbW3zGiPKh" name="TCL-75QM8L-TV-17" alt="The porst on a TCL QM8L TV" src="https://cdn.mos.cms.futurecdn.net/i4dxDPfBC7YxUbW3zGiPKh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>One HDMI port features eARC, providing Dolby Atmos and DTS Premium Sound digital audio output to a soundbar or home-theater system. The QM8L also has optical S/PDIF audio output for legacy systems, however. In addition, this TV offers a range of wireless speaker options (more about them below).</p><p>The set sports a pair of USB ports. One supports the 2.0 standard, with adequate power (0.5 amp) for the <a href="https://www.tomsguide.com/entertainment/streaming-devices/best-streaming-devices"><u>best streaming sticks</u></a>, such as those from Amazon and Roku (providing an option if you don't like the Google TV interface). The other supports USB 3.0, with up to 0.9 amp — generally enough to power a small external hard drive and with the bandwidth to smoothly deliver large video files from it. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="62VrydPup4mpeSSmkkyGDh" name="TCL-75QM8L-TV-18" alt="The USB ports on a TCL QM8L TV" src="https://cdn.mos.cms.futurecdn.net/62VrydPup4mpeSSmkkyGDh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>There is a LAN networking port (pretty much a vestigial organ in the era of fast Wi-Fi), and the RF input attaches to a tuner supporting the latest <a href="https://www.tomsguide.com/best-picks/best-tvs-with-atsc-30-tuners"><u>ATSC 3.0 standard</u></a> for higher-quality broadcast TV features, such as high dynamic range (HDR). It has no bearing on content from online streaming or cable-TV boxes. </p><p>Aside from the power-cable input on the right, all ports cluster on the left side of the TV, when viewed from behind. </p><h3 class="article-body__section" id="section-how-we-test"><span>How we test</span></h3><p>We follow a standard testing protocol for every TV we review at Tom’s Guide. Our benchmarks include a series of technical and subjective tests designed to rate the set’s performance.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="imiHoG3up4TMyAfbn7Jg7h" name="TCL-75QM8L-TV-14" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/imiHoG3up4TMyAfbn7Jg7h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>For our technical tests, we set the TV to Filmmaker Mode (usually the most accurate out of the box) and take measurements using a Jeti spectraval 1501-HiRes spectroradiometer, a Klein K10-A colorimeter, a Murideo 8K-SIX-G Metal pattern generator, and<a href="https://www.portrait.com/calman-home/"> <u>Portrait Displays’s Calman TV-calibration software</u></a>. We also use a Leo Bodnar 4K Video Signal Lag Tester for determining the TV’s gaming prowess.</p><p>Subjective tests vary based on the reviewer but usually include anecdotes from a diverse selection of movies, TV shows, and other content reflecting the types of things you may actually want to watch on the TV. For a more detailed look at what we do and how we do it, check out our “<a href="https://www.tomsguide.com/us/how-we-test-tvs,review-2478.html"><u>How we test TVs</u></a>” page.</p><h3 class="article-body__section" id="section-tcl-qm8l-review-performance"><span>TCL QM8L review: Performance</span></h3><p>Image quality from the QM8L is generally excellent, with some minor caveats. Deep blacks and wide dynamic range are undisputed strengths. TCL emphasizes that this LCD-based screen is not an "OLED Killer," but it's pretty darn close. The claims for color reproduction are equally grand compared to the brand-new <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c6-oled-review"><u>LG C6 OLED</u></a>, though the test results are mixed.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="UihKWQGLsg96m6zUpttEhg" name="TCL-75QM8L-TV-7" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/UihKWQGLsg96m6zUpttEhg.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The QM8L leverages a full-array LED backlight, with 2,584 illumination zones behind the 75-inch screen, each zone tunable to over 67 million (26-bit) discrete brightness levels. (The 75-inch X11L is more expensive in part because it has even more zones, although TCL declined to specify how many.) </p><p>That fine degree of control is combined with other features, such as microlenses to concentrate the backlight and an LCD panel that TCL says better blocks light from bleeding through. The result is amazingly dark blacks, which could appear next to extremely bright items with none of the "blooming" or ghostly halos around them. We saw this in a photo of a brilliant blue neon sign against a deep-black background. Even the brightest, overexposed parts of the sign had distinct boundaries, with no gray zones around them.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="Z3xDomnAx3fJPV52hiZZGh" name="TCL-75QM8L-TV-8" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/Z3xDomnAx3fJPV52hiZZGh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Deep black is of little value if a TV can't also retain detail in the slightly less-than-black areas. The QM8L accomplishes that task. In a photo of a woman wearing a black straw hat, for instance, the details of the weave were clearly visible, as were the strands and shading in her dark brown hair. Yet the brighter elements also shined, without being washed out. </p><p>We saw the same in a digital restoration of "8½," Federico Fellini's 1963 black-and-white fever dream of a movie. One scene, set in a dim bedroom, shows details equally fine in people's dark clothing and a brilliant white sheet. A later scene in a sun-drenched garden achieves equal fidelity across the range of shades. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="93RwbkSjAhiy9o2vwMM84h" name="TCL-75QM8L-TV-3" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/93RwbkSjAhiy9o2vwMM84h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Both extremes were a bit overpowering in Standard Mode, however. The film had more subtle elegance in the TV’s Movie mode. While Filmmaker mode is meant to be the most accurate setting (and the benchmark for instrument testing), I tend to find it a bit dreary on all TVs: too warm and muted. For dark room viewing, I found the slightly livelier Movie mode more enjoyable.</p><p>The QM8L leverages its technology with newer high-dynamic range material, such as Chapter 4 in the Blu-ray of "Spiderman: No Way Home." Details are perfectly clear and luminous in the firelit conversation between Peter Parker and Dr. Strange, as well as the later scene in which Strange weaves his ill-fated fiery spell in a nearly black room. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="gha5aFhE8ZDxvQyVjW9X9h" name="TCL-75QM8L-TV-9" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/gha5aFhE8ZDxvQyVjW9X9h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I enjoyed the broad yet subdued range of hues in "Bridgerton" (Season 1, Ep 3, 17:00-19:00), especially the riot of colorful sundresses in a glittering outdoor scene. The QM8L also captured detail well in highlights, such as strong sunlight glinting off a woman's forehead. Like this Netflix series, the QM8L supports Dolby Vision, which embeds extra data to ensure that the TV more faithfully reproduces the content. I found the nearly identical Dolby Vision Light and Dolby Vision IQ best for preserving detail for faces that were shaded in an indoor party scene. Colors in our test photos were also pleasing, such as the muted-orange ribbon on the woman's hat.</p><h3 class="article-body__section" id="section-tcl-qm8l-review-test-results"><span>TCL QM8L review: Test results</span></h3><div ><table><tbody><tr><td class="firstcol empty" ></td><td  ><p><strong>TCL QM8L </strong></p></td><td  ><p><strong>TCL QM9K</strong></p></td><td  ><p><strong>Hisense U75QG</strong></p></td><td  ><p><strong>LG C6 OLED</strong></p></td><td  ><p><strong>Samsung QN90F</strong></p></td><td  ><p><strong>Sony Bravia 9 </strong></p></td></tr><tr><td class="firstcol " ><p><strong>SDR Brightness (10%, in nits)</strong></p></td><td  ><p>229</p></td><td  ><p>224</p></td><td  ><p>1144</p></td><td  ><p>360</p></td><td  ><p>266</p></td><td  ><p>498</p></td></tr><tr><td class="firstcol " ><p><strong>Delta-E (lower is better)</strong></p></td><td  ><p>3.7</p></td><td  ><p>1.8</p></td><td  ><p>2.8</p></td><td  ><p>1.6</p></td><td  ><p>1.83</p></td><td  ><p>1.79</p></td></tr><tr><td class="firstcol " ><p><strong>Rec. 709 Gamut Coverage</strong></p></td><td  ><p>99.55</p></td><td  ><p>99.44</p></td><td  ><p>99.58</p></td><td  ><p>97.80</p></td><td  ><p>99.16</p></td><td  ><p>99.17</p></td></tr><tr><td class="firstcol " ><p><strong>HDR Brightness (10%, in nits)</strong></p></td><td  ><p>3,719</p></td><td  ><p>4,208</p></td><td  ><p>2,951</p></td><td  ><p>1,251</p></td><td  ><p>2,109</p></td><td  ><p>2980</p></td></tr><tr><td class="firstcol " ><p><strong>UHDA-P3 Gamut Coverage</strong></p></td><td  ><p>97.97</p></td><td  ><p>97.05</p></td><td  ><p>94.9</p></td><td  ><p>99.68</p></td><td  ><p>94.5</p></td><td  ><p>95.32</p></td></tr><tr><td class="firstcol " ><p><strong>Rec. 2020 Gamut Coverage</strong></p></td><td  ><p>90.34</p></td><td  ><p>80.29</p></td><td  ><p>76.19</p></td><td  ><p>76.13</p></td><td  ><p>77.44</p></td><td  ><p>78.02</p></td></tr><tr><td class="firstcol " ><p><strong>Input Lag (ms)</strong></p></td><td  ><p>9.5</p></td><td  ><p>13</p></td><td  ><p>9.8</p></td><td  ><p>9.1</p></td><td  ><p>9.5</p></td><td  ><p>17</p></td></tr></tbody></table></div><p><em>*As measured in Filmmaker Mode</em></p><p>Lab tests back up these results: an astronomical HDR brightness of 3,719 nits (measured in the 10% window method). That's one of the highest we've recorded (the top TV being over 5,000 nits) and about twice the average for TVs tested in 2025 and 2026. These results were recorded in the set's Filmmaker mode, the benchmark setting for our tests of all TVs, although it was an equally impressive 3772 nits in Standard Mode, the default setting that many people will likely watch the TV in.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="js9jAZkYumQGSpbeaqFbFh" name="TCL-75QM8L-TV-11" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/js9jAZkYumQGSpbeaqFbFh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Color is a more nuanced story: TCL certainly packs the technology, which it dubs SQD-Mini LED. Instead of generating light from blue LEDs as many TVs do — or a pricey trio of red, green, and blue LEDs — this TV starts with white light. It passes through a quantum-dot layer (common in modern TVs), with crystals that re-emit deeper reds and greens, before reaching the color filters in each pixel. TCL went higher-end in these aspects, as well.</p><p>The company claims that its quantum-dot crystals are engineered to produce richer shades, and that the smaller nanoparticles in its color filters (just 5nm across) can dial in better hues at the pixel level. TCL puts a number on this technology, claiming it covers 100% of the massive BT.2020 color gamut. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="9m7fq63YSn5FGAEvtd5YDh" name="TCL-75QM8L-TV-10" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/9m7fq63YSn5FGAEvtd5YDh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>In our lab tests, however, we measured a bit less, at 90.34% in Filmmaker mode, which is the most color-accurate mode on this and generally all other TVs. The results were virtually identical in the Standard, Movie, and Vivid modes. It's worth noting, however, that little or no content is made to fill this color space, so the stat is more for theoretical bragging rights. </p><p>While the QM8L has big color guns, it doesn't aim them as accurately as other TVs: We saw that in Delta-E, a measure of how far a screen's colors differ from how they should appear, in which a lower number is better. In Filmmaker mode, the QM8L posted a Delta-E of 3.7. That's one of the worst in a field with a lowest measure of just 1.1 (essentially perfect) and an average of 2.5.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="XWSbUd2bADHT6vNyoW5wwg" name="TCL-75QM8L-TV-5" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/XWSbUd2bADHT6vNyoW5wwg.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Few people watch TV with a colorimeter in hand, however, and the 3.7 measured in Filmmaker mode is just on the edge of perceptibility for a casual viewer. Instruments aside, the real-life experience of watching the QM8L is quite pleasant. </p><h3 class="article-body__section" id="section-tcl-qm8l-review-audio"><span>TCL QM8L review: Audio</span></h3><p>TCL also claims bragging rights for the QM8L's sound system, provided by big-name audio company Bang & Olufsen. It's labeled as "2.2-channel" sound, indicating a pair of mini-subwoofers for deeper tones. However TCL describes these as mid-base drivers, not true subwoofers. The company did not respond to our request to clarify, nor to specify the wattage of the speakers. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="HMk5rjAFBVvkkfqJs8W25h" name="TCL-75QM8L-TV-4" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/HMk5rjAFBVvkkfqJs8W25h.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>In practice, I found performance to be on the higher-end of built-in speaker systems, but not radically better than other TVs I've heard. For instance, the <a href="https://www.tomsguide.com/tvs/qled-tvs/hisense-qd7-qled-tv-review"><u>Hisense QD7</u></a> (about $500 for the 65-inch model I tested or around $550 for a 75-inch) produces rumbling bass from its 30-watt stereo system.</p><p>I found the Movie audio mode to be the best in all respects. Versus Standard, it produced a clearer and richer sound in the deep, soulful voiceover of the "Stranger Things: Part 3" trailer, for instance. (That clip also showed brilliant HDR detail, too.) The aforementioned conversation was a bit crisper in "Spiderman," as well.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="cxKfxMpAxWVsquovjzc4sg" name="TCL-75QM8L-TV-6" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/cxKfxMpAxWVsquovjzc4sg.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The difference was less dramatic in music from the "K-Pop Demon Hunters Sing Along" trailer, however. It still sounded better in Movie mode, but not by much, over Standard and Intelligent modes. Music mode also didn't yield the improvement one might expect. In fact, I scarcely noticed a difference between Standard and Intelligent modes with anything I listened to. Perhaps Intelligent was a bit clearer, but it's hard to say.</p><p>The QM8L also supports both the Dolby Atmos and DTS Premium Sound formats for enveloping spatial audio: either virtualized using the built-in speakers or in full effect with a surround sound system. The set also supports Dolby's new FlexConnect 4.1.4 system for attaching up to four wireless speakers (in addition to a wireless subwoofer) to provide true Dolby Atmos surround sound.</p><h3 class="article-body__section" id="section-tcl-qm8l-review-interface-and-remote"><span>TCL QM8L review: Interface and remote</span></h3><p>Navigating the QM8L's Google TV interface is a mixed experience. On the plus side, accessing device settings is as simple and intuitive as I've seen. Simply press the three-line "hamburger"-icon in the upper right of the remote to pull up a ribbon of settings at the bottom of the screen. These include brightness, picture mode, sound mode, and display & soundsettings. Tapping any one of these brings up the full set of controls for the category. </p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/fSNuFZxK2KbqircqAUqbPh.jpg" alt="The remote for a TCL QM8L TV" /><figcaption><small role="credit">Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/GTFYzsqt7N8jsZvTFQeL7h.jpg" alt="The remote for a TCL QM8L TV" /><figcaption><small role="credit">Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/q45xLtpZ2ZFuYtedvYxCLh.jpg" alt="The remote for a TCL QM8L TV" /><figcaption><small role="credit">Tom's Guide</small></figcaption></figure></figure><p>If you’re someone who’s concerned about personal data collection, I recommend going to Settings > Privacy and poking around. If you have signed in with your Google account, the TV will be collecting a lot of information on you. You can limit that by turning off location tracking, for instance, or deleting your Advertiser ID. Also take a look at what apps may be accessing other information, such as your calendar or email.</p><p>In the future, you may be able to put the remote down to do some of this. TCL plans to roll out new Google TV capabilities that allow Gemini to make adjustments based on natural language voice prompts such as, "my screen is too dark." Those features were not enabled when I tested the QM8L, however. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="iRxDSbGSMJ4Fcmf8L9cVhg" name="TCL-75QM8L-TV-12" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/iRxDSbGSMJ4Fcmf8L9cVhg.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>But I could take advantage of the current ability to ask Gemini for content recommendations, and it's up for the challenge. For instance, my colleague asked Gemini: "Can you suggest a romantic comedy that's also an action movie that's also a racing movie that also has Brad Pitt in it." Gemini suggested the 2025 film "F1," probably the best possible answer to that ridiculous request.</p><p>Although it’s not something I’ve seen reported elsewhere, I had issues initially getting Google TV set up: The Google TV app either failed to realize that I was trying to set up a TV, or it failed to transfer the wireless network settings from my phone. Signing into my Google account was also hit or miss. What's more: Setup often timed out as I was dealing with these glitches, forcing me to start all over again. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="NNA6EZgkqEXcTbrfwkDaCh" name="TCL-75QM8L-TV-13" alt="A TCL QM8L TV on a desk" src="https://cdn.mos.cms.futurecdn.net/NNA6EZgkqEXcTbrfwkDaCh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Issues aside, the Google TV interface is attractive, easy to navigate and responsive. I’m not sure if I’d say it’s better than Samsung’s Tizen or LG’s webOS platform, but those aren’t without their own set of flaws, either.</p><h3 class="article-body__section" id="section-tcl-qm8l-review-verdict"><span>TCL QM8L review: Verdict</span></h3><p>TCL's X11L and now its QM8L TV lines show how far LCD technology can be pushed into OLED territory. It may not quite reach perfect black-level performance, but it's getting closer. Its elegant, local-dimming white LED technology achieves far higher brightness levels than OLEDs. That huge brightness range can help blacks appear deeper than they actually are and achieve impressive high dynamic range. </p><p>Lab results for color are a bit mixed, with lackluster Delta-E in the Filmmaker mode — but the real-world effect is less significant than the numbers might indicate. The QM8L is a relatively strong performer on color fidelity in the other modes, such as Standard.</p><p>Then there's the price. It's reasonable for the cutting-edge tech and OLED-adjacent performance, but it's your call if bleeding-edge tech is worth bleeding your wallet. If not, you have two options: Select a still-good, cheaper top 75-inch TV or wait six months to a year for the price to drop. Either way, the QM8L proves SQD is here to stay.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ This 4-star Mini-LED TV is bright enough for daytime viewing, stuffed with features and just went on sale for $449 ]]></title>
                                                                                                <dc:content><![CDATA[ <p>While Black Friday is widely known as one of the best times of the year to find good <a href="https://www.tomsguide.com/us/best-tv-deals,news-26008.html">TV deals</a>, fewer people will tell you about the benefits of shopping for a TV in early spring. As we speak, many of the most popular models from last year are on sale for wildly low prices, as brands are busy launching their newest lineups.</p><p>Such is the case for one of my favorite entry-level Mini-LED TVs, the TCL QM6K. Right now, you can get a <a href="https://www.bestbuy.com/product/tcl-55-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5C" target="_blank" rel="nofollow">55-inch TCL QM6K for just $449 at Best Buy</a>. It's a full $350 off one of the only affordable Mini-LED TVs I'd actually buy with my own money.</p><div class="product"><a data-dimension112="36cbbe6c-be4d-485b-8d16-585113fe189b" data-action="Deal Block" data-label="55” QM6K 4K Mini-LED TV" data-dimension48="55” QM6K 4K Mini-LED TV" data-dimension25="$449" href="https://www.bestbuy.com/product/tcl-55-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5C" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:61.93%;"><img id="sLXAogfAqKCUoj8BruTYZm" name="712IORjS-gL._AC_SL1500_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/sLXAogfAqKCUoj8BruTYZm.jpg" mos="" align="middle" fullscreen="" width="1500" height="929" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-55-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5C" target="_blank" rel="nofollow" data-dimension112="36cbbe6c-be4d-485b-8d16-585113fe189b" data-action="Deal Block" data-label="55” QM6K 4K Mini-LED TV" data-dimension48="55” QM6K 4K Mini-LED TV" data-dimension25="$449">55” QM6K 4K Mini-LED TV: was $799 now $449</a></strong><br>Since its release, the TCL QM6K has been one of my go-to recommendations for folks looking for a quality screen on a budget. It's a budget-friendly, 55-inch Mini-LED TV that's perfect for folks who want to upgrade to dependable, good-looking TV without spending too much. Right now, Best Buy is knocking $350 off its original price.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-55-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5C" target="_blank" rel="nofollow" data-dimension112="36cbbe6c-be4d-485b-8d16-585113fe189b" data-action="Deal Block" data-label="55” QM6K 4K Mini-LED TV" data-dimension48="55” QM6K 4K Mini-LED TV" data-dimension25="$449">View Deal</a></p></div><p>What makes the TCL QM6K such a good value proposition is its Mini-LED backlighting. If you spent even less on a cheaper TV, there's a good chance you'd end up with a set that doesn't offer Mini-LEDs.</p><p>Thanks to this more-sophisticated type of display, the QM6K delivers higher brightness and better overall contrast than most direct- or edge-lit LED TVs. Mini-LEDs allow for a punchier, more-cinematic picture compared to bog standard LED TVs.</p><p>In his <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review">TCL QM6K review</a>, my colleague Malcolm McMillan described being "blown away by the picture quality." Mini-LEDs are to thank for that.</p><p>For its price, the QM6K also offers a better-than-average array of features for streaming and gaming. This TV supports 4K gaming at 120Hz across two of its HDMI inputs, which is super useful for console gamers, as this is the highest 4K spec for current-gen consoles. </p><p>If you're constantly streaming shows and movies, you'll be pleased to learn that the QM6K's built-in streaming software is reliable enough for everyday use. The QM6K is built around Google TV, which is one of my favorite streaming platforms. Google TV combines an easy-to-use interface with a huge selection of downloadable apps, making it the perfect companion if you'd rather not shell out for an external streaming device.</p><p>At its original price, the 55-inch QM6K was a pretty good deal. At $449, it's a downright smart way to spend money on a budget-friendly, 4K upgrade.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/its-time-to-replace-your-tv-if-you-notice-any-of-these-5-issues">I test TVs for a living — 5 signs it's time to replace your TV</a></li><li><a href="https://www.tomsguide.com/tvs/ive-set-up-hundreds-of-tvs-in-my-career-here-are-6-mistakes-people-make-when-setting-up-a-new-tv">I’ve set up hundreds of TVs in my career — here are 6 mistakes people make when setting up a new TV</a></li><li><a href="https://www.tomsguide.com/tvs/5-tcl-tv-settings-to-change-for-the-best-possible-picture">5 TCL TV settings to change for the best possible picture</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/qled-tvs/this-4-star-mini-led-tv-is-bright-enough-for-daytime-viewing-stuffed-with-features-and-just-went-on-sale-for-usd449</link>
                                                                            <description>
                            <![CDATA[ Are you shopping for one of the best Mini-LED TVs you can buy on a budget? Right now, the 55-inch TCL QM6K QD Mini-LED TV is just $449 at Best Buy's sale. As a TV expert, it's one of my favorite affordable TVs. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Xa3zmH2vfx3qN73WVdz2F</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/HXzV37kKUxAE27CAjPDKU5-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 21 Apr 2026 15:04:45 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[QLED TVs]]></category>
                                                    <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/HXzV37kKUxAE27CAjPDKU5-1280-80.jpg">
                                                            <media:credit><![CDATA[TCL]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[TCL QM6K ]]></media:description>                                                            <media:text><![CDATA[TCL QM6K ]]></media:text>
                                <media:title type="plain"><![CDATA[TCL QM6K ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/HXzV37kKUxAE27CAjPDKU5-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>While Black Friday is widely known as one of the best times of the year to find good <a href="https://www.tomsguide.com/us/best-tv-deals,news-26008.html">TV deals</a>, fewer people will tell you about the benefits of shopping for a TV in early spring. As we speak, many of the most popular models from last year are on sale for wildly low prices, as brands are busy launching their newest lineups.</p><p>Such is the case for one of my favorite entry-level Mini-LED TVs, the TCL QM6K. Right now, you can get a <a href="https://www.bestbuy.com/product/tcl-55-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5C" target="_blank" rel="nofollow">55-inch TCL QM6K for just $449 at Best Buy</a>. It's a full $350 off one of the only affordable Mini-LED TVs I'd actually buy with my own money.</p><div class="product"><a data-dimension112="36cbbe6c-be4d-485b-8d16-585113fe189b" data-action="Deal Block" data-label="55” QM6K 4K Mini-LED TV" data-dimension48="55” QM6K 4K Mini-LED TV" data-dimension25="$449" href="https://www.bestbuy.com/product/tcl-55-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5C" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:61.93%;"><img id="sLXAogfAqKCUoj8BruTYZm" name="712IORjS-gL._AC_SL1500_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/sLXAogfAqKCUoj8BruTYZm.jpg" mos="" align="middle" fullscreen="" width="1500" height="929" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-55-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5C" target="_blank" rel="nofollow" data-dimension112="36cbbe6c-be4d-485b-8d16-585113fe189b" data-action="Deal Block" data-label="55” QM6K 4K Mini-LED TV" data-dimension48="55” QM6K 4K Mini-LED TV" data-dimension25="$449">55” QM6K 4K Mini-LED TV: was $799 now $449</a></strong><br>Since its release, the TCL QM6K has been one of my go-to recommendations for folks looking for a quality screen on a budget. It's a budget-friendly, 55-inch Mini-LED TV that's perfect for folks who want to upgrade to dependable, good-looking TV without spending too much. Right now, Best Buy is knocking $350 off its original price.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-55-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5C" target="_blank" rel="nofollow" data-dimension112="36cbbe6c-be4d-485b-8d16-585113fe189b" data-action="Deal Block" data-label="55” QM6K 4K Mini-LED TV" data-dimension48="55” QM6K 4K Mini-LED TV" data-dimension25="$449">View Deal</a></p></div><p>What makes the TCL QM6K such a good value proposition is its Mini-LED backlighting. If you spent even less on a cheaper TV, there's a good chance you'd end up with a set that doesn't offer Mini-LEDs.</p><p>Thanks to this more-sophisticated type of display, the QM6K delivers higher brightness and better overall contrast than most direct- or edge-lit LED TVs. Mini-LEDs allow for a punchier, more-cinematic picture compared to bog standard LED TVs.</p><p>In his <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review">TCL QM6K review</a>, my colleague Malcolm McMillan described being "blown away by the picture quality." Mini-LEDs are to thank for that.</p><p>For its price, the QM6K also offers a better-than-average array of features for streaming and gaming. This TV supports 4K gaming at 120Hz across two of its HDMI inputs, which is super useful for console gamers, as this is the highest 4K spec for current-gen consoles. </p><p>If you're constantly streaming shows and movies, you'll be pleased to learn that the QM6K's built-in streaming software is reliable enough for everyday use. The QM6K is built around Google TV, which is one of my favorite streaming platforms. Google TV combines an easy-to-use interface with a huge selection of downloadable apps, making it the perfect companion if you'd rather not shell out for an external streaming device.</p><p>At its original price, the 55-inch QM6K was a pretty good deal. At $449, it's a downright smart way to spend money on a budget-friendly, 4K upgrade.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/its-time-to-replace-your-tv-if-you-notice-any-of-these-5-issues">I test TVs for a living — 5 signs it's time to replace your TV</a></li><li><a href="https://www.tomsguide.com/tvs/ive-set-up-hundreds-of-tvs-in-my-career-here-are-6-mistakes-people-make-when-setting-up-a-new-tv">I’ve set up hundreds of TVs in my career — here are 6 mistakes people make when setting up a new TV</a></li><li><a href="https://www.tomsguide.com/tvs/5-tcl-tv-settings-to-change-for-the-best-possible-picture">5 TCL TV settings to change for the best possible picture</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ We just tested the TCL QM8L and it's better than I expected in this one key way ]]></title>
                                                                                                <dc:content><![CDATA[ <p>In 2026, nearly every major TV brand — including TCL — is rolling out a whole new type of TV: RGB LED. But TCL wasn't satisfied to simply follow the rest of the industry and call it a day. In addition to launching its own RGB LED TVs in the coming months, TCL is also busy debuting a new type of quantum-dot TV, too.</p><p>Dubbed Super Quantum Dot (or SQD for short), the TCL QM8L and QM7L are souped-up Mini-LED TVs that shake up the tried and true formula for quantum-dot color. These sets will live alongside the RM9L as an alternative to TCL's RGB Mini-LED TV this year.</p><p>Recently, we put the flagship-level QM8L through its paces in our test lab, and there's one aspect of its performance that truly surprised me: its color.</p><h2 id="the-tcl-qm8l-delivers-incredible-color">The TCL QM8L delivers incredible color</h2><p>If you're looking for the brightest, purest color money can buy in 2026, there are three types of TV that ought to be on your radar: quantum dot-enhanced OLED (QD-OLED), RGB LED, and now, SQD Mini-LED.</p><p>We got our first taste of SQD Mini-LED earlier this year when we tested and reviewed the <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">TCL X11L</a>, the top TV to tap this cutting-edge technology this year. The X11L's gobsmackingly good color immediately made an impression, setting the stage for how this display type might perform on a more-affordable model like the QM8L.</p><p>We'll publish a full list of the TCL QM8L's test results soon, but for now, let's take a look at how its color volume compares to its both its predecessor and some of the most colorful TVs we've ever reviewed.</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL QM8L</p></th><th  ><p>TCL QM8K (2025)</p></th><th  ><p>TCL X11L</p></th><th  ><p>Samsung S95F (2025)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Rec. 2020 Gamut Coverage</strong></p></td><td  ><p>90.34%</p></td><td  ><p>80.11%</p></td><td  ><p>91.77%</p></td><td  ><p>90.26%</p></td></tr></tbody></table></div><p>The QM8L delivers significantly brighter, purer color than its predecessor, the <a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review">TCL QM8K</a>. The QM8K is a Mini-LED TV that leverages quantum dots the good ol' fashioned way, so this gives us a pretty clear indication that color volume has improved quite a bit year over year.</p><p>The <a href="https://www.tomsguide.com/tvs/4k-tvs/samsung-s95f-oled-tv-review">Samsung S95F</a> is a quantum dot-OLED TV that has set the bar for color within the entire OLED class. According to our tests, the QM8L just barely edges out the S95F when it comes to color volume. That's nothing to sneeze at.</p><p>Most impressive is how close the QM8L's color result is to the wildly expensive TCL X11L,  a TV whose color is at the very center of its own marketing campaign. The QM8L starts at $2,499 for the 65-inch model, while the 75-inch X11L starts at a whopping $6,999. If you're looking for a similar presentation at a lower cost, the QM8L could be your best bet this year.</p><h2 id="the-power-of-super-quantum-dot-color">The power of Super Quantum Dot color</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:717px;"><p class="vanilla-image-block" style="padding-top:56.21%;"><img id="tqSC6wLWm9PM5mr6gdmq7W" name="TCL-SQD-Mini-LED-TV-explained" alt="An infographic explaining SQD technology in which the many layers of an SQD Mini-LED display are separated and labeled" src="https://cdn.mos.cms.futurecdn.net/tqSC6wLWm9PM5mr6gdmq7W.jpg" mos="" align="middle" fullscreen="" width="717" height="403" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>The Super Quantum Dot recipe is made up of a few ingredients: reformulated quantum dots, a new color filter for said quantum dots and some algorithmic tweaking (which TCL is calling its Advanced Color Purity Algorithm) designed to keep colors consistent.</p><p>Together, all of these elements make up TCL's all-new Deep Color System. To date, the X11L, QM8L and QM7L are the only three SQD Mini-LED TVs slated for 2026.</p><p>As mentioned, the QM8L starts at $2,499 for a 65-inch model. A 75-inch version will set you back $2,999, and an 85-inch QM8L is available for $3,999.</p><p>I expect the step-down QM7L to be a popular choice for A/V enthusiasts on the hunt for a good deal, as this version is available in a smaller, 55-inch screen size and costs less than the QM8L. The 55-inch QM7L starts at $1,199, and the 65-inch version comes in at $1,499.</p><h2 id="tcl-qm8l-sqd-mini-led-tv-outlook">TCL QM8L SQD Mini-LED TV: outlook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3449px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="sJFKyyHFeQnDLfSXJabNYD" name="TCL-QM8L-SQD-Mini-LED-TV-Lifestyle-2" alt="A wall-mounted TCL QM8L displaying colorful, abstract imagery in a well-lit living room" src="https://cdn.mos.cms.futurecdn.net/sJFKyyHFeQnDLfSXJabNYD.jpg" mos="" align="middle" fullscreen="" width="3449" height="1940" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>There are a ton of TVs hitting shelves this year that promise bright, captivating color, and the QM8L is right in the mix. We've only just begun to measure some of the recently released RGB LED TVs from Samsung and Hisense, but from what we've seen so far, their red-, green- and blue-colored backlights appear to have a slight edge over TCL's reformulated quantum-dot display.</p><p>Nevertheless, it's exciting to see some of the biggest names in the TV industry upping the ante in the LED space. For a while now, QD-OLED TVs have been the top option for viewers looking for the most-colorful experience, but there seems to be a worldwide effort at work to rewrite the script.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcls-super-qled-tv-is-the-new-king-of-color-heres-what-our-test-results-say">TCL’s “Super QLED” TV is the new king of color — here’s what our test results say</a></li><li><a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">I tested TCL’s $8,000 SQD Mini-LED TV — here's my verdict</a></li><li><a href="https://www.tomsguide.com/tvs/tcl-and-sony-are-joining-forces-to-sell-more-tvs-but-is-that-bad-news-for-shoppers">TCL and Sony are joining forces to sell more TVs — but is that bad news for shoppers?</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/qled-tvs/we-just-tested-the-tcl-qm8l-and-its-better-than-i-expected-in-this-one-key-way</link>
                                                                            <description>
                            <![CDATA[ Dubbed Super Quantum Dot (or SQD for short), the TCL QM8L and QM7L are souped-up Mini-LED TVs that shake up the tried and true formula for quantum-dot color. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">HWtvG8EcaGyZfT4buDyb4i</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/A2hNeQMPpanjSbWsQHQCUc-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 19 Apr 2026 05:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[QLED TVs]]></category>
                                                    <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/A2hNeQMPpanjSbWsQHQCUc-1280-80.jpg">
                                                            <media:credit><![CDATA[TCL]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A wall-mounted TCL QM8L TV displaying colorful, abstract imagery in a dark living room that&#039;s illuminated by blue- and pink-colored lighting]]></media:description>                                                            <media:text><![CDATA[A wall-mounted TCL QM8L TV displaying colorful, abstract imagery in a dark living room that&#039;s illuminated by blue- and pink-colored lighting]]></media:text>
                                <media:title type="plain"><![CDATA[A wall-mounted TCL QM8L TV displaying colorful, abstract imagery in a dark living room that&#039;s illuminated by blue- and pink-colored lighting]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/A2hNeQMPpanjSbWsQHQCUc-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>In 2026, nearly every major TV brand — including TCL — is rolling out a whole new type of TV: RGB LED. But TCL wasn't satisfied to simply follow the rest of the industry and call it a day. In addition to launching its own RGB LED TVs in the coming months, TCL is also busy debuting a new type of quantum-dot TV, too.</p><p>Dubbed Super Quantum Dot (or SQD for short), the TCL QM8L and QM7L are souped-up Mini-LED TVs that shake up the tried and true formula for quantum-dot color. These sets will live alongside the RM9L as an alternative to TCL's RGB Mini-LED TV this year.</p><p>Recently, we put the flagship-level QM8L through its paces in our test lab, and there's one aspect of its performance that truly surprised me: its color.</p><h2 id="the-tcl-qm8l-delivers-incredible-color">The TCL QM8L delivers incredible color</h2><p>If you're looking for the brightest, purest color money can buy in 2026, there are three types of TV that ought to be on your radar: quantum dot-enhanced OLED (QD-OLED), RGB LED, and now, SQD Mini-LED.</p><p>We got our first taste of SQD Mini-LED earlier this year when we tested and reviewed the <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">TCL X11L</a>, the top TV to tap this cutting-edge technology this year. The X11L's gobsmackingly good color immediately made an impression, setting the stage for how this display type might perform on a more-affordable model like the QM8L.</p><p>We'll publish a full list of the TCL QM8L's test results soon, but for now, let's take a look at how its color volume compares to its both its predecessor and some of the most colorful TVs we've ever reviewed.</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL QM8L</p></th><th  ><p>TCL QM8K (2025)</p></th><th  ><p>TCL X11L</p></th><th  ><p>Samsung S95F (2025)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Rec. 2020 Gamut Coverage</strong></p></td><td  ><p>90.34%</p></td><td  ><p>80.11%</p></td><td  ><p>91.77%</p></td><td  ><p>90.26%</p></td></tr></tbody></table></div><p>The QM8L delivers significantly brighter, purer color than its predecessor, the <a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review">TCL QM8K</a>. The QM8K is a Mini-LED TV that leverages quantum dots the good ol' fashioned way, so this gives us a pretty clear indication that color volume has improved quite a bit year over year.</p><p>The <a href="https://www.tomsguide.com/tvs/4k-tvs/samsung-s95f-oled-tv-review">Samsung S95F</a> is a quantum dot-OLED TV that has set the bar for color within the entire OLED class. According to our tests, the QM8L just barely edges out the S95F when it comes to color volume. That's nothing to sneeze at.</p><p>Most impressive is how close the QM8L's color result is to the wildly expensive TCL X11L,  a TV whose color is at the very center of its own marketing campaign. The QM8L starts at $2,499 for the 65-inch model, while the 75-inch X11L starts at a whopping $6,999. If you're looking for a similar presentation at a lower cost, the QM8L could be your best bet this year.</p><h2 id="the-power-of-super-quantum-dot-color">The power of Super Quantum Dot color</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:717px;"><p class="vanilla-image-block" style="padding-top:56.21%;"><img id="tqSC6wLWm9PM5mr6gdmq7W" name="TCL-SQD-Mini-LED-TV-explained" alt="An infographic explaining SQD technology in which the many layers of an SQD Mini-LED display are separated and labeled" src="https://cdn.mos.cms.futurecdn.net/tqSC6wLWm9PM5mr6gdmq7W.jpg" mos="" align="middle" fullscreen="" width="717" height="403" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>The Super Quantum Dot recipe is made up of a few ingredients: reformulated quantum dots, a new color filter for said quantum dots and some algorithmic tweaking (which TCL is calling its Advanced Color Purity Algorithm) designed to keep colors consistent.</p><p>Together, all of these elements make up TCL's all-new Deep Color System. To date, the X11L, QM8L and QM7L are the only three SQD Mini-LED TVs slated for 2026.</p><p>As mentioned, the QM8L starts at $2,499 for a 65-inch model. A 75-inch version will set you back $2,999, and an 85-inch QM8L is available for $3,999.</p><p>I expect the step-down QM7L to be a popular choice for A/V enthusiasts on the hunt for a good deal, as this version is available in a smaller, 55-inch screen size and costs less than the QM8L. The 55-inch QM7L starts at $1,199, and the 65-inch version comes in at $1,499.</p><h2 id="tcl-qm8l-sqd-mini-led-tv-outlook">TCL QM8L SQD Mini-LED TV: outlook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3449px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="sJFKyyHFeQnDLfSXJabNYD" name="TCL-QM8L-SQD-Mini-LED-TV-Lifestyle-2" alt="A wall-mounted TCL QM8L displaying colorful, abstract imagery in a well-lit living room" src="https://cdn.mos.cms.futurecdn.net/sJFKyyHFeQnDLfSXJabNYD.jpg" mos="" align="middle" fullscreen="" width="3449" height="1940" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>There are a ton of TVs hitting shelves this year that promise bright, captivating color, and the QM8L is right in the mix. We've only just begun to measure some of the recently released RGB LED TVs from Samsung and Hisense, but from what we've seen so far, their red-, green- and blue-colored backlights appear to have a slight edge over TCL's reformulated quantum-dot display.</p><p>Nevertheless, it's exciting to see some of the biggest names in the TV industry upping the ante in the LED space. For a while now, QD-OLED TVs have been the top option for viewers looking for the most-colorful experience, but there seems to be a worldwide effort at work to rewrite the script.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcls-super-qled-tv-is-the-new-king-of-color-heres-what-our-test-results-say">TCL’s “Super QLED” TV is the new king of color — here’s what our test results say</a></li><li><a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">I tested TCL’s $8,000 SQD Mini-LED TV — here's my verdict</a></li><li><a href="https://www.tomsguide.com/tvs/tcl-and-sony-are-joining-forces-to-sell-more-tvs-but-is-that-bad-news-for-shoppers">TCL and Sony are joining forces to sell more TVs — but is that bad news for shoppers?</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I tested the TCL QM9K Mini-LED TV and it’s incredibly bright — but not the best value ]]></title>
                                                                                                <dc:content><![CDATA[ <div  class="fancy-box"><div class="fancy_box-title">TCL 75QM9K Specs</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Price: </strong>$1,699.99<br><strong>Screen size: </strong>75 inches<br><strong>Model: </strong>75QM9K<br><strong>Resolution: </strong>3,840x2,160<br><strong>HDR: </strong>HDR10, HDR10+, Dolby Vision IQ, HLG<br><strong>Refresh rate: </strong>144Hz<br><strong>Ports: </strong>2x HDMI 2.1, 2x HDMI 2.0<br><strong>Audio: </strong>2.1 Channel<br><strong>Smart TV software: </strong>Google TV<br><strong>Size (without stand): </strong>65.28 x 37.36 x 2.01 inches<br><strong>Weight (without stand): </strong>62.61 pounds</p></div></div><p>The TCL QM9K is a great TV and one that I actually quite like, with a panel so bright it’s tailor-made for rooms with lots of windows and ambient light. However, its unfortunate release timing really hurt its chances of becoming the best TV of 2025. It launched at the last-minute and followed on the coattails of the ultra-popular (and more affordable) <a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review">TCL QM8K</a>.</p><p>These days the QM9K bumps up against other carryovers from 2025 like the <a href="https://www.tomsguide.com/tvs/4k-tvs/hisense-u8qg-mini-led-tv-review">Hisense U8QG</a> and the <a href="https://www.tomsguide.com/tvs/qled-tvs/samsung-qn90f-neo-qled-tv-review">Samsung QN90F</a>, two of the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TVs</a> from last year when it comes to show-stopping Mini-LED screens. It’s also around the same price as the <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c5-oled-tv-review">LG C5 OLED</a>, the only TV to be awarded a perfect score from our editorial team in 2025. </p><p>Given its current price of $1,499 and its above-average performance, it’s certainly still a compelling buy in the face of new 2026 models that are priced much higher (see: the $6,999 <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">TCL X11L</a>) but the QM9K’s biggest mistake is that it’s a casualty of circumstance: There’s better value below it and better performance above it, plus new models that leverage Mini-RGB technology right around the corner.</p><h3 class="article-body__section" id="section-tcl-qm9k-review-price-and-release-date"><span>TCL QM9K review: Price and release date</span></h3><p>The TCL QM9K is the ultimate TCL Mini-LED from 2025. It launched back in September in 65-, 75-, 85- and 98-inch screen sizes.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LKpVmwai9i8dgSzowX5ix4" name="TCL QM9K--12" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/LKpVmwai9i8dgSzowX5ix4.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Here are the current sale prices for the TCL QM9K: </p><ul><li><strong>65-inch 65QM9K: $1,999 at launch | $1,499 on sale</strong></li><li><strong>75-inch 75QM9K: $3,499 at launch | $1,999 on sale</strong></li><li><strong>85-inch 85QM9K: $2,999 at launch | $2,499 on sale</strong></li><li><strong>98-inch 98QM9K: $5,999 at launch | $3,999 on sale</strong></li></ul><p>If you’re looking to buy the QM9K, I think the 75-inch model is the best bang for your buck. You’ll get all the performance and features of a flagship TV at a slightly more affordable price. </p><p>If $2,000 is more than you wanted to spend — and I certainly wouldn’t blame you — you can find both the 65-inch QM8K and 75-inch QM7K for just under $1,000. You’re losing out on some specular highlights and better on-board audio by buying one of the two cheaper TCL Mini-LED TVs, but I wouldn’t let that stop you. </p><h3 class="article-body__section" id="section-tcl-qm9k-review-design"><span>TCL QM9K review: Design</span></h3><p>For review, Tom’s Guide was sent the 75-inch version of the QM9K. All models use a QD-Mini-LED backlight and color system with Full Array Local Dimming, but larger sizes come with more dimming zones (up to 6,000). The 75-inch model, as the middle child between the 65- and 85-inch models, offers a nice compromise between the upper and lower limits.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="b2t9i9MGrwEtmH5EZwGDJ5" name="TCL QM9K--09" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/b2t9i9MGrwEtmH5EZwGDJ5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>All models in the lineup except the 98-inch version use a central pedestal stand that allows you to place them on smaller tables. It’s not something I’d recommend, as TVs with pedestal designs are easier to tip thanks to a higher center of gravity — but not everyone has to worry about an overly curious one-and-a-half year old toddling around their office. </p><p>Should you decide to hang it on the wall, the 75-inch model is compatible with a standard 400mm x 400mm VESA mount. </p><p>Wall-mounting is going to be slightly problematic, however. The QM9K isn’t exactly slim at roughly two inches thick and, even without the stand, you’re looking at lifting around 63 pounds. It’s definitely a two or three person job.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:66.65%;"><img id="saMnb4SgbuaBjANx7bpPJk" name="TCL QM9K-19" alt="A TCL QM9K TV in a living room" src="https://cdn.mos.cms.futurecdn.net/saMnb4SgbuaBjANx7bpPJk.jpg" mos="" align="middle" fullscreen="" width="2000" height="1333" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>For what it’s worth, though, I do like the limited brushed aluminum bezel that beautifully frames the glossy, perhaps-slightly-too-reflective screen. </p><h3 class="article-body__section" id="section-tcl-qm9k-review-ports"><span>TCL QM9K review: Ports</span></h3><p>On the TCL QM9K you’ve got four full HDMI 2.1 ports — two more HDMI 2.1 ports than you’ll find on the more affordable QM8K and QM7K. Most folks probably won’t need all four of them right now in 2026, but it’s good to be prepared for the future.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="GygMt5zaGUq2LXb8uXduH5" name="TCL QM9K--15" alt="The back of a TCL QM9K TV" src="https://cdn.mos.cms.futurecdn.net/GygMt5zaGUq2LXb8uXduH5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>In addition to the HDMI port selection, you’ve got USB ports to pick from (one of which is 3.0 compliant), an ethernet port, optical audio out and a coaxial port for an HD TV antenna. </p><p>Inside the TV is a tuner that supports ATSC 3.0 for 4K over-the-air broadcasts (these are location-dependent so be sure to check before buying it based on this one spec alone) and Wi-Fi 6. There’s also support for <a href="https://www.tomsguide.com/news/dolby-atmos-flexconnect-delivers-wireless-spatial-audio-and-its-coming-to-these-tvs-first">Dolby Atmos FlexConnect</a> in addition to standard Bluetooth, AirPlay 2 and Chromecast Built-in. FlexConnect, Dolby’s latest technology that allows you to place speakers anywhere in your living room and get calibrated spatial audio sound tuned to wherever you want to sit, is one of the biggest advancements in audio in the last five years, so it’s great to see it included here.</p><h3 class="article-body__section" id="section-tcl-qm9k-review-performance"><span>TCL QM9K review: Performance</span></h3><p>Under the glass, the QM9K has a lot going on. According to TCL, the QM9K has more than 6,000 local dimming zones in the largest screen sizes that are all powered by the AIPQ Pro Processor and WHVA panel.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="PmxEtehPXB5NsVy7PR4HH5" name="TCL QM9K--11" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/PmxEtehPXB5NsVy7PR4HH5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Wide High-vertical alignment (WHVA) panels are TCL’s advanced version of the industry-standard VA panels that, in theory, offer better off-axis viewing angles and wider color gamut. Our test results do show a small boost in color saturation, and anecdotally, this is one of the best LED-based TVs for off-axis viewing I’ve ever seen as color almost never desaturated no matter where I moved in the room.</p><p>On top of all that, the additional local dimming zones do create better overall contrast with less bleed. “Spider-Man Across the Spider-Verse” is chock full of scenes where bright, ultra-vivid colors sit directly next to inky blacks and dark greys — and they look phenomenal on the QM9K. I actually might like the look of this movie on the QM9K more than on the much more expensive Samsung QD-OLED I own.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XibdmapEGiJ3ALzWRs5wPk" name="TCL QM9K-18" alt="A TCL QM9K TV in a living room" src="https://cdn.mos.cms.futurecdn.net/XibdmapEGiJ3ALzWRs5wPk.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Sports and darker content like “The Batman” both looked decent on the QM9K, but not earth-shatteringly better than on other Mini-LED TVs I saw in 2025. Scenes with lots of dark details could sometimes get lost due to some light black level crushing and motion artefacting cropped up a few times while watching MLS on Apple TV+. </p><p>Are the latter points absolute deal-breakers for me? No, especially considering how much vibrancy the QM9K retained when viewed off-axis and its blinding (in a good way) levels of peak brightness. They’re just small flies in what is otherwise excellent ointment.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mqwUAKQcD8ZWpjyxQpwNJk" name="TCL QM9K-17" alt="A TCL QM9K TV in a living room" src="https://cdn.mos.cms.futurecdn.net/mqwUAKQcD8ZWpjyxQpwNJk.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>To test its gaming chops, I played a few hours of <em>Final Fantasy XVI</em> on PS5. The game’s fast-motion action sequences looked great at 4K/60 — and keep in mind that it’s possible for the QM9K to hit refresh speeds of 144Hz when connected to a gaming PC. The downside is that its input latency (the time it takes for a signal to come in, be processed and reach the screen) is a bit high at 13ms. </p><p>I mostly play single-player games where input latency really doesn’t affect the gameplay, but gamers who want to shave every millisecond off their reaction times might want to go for an OLED instead.</p><h3 class="article-body__section" id="section-how-we-test-tvs"><span>How we test TVs</span></h3><p>We follow a standard testing protocol for every TV we review at Tom’s Guide. Our benchmarks include a series of technical and subject tests designed to rate the set’s performance.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="egUw3rqsEh2sSD4PqUZPK5" name="TCL QM9K--05" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/egUw3rqsEh2sSD4PqUZPK5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>For our technical tests, we use a Jeti spectraval 1501-HiRes spectroradiometer, a Klein K10-A colorimeter, a Murideo 8K-SIX-G Metal pattern generator, and <a href="https://www.portrait.com/calman-home/">Portrait Displays’ Calman TV-calibration software</a> to take measurements. We also use a Leo Bodnar 4K Input Lag Tester for determining the TV’s gaming prowess.</p><p>Subjective tests vary based on the reviewer, but usually feature anecdotes from a diverse selection of movies, TV shows, and other content reflecting the types of things you may actually want to watch on the TV.</p><h3 class="article-body__section" id="section-tcl-qm9k-review-test-results"><span>TCL QM9K review: Test results</span></h3><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>TCL QM9K </strong></p></th><th  ><p><strong>Hisense U8QG </strong></p></th><th  ><p><strong>Samsung QN90F</strong></p></th><th  ><p><strong>LG C5 OLED</strong></p></th><th  ><p><strong>TCL QM8K</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>SDR Brightness (10%, in nits)</strong></p></td><td  ><p>4802</p></td><td  ><p>2908</p></td><td  ><p>347</p></td><td  ><p>705</p></td><td  ><p>3476</p></td></tr><tr><td class="firstcol " ><p><strong>Delta-E (lower is better)  </strong></p></td><td  ><p>1.82</p></td><td  ><p>2.44</p></td><td  ><p>1.83</p></td><td  ><p>1.25</p></td><td  ><p>2.71</p></td></tr><tr><td class="firstcol " ><p><strong>Rec. 709 Gamut Coverage</strong></p></td><td  ><p>99.44%</p></td><td  ><p>99.79%</p></td><td  ><p>99.16%</p></td><td  ><p>99.67%</p></td><td  ><p>99.03%</p></td></tr><tr><td class="firstcol " ><p><strong>HDR Brightness (10%, in nits)</strong></p></td><td  ><p>5413</p></td><td  ><p>3685</p></td><td  ><p>2109</p></td><td  ><p>1179</p></td><td  ><p>4437</p></td></tr><tr><td class="firstcol " ><p><strong>UHDA-P3 Gamut Coverage</strong></p></td><td  ><p>97.16%</p></td><td  ><p>97.55%</p></td><td  ><p>94.5%</p></td><td  ><p>99.3%</p></td><td  ><p>97.2%</p></td></tr><tr><td class="firstcol " ><p><strong>Rec. 2020 Gamut Coverage</strong></p></td><td  ><p>80.29%</p></td><td  ><p>83.71%</p></td><td  ><p>77.44%</p></td><td  ><p>76.31%</p></td><td  ><p>79.22%</p></td></tr><tr><td class="firstcol " ><p><strong>Input latency (in milliseconds)</strong></p></td><td  ><p>13</p></td><td  ><p>9.7</p></td><td  ><p>9.5</p></td><td  ><p>9.1</p></td><td  ><p>13</p></td></tr></tbody></table></div><p>When it comes to Mini-LED TVs, the QM9K is really the pinnacle of performance. It’s bright in SDR (4,802 nits in Vivid mode) and even brighter in HDR (5,413 in Standard). Comparable models from Hisense and Samsung have a hard time keeping up here. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vZojDHztsHPWeaGMFFdv75" name="TCL QM9K--06" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/vZojDHztsHPWeaGMFFdv75.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Now, I should note that the QM9K doesn’t produce a wall of light every time you turn it on. What our tests look for is the peak brightness in a 10% window — basically one small portion of the screen that could represent, say, a sunrise or an explosion. The only real competition the QM9K has in that category right now is the $8,000 <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">TCL X11L</a> that we measured at over 6,000 nits.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="RRAFnWgTovNpkZSPRzPQR5" name="TCL QM9K--08" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/RRAFnWgTovNpkZSPRzPQR5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>While peak brightness is the real highlight here (pun absolutely intended), the color volume and color accuracy of this TV — measured by the Gamut Coverage percentages and Delta-E score, respectively — are also top-notch. The QM9K’s Delta-E score of 1.82 is the lowest of any Mini-LED TV we tested in 2025. It doesn’t beat the LG C5 OLED’s nearly perfect score of 1.25, but it’s still incredibly impressive. (Keep in mind, of course, that any score under 3.0 is almost imperceptible to the human eye.)</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xBYDuVQoypAAhD4x4qEFE5" name="TCL QM9K--07" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/xBYDuVQoypAAhD4x4qEFE5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>But — and you knew this was coming — 2026 models are nearly here and they’re both brighter and more colorful than what we’re seeing with the QM9K. The newest Mini-LED TVs like the <a href="https://www.tomsguide.com/tvs/samsungs-115-inch-micro-rgb-tv-has-colours-so-good-i-briefly-considered-selling-a-kidney-to-afford-one">Samsung MR95F</a>, LG MRGB95 and Hisense UR9/UR8 use Mini-RGB backlighting systems that simply produce purer colors and have Rec2020 scores in the 90% and up range and actually output 8,000 nits (again only in small portions of the screen). The QM9K still offers flagship performance… just at a very inconvenient time.</p><h3 class="article-body__section" id="section-tcl-qm9k-review-audio"><span>TCL QM9K review: Audio</span></h3><p>To make the QM9K sound the best it can, TCL teamed up with Bang & Olufsen. The result is a multi-channel Dolby Atmos that sounds pretty good … under most circumstances. Calmer scenes, like ones with ongoing dialog between two characters, or action sequences without any dialog in it all, sound totally fine. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NMQHjdNuaWX3mpvyJuX8H5" name="TCL QM9K--13" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/NMQHjdNuaWX3mpvyJuX8H5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>But the QM9K’s audio performance takes a hit when there’s a lot of audio overlapping. Take, for instance, the fight with Spot near Miles’ school in “Spider-Man Across the Spider-Verse.” Spider-Man is tussling with a villain, so we’ve got the sound of two teleporting around plus the dialog between the characters. While that’s happening, Miles’ father is chasing them on the street, which has its own set of sounds — traffic noise, footsteps pounding on the pavement and his dad’s reactionary dialog — while chaos ensues all around him. Scenes with this much happening struggle to separate all the different sounds. Dialog might make it through OK, but the rest of what’s happening blends together in an amalgamation of noise. </p><p>The good news? The TCL QM9K is one of the only TVs that currently supports Dolby Atmos FlexConnect, which allows you to place compatible speakers anywhere in your room and get calibrated spatial audio sound tuned to wherever you want to sit. I wasn’t able to get a pair of TCL’s new FlexConnect home speakers to try it out for this review, but I’m currently testing the LG H7 FlexConnect Soundbar in a different room of the house and it’s great.</p><h3 class="article-body__section" id="section-tcl-qm9k-review-interface-and-apps"><span>TCL QM9K review: Interface and apps</span></h3><p>The QM9K uses the latest version of Google TV with Gemini. It’s one of the first TVs to host Google’s AI agent and while I didn’t find it all that helpful on a day-to-day basis, I could see it being handy to have down the road as AI continues to integrate into our everyday lives.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="oFpRDC9FJMfgLvKziQKEL5" name="TCL QM9K--14" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/oFpRDC9FJMfgLvKziQKEL5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Google TV works supremely well here. Everything loads quickly and there’s no real negatives to speak of. It’s one of the best smart TV platforms for a reason. It’s well-stocked with all the major streaming services and, thanks to the Play Store integration, there’s even a few game streaming services like Nvidia GeForce Now and Boosteroid. (Sadly, Google TV doesn’t have Xbox integration yet, but that’s likely to appear at some point in the future.) </p><p>The only real issue I have with it is that the QM9K has a built-in microphone for voice support. There’s a physical switch at the bottom of the TV to turn it off — which I really appreciate — but I know some folks are adamantly (and rightfully) against having a microphone built into their TV.</p><h3 class="article-body__section" id="section-tcl-qm9k-review-remote"><span>TCL QM9K review: Remote</span></h3><p>There’s nothing to dislike, aesthetically, about the QM9K’s silver-and-black remote. It looks premium when it’s sitting on the table and feels weighty in the hand. </p><p>Practically, however, there are a few places for improvement. For starters, the remote has a lot of empty space that could’ve been used to include more quick access buttons. You’ve got three of the main players there — Netflix, YouTube and Prime Video — as well as the company’s own TCL TV channel, but it wouldn’t have hurt to have buttons for Hulu/Disney+ or Max… or even Peacock and Paramount+. You’ve got the space, you may as well use it.</p><p>The other issue I have here is that the remote is still using regular batteries instead of rechargeable ones. Not every remote needs to be equipped with a rear solar panel like Samsung’s SolarCell remotes, but having USB-C rechargeable batteries seems like a more sensible, planet-friendly option. </p><h3 class="article-body__section" id="section-tcl-qm9k-review-verdict"><span>TCL QM9K review: Verdict</span></h3><p>The TCL QM9K is under siege from all sides. There’s TCL’s own <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review">QM7K</a> and <a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review">QM8K</a> models  from 2025 that aren’t quite as bright but deliver most of the same performance for almost half the price, and new models that use Mini-RGB tech arriving shortly. There’s also the LG C5 OLED to consider — it’s Tom’s Guide’s <a href="https://www.tomsguide.com/tvs/toms-guide-awards-2025">2025 TV of the Year</a> for a reason. </p><p>With all that in mind, there’s still a case to be made for the QM9K. It’s incredibly bright with wonderful specular highlights that help to make it a better fit for rooms with lots of ambient light. Its four HDMI 2.1 ports mean that it’s well-equipped for the future, and its Google TV smart platform runs effortlessly thanks to the TV’s advanced processor. It’s simultaneously smooth and sharp when it comes to performance, and that’s not something I say about a TV very often.</p><p>It’s going to be up against some tough competition throughout the rest of the year, but if you’re someone who wants an ultra-bright screen for a sun-drenched living room at a decent discount, you’ll find something special with the QM9K.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/tcl-qm9k-mini-led-tv-review</link>
                                                                            <description>
                            <![CDATA[ The TCL QM9K pulls out all the stops with a 144Hz native refresh rate, a peak brightness that’s over 6,000 nits and too many dimming zones to count — but can it hold strong against the incoming class of RGB Mini-LEDs? ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">J5ZoZwbEgvncdA79nFD3GT</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/xPkDixgPM87Ew7aKv756H5-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 15 Apr 2026 08:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[QLED TVs]]></category>
                                                    <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ Nick.Pino@futurenet.com (Nick Pino) ]]></author>                    <dc:creator><![CDATA[ Nick Pino ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/7xnnEdyK5eEbDVbS5pYB54.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Nick Pino heads up the TV and AV verticals at Tom&#039;s Guide and covers everything from OLED TVs to the latest wireless headphones. He&#039;s a Level 1 Certified THX Home Theater Professional, and has attended classes on TV and audio calibration. On Tom&#039;s Guide, he looks after some of the site&#039;s important buying guides like the best TVs, best OLED TVs, best 4K TVs, so most of his day is spent watching and evaluating new screens from LG, Samsung, Sony, Hisense, TCL and Vizio. (And yes, he knows how lucky he is to say that.) He was formerly the Senior Editor, TV and AV at TechRadar (Tom&#039;s Guide&#039;s sister site) and has previously written for GamesRadar, Official Xbox Magazine, PC Gamer and other outlets over the last decade. He got his start on Best Buy&#039;s official video game magazine, @GAMER, for whom he attended his first E3 in 2013. He&#039;s served as a judge for CES&#039; prestigious Innovation Awards and has attended the tech conference in Las Vegas since 2014. He has a computer science degree from the University at Buffalo and still resides in the Buffalo area. (Go Bills!) Not sure which TV you should buy? Drop him an email or tweet him on Twitter and he can help you out.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/xPkDixgPM87Ew7aKv756H5-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A TCL QM9K TV on a side table]]></media:description>                                                            <media:text><![CDATA[A TCL QM9K TV on a side table]]></media:text>
                                <media:title type="plain"><![CDATA[A TCL QM9K TV on a side table]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/xPkDixgPM87Ew7aKv756H5-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div  class="fancy-box"><div class="fancy_box-title">TCL 75QM9K Specs</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Price: </strong>$1,699.99<br><strong>Screen size: </strong>75 inches<br><strong>Model: </strong>75QM9K<br><strong>Resolution: </strong>3,840x2,160<br><strong>HDR: </strong>HDR10, HDR10+, Dolby Vision IQ, HLG<br><strong>Refresh rate: </strong>144Hz<br><strong>Ports: </strong>2x HDMI 2.1, 2x HDMI 2.0<br><strong>Audio: </strong>2.1 Channel<br><strong>Smart TV software: </strong>Google TV<br><strong>Size (without stand): </strong>65.28 x 37.36 x 2.01 inches<br><strong>Weight (without stand): </strong>62.61 pounds</p></div></div><p>The TCL QM9K is a great TV and one that I actually quite like, with a panel so bright it’s tailor-made for rooms with lots of windows and ambient light. However, its unfortunate release timing really hurt its chances of becoming the best TV of 2025. It launched at the last-minute and followed on the coattails of the ultra-popular (and more affordable) <a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review">TCL QM8K</a>.</p><p>These days the QM9K bumps up against other carryovers from 2025 like the <a href="https://www.tomsguide.com/tvs/4k-tvs/hisense-u8qg-mini-led-tv-review">Hisense U8QG</a> and the <a href="https://www.tomsguide.com/tvs/qled-tvs/samsung-qn90f-neo-qled-tv-review">Samsung QN90F</a>, two of the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TVs</a> from last year when it comes to show-stopping Mini-LED screens. It’s also around the same price as the <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c5-oled-tv-review">LG C5 OLED</a>, the only TV to be awarded a perfect score from our editorial team in 2025. </p><p>Given its current price of $1,499 and its above-average performance, it’s certainly still a compelling buy in the face of new 2026 models that are priced much higher (see: the $6,999 <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">TCL X11L</a>) but the QM9K’s biggest mistake is that it’s a casualty of circumstance: There’s better value below it and better performance above it, plus new models that leverage Mini-RGB technology right around the corner.</p><h3 class="article-body__section" id="section-tcl-qm9k-review-price-and-release-date"><span>TCL QM9K review: Price and release date</span></h3><p>The TCL QM9K is the ultimate TCL Mini-LED from 2025. It launched back in September in 65-, 75-, 85- and 98-inch screen sizes.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LKpVmwai9i8dgSzowX5ix4" name="TCL QM9K--12" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/LKpVmwai9i8dgSzowX5ix4.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Here are the current sale prices for the TCL QM9K: </p><ul><li><strong>65-inch 65QM9K: $1,999 at launch | $1,499 on sale</strong></li><li><strong>75-inch 75QM9K: $3,499 at launch | $1,999 on sale</strong></li><li><strong>85-inch 85QM9K: $2,999 at launch | $2,499 on sale</strong></li><li><strong>98-inch 98QM9K: $5,999 at launch | $3,999 on sale</strong></li></ul><p>If you’re looking to buy the QM9K, I think the 75-inch model is the best bang for your buck. You’ll get all the performance and features of a flagship TV at a slightly more affordable price. </p><p>If $2,000 is more than you wanted to spend — and I certainly wouldn’t blame you — you can find both the 65-inch QM8K and 75-inch QM7K for just under $1,000. You’re losing out on some specular highlights and better on-board audio by buying one of the two cheaper TCL Mini-LED TVs, but I wouldn’t let that stop you. </p><h3 class="article-body__section" id="section-tcl-qm9k-review-design"><span>TCL QM9K review: Design</span></h3><p>For review, Tom’s Guide was sent the 75-inch version of the QM9K. All models use a QD-Mini-LED backlight and color system with Full Array Local Dimming, but larger sizes come with more dimming zones (up to 6,000). The 75-inch model, as the middle child between the 65- and 85-inch models, offers a nice compromise between the upper and lower limits.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="b2t9i9MGrwEtmH5EZwGDJ5" name="TCL QM9K--09" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/b2t9i9MGrwEtmH5EZwGDJ5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>All models in the lineup except the 98-inch version use a central pedestal stand that allows you to place them on smaller tables. It’s not something I’d recommend, as TVs with pedestal designs are easier to tip thanks to a higher center of gravity — but not everyone has to worry about an overly curious one-and-a-half year old toddling around their office. </p><p>Should you decide to hang it on the wall, the 75-inch model is compatible with a standard 400mm x 400mm VESA mount. </p><p>Wall-mounting is going to be slightly problematic, however. The QM9K isn’t exactly slim at roughly two inches thick and, even without the stand, you’re looking at lifting around 63 pounds. It’s definitely a two or three person job.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:66.65%;"><img id="saMnb4SgbuaBjANx7bpPJk" name="TCL QM9K-19" alt="A TCL QM9K TV in a living room" src="https://cdn.mos.cms.futurecdn.net/saMnb4SgbuaBjANx7bpPJk.jpg" mos="" align="middle" fullscreen="" width="2000" height="1333" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>For what it’s worth, though, I do like the limited brushed aluminum bezel that beautifully frames the glossy, perhaps-slightly-too-reflective screen. </p><h3 class="article-body__section" id="section-tcl-qm9k-review-ports"><span>TCL QM9K review: Ports</span></h3><p>On the TCL QM9K you’ve got four full HDMI 2.1 ports — two more HDMI 2.1 ports than you’ll find on the more affordable QM8K and QM7K. Most folks probably won’t need all four of them right now in 2026, but it’s good to be prepared for the future.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="GygMt5zaGUq2LXb8uXduH5" name="TCL QM9K--15" alt="The back of a TCL QM9K TV" src="https://cdn.mos.cms.futurecdn.net/GygMt5zaGUq2LXb8uXduH5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>In addition to the HDMI port selection, you’ve got USB ports to pick from (one of which is 3.0 compliant), an ethernet port, optical audio out and a coaxial port for an HD TV antenna. </p><p>Inside the TV is a tuner that supports ATSC 3.0 for 4K over-the-air broadcasts (these are location-dependent so be sure to check before buying it based on this one spec alone) and Wi-Fi 6. There’s also support for <a href="https://www.tomsguide.com/news/dolby-atmos-flexconnect-delivers-wireless-spatial-audio-and-its-coming-to-these-tvs-first">Dolby Atmos FlexConnect</a> in addition to standard Bluetooth, AirPlay 2 and Chromecast Built-in. FlexConnect, Dolby’s latest technology that allows you to place speakers anywhere in your living room and get calibrated spatial audio sound tuned to wherever you want to sit, is one of the biggest advancements in audio in the last five years, so it’s great to see it included here.</p><h3 class="article-body__section" id="section-tcl-qm9k-review-performance"><span>TCL QM9K review: Performance</span></h3><p>Under the glass, the QM9K has a lot going on. According to TCL, the QM9K has more than 6,000 local dimming zones in the largest screen sizes that are all powered by the AIPQ Pro Processor and WHVA panel.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="PmxEtehPXB5NsVy7PR4HH5" name="TCL QM9K--11" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/PmxEtehPXB5NsVy7PR4HH5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Wide High-vertical alignment (WHVA) panels are TCL’s advanced version of the industry-standard VA panels that, in theory, offer better off-axis viewing angles and wider color gamut. Our test results do show a small boost in color saturation, and anecdotally, this is one of the best LED-based TVs for off-axis viewing I’ve ever seen as color almost never desaturated no matter where I moved in the room.</p><p>On top of all that, the additional local dimming zones do create better overall contrast with less bleed. “Spider-Man Across the Spider-Verse” is chock full of scenes where bright, ultra-vivid colors sit directly next to inky blacks and dark greys — and they look phenomenal on the QM9K. I actually might like the look of this movie on the QM9K more than on the much more expensive Samsung QD-OLED I own.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XibdmapEGiJ3ALzWRs5wPk" name="TCL QM9K-18" alt="A TCL QM9K TV in a living room" src="https://cdn.mos.cms.futurecdn.net/XibdmapEGiJ3ALzWRs5wPk.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Sports and darker content like “The Batman” both looked decent on the QM9K, but not earth-shatteringly better than on other Mini-LED TVs I saw in 2025. Scenes with lots of dark details could sometimes get lost due to some light black level crushing and motion artefacting cropped up a few times while watching MLS on Apple TV+. </p><p>Are the latter points absolute deal-breakers for me? No, especially considering how much vibrancy the QM9K retained when viewed off-axis and its blinding (in a good way) levels of peak brightness. They’re just small flies in what is otherwise excellent ointment.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mqwUAKQcD8ZWpjyxQpwNJk" name="TCL QM9K-17" alt="A TCL QM9K TV in a living room" src="https://cdn.mos.cms.futurecdn.net/mqwUAKQcD8ZWpjyxQpwNJk.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>To test its gaming chops, I played a few hours of <em>Final Fantasy XVI</em> on PS5. The game’s fast-motion action sequences looked great at 4K/60 — and keep in mind that it’s possible for the QM9K to hit refresh speeds of 144Hz when connected to a gaming PC. The downside is that its input latency (the time it takes for a signal to come in, be processed and reach the screen) is a bit high at 13ms. </p><p>I mostly play single-player games where input latency really doesn’t affect the gameplay, but gamers who want to shave every millisecond off their reaction times might want to go for an OLED instead.</p><h3 class="article-body__section" id="section-how-we-test-tvs"><span>How we test TVs</span></h3><p>We follow a standard testing protocol for every TV we review at Tom’s Guide. Our benchmarks include a series of technical and subject tests designed to rate the set’s performance.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="egUw3rqsEh2sSD4PqUZPK5" name="TCL QM9K--05" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/egUw3rqsEh2sSD4PqUZPK5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>For our technical tests, we use a Jeti spectraval 1501-HiRes spectroradiometer, a Klein K10-A colorimeter, a Murideo 8K-SIX-G Metal pattern generator, and <a href="https://www.portrait.com/calman-home/">Portrait Displays’ Calman TV-calibration software</a> to take measurements. We also use a Leo Bodnar 4K Input Lag Tester for determining the TV’s gaming prowess.</p><p>Subjective tests vary based on the reviewer, but usually feature anecdotes from a diverse selection of movies, TV shows, and other content reflecting the types of things you may actually want to watch on the TV.</p><h3 class="article-body__section" id="section-tcl-qm9k-review-test-results"><span>TCL QM9K review: Test results</span></h3><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>TCL QM9K </strong></p></th><th  ><p><strong>Hisense U8QG </strong></p></th><th  ><p><strong>Samsung QN90F</strong></p></th><th  ><p><strong>LG C5 OLED</strong></p></th><th  ><p><strong>TCL QM8K</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>SDR Brightness (10%, in nits)</strong></p></td><td  ><p>4802</p></td><td  ><p>2908</p></td><td  ><p>347</p></td><td  ><p>705</p></td><td  ><p>3476</p></td></tr><tr><td class="firstcol " ><p><strong>Delta-E (lower is better)  </strong></p></td><td  ><p>1.82</p></td><td  ><p>2.44</p></td><td  ><p>1.83</p></td><td  ><p>1.25</p></td><td  ><p>2.71</p></td></tr><tr><td class="firstcol " ><p><strong>Rec. 709 Gamut Coverage</strong></p></td><td  ><p>99.44%</p></td><td  ><p>99.79%</p></td><td  ><p>99.16%</p></td><td  ><p>99.67%</p></td><td  ><p>99.03%</p></td></tr><tr><td class="firstcol " ><p><strong>HDR Brightness (10%, in nits)</strong></p></td><td  ><p>5413</p></td><td  ><p>3685</p></td><td  ><p>2109</p></td><td  ><p>1179</p></td><td  ><p>4437</p></td></tr><tr><td class="firstcol " ><p><strong>UHDA-P3 Gamut Coverage</strong></p></td><td  ><p>97.16%</p></td><td  ><p>97.55%</p></td><td  ><p>94.5%</p></td><td  ><p>99.3%</p></td><td  ><p>97.2%</p></td></tr><tr><td class="firstcol " ><p><strong>Rec. 2020 Gamut Coverage</strong></p></td><td  ><p>80.29%</p></td><td  ><p>83.71%</p></td><td  ><p>77.44%</p></td><td  ><p>76.31%</p></td><td  ><p>79.22%</p></td></tr><tr><td class="firstcol " ><p><strong>Input latency (in milliseconds)</strong></p></td><td  ><p>13</p></td><td  ><p>9.7</p></td><td  ><p>9.5</p></td><td  ><p>9.1</p></td><td  ><p>13</p></td></tr></tbody></table></div><p>When it comes to Mini-LED TVs, the QM9K is really the pinnacle of performance. It’s bright in SDR (4,802 nits in Vivid mode) and even brighter in HDR (5,413 in Standard). Comparable models from Hisense and Samsung have a hard time keeping up here. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vZojDHztsHPWeaGMFFdv75" name="TCL QM9K--06" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/vZojDHztsHPWeaGMFFdv75.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Now, I should note that the QM9K doesn’t produce a wall of light every time you turn it on. What our tests look for is the peak brightness in a 10% window — basically one small portion of the screen that could represent, say, a sunrise or an explosion. The only real competition the QM9K has in that category right now is the $8,000 <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">TCL X11L</a> that we measured at over 6,000 nits.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="RRAFnWgTovNpkZSPRzPQR5" name="TCL QM9K--08" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/RRAFnWgTovNpkZSPRzPQR5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>While peak brightness is the real highlight here (pun absolutely intended), the color volume and color accuracy of this TV — measured by the Gamut Coverage percentages and Delta-E score, respectively — are also top-notch. The QM9K’s Delta-E score of 1.82 is the lowest of any Mini-LED TV we tested in 2025. It doesn’t beat the LG C5 OLED’s nearly perfect score of 1.25, but it’s still incredibly impressive. (Keep in mind, of course, that any score under 3.0 is almost imperceptible to the human eye.)</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xBYDuVQoypAAhD4x4qEFE5" name="TCL QM9K--07" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/xBYDuVQoypAAhD4x4qEFE5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>But — and you knew this was coming — 2026 models are nearly here and they’re both brighter and more colorful than what we’re seeing with the QM9K. The newest Mini-LED TVs like the <a href="https://www.tomsguide.com/tvs/samsungs-115-inch-micro-rgb-tv-has-colours-so-good-i-briefly-considered-selling-a-kidney-to-afford-one">Samsung MR95F</a>, LG MRGB95 and Hisense UR9/UR8 use Mini-RGB backlighting systems that simply produce purer colors and have Rec2020 scores in the 90% and up range and actually output 8,000 nits (again only in small portions of the screen). The QM9K still offers flagship performance… just at a very inconvenient time.</p><h3 class="article-body__section" id="section-tcl-qm9k-review-audio"><span>TCL QM9K review: Audio</span></h3><p>To make the QM9K sound the best it can, TCL teamed up with Bang & Olufsen. The result is a multi-channel Dolby Atmos that sounds pretty good … under most circumstances. Calmer scenes, like ones with ongoing dialog between two characters, or action sequences without any dialog in it all, sound totally fine. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NMQHjdNuaWX3mpvyJuX8H5" name="TCL QM9K--13" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/NMQHjdNuaWX3mpvyJuX8H5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>But the QM9K’s audio performance takes a hit when there’s a lot of audio overlapping. Take, for instance, the fight with Spot near Miles’ school in “Spider-Man Across the Spider-Verse.” Spider-Man is tussling with a villain, so we’ve got the sound of two teleporting around plus the dialog between the characters. While that’s happening, Miles’ father is chasing them on the street, which has its own set of sounds — traffic noise, footsteps pounding on the pavement and his dad’s reactionary dialog — while chaos ensues all around him. Scenes with this much happening struggle to separate all the different sounds. Dialog might make it through OK, but the rest of what’s happening blends together in an amalgamation of noise. </p><p>The good news? The TCL QM9K is one of the only TVs that currently supports Dolby Atmos FlexConnect, which allows you to place compatible speakers anywhere in your room and get calibrated spatial audio sound tuned to wherever you want to sit. I wasn’t able to get a pair of TCL’s new FlexConnect home speakers to try it out for this review, but I’m currently testing the LG H7 FlexConnect Soundbar in a different room of the house and it’s great.</p><h3 class="article-body__section" id="section-tcl-qm9k-review-interface-and-apps"><span>TCL QM9K review: Interface and apps</span></h3><p>The QM9K uses the latest version of Google TV with Gemini. It’s one of the first TVs to host Google’s AI agent and while I didn’t find it all that helpful on a day-to-day basis, I could see it being handy to have down the road as AI continues to integrate into our everyday lives.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="oFpRDC9FJMfgLvKziQKEL5" name="TCL QM9K--14" alt="A TCL QM9K TV on a side table" src="https://cdn.mos.cms.futurecdn.net/oFpRDC9FJMfgLvKziQKEL5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Google TV works supremely well here. Everything loads quickly and there’s no real negatives to speak of. It’s one of the best smart TV platforms for a reason. It’s well-stocked with all the major streaming services and, thanks to the Play Store integration, there’s even a few game streaming services like Nvidia GeForce Now and Boosteroid. (Sadly, Google TV doesn’t have Xbox integration yet, but that’s likely to appear at some point in the future.) </p><p>The only real issue I have with it is that the QM9K has a built-in microphone for voice support. There’s a physical switch at the bottom of the TV to turn it off — which I really appreciate — but I know some folks are adamantly (and rightfully) against having a microphone built into their TV.</p><h3 class="article-body__section" id="section-tcl-qm9k-review-remote"><span>TCL QM9K review: Remote</span></h3><p>There’s nothing to dislike, aesthetically, about the QM9K’s silver-and-black remote. It looks premium when it’s sitting on the table and feels weighty in the hand. </p><p>Practically, however, there are a few places for improvement. For starters, the remote has a lot of empty space that could’ve been used to include more quick access buttons. You’ve got three of the main players there — Netflix, YouTube and Prime Video — as well as the company’s own TCL TV channel, but it wouldn’t have hurt to have buttons for Hulu/Disney+ or Max… or even Peacock and Paramount+. You’ve got the space, you may as well use it.</p><p>The other issue I have here is that the remote is still using regular batteries instead of rechargeable ones. Not every remote needs to be equipped with a rear solar panel like Samsung’s SolarCell remotes, but having USB-C rechargeable batteries seems like a more sensible, planet-friendly option. </p><h3 class="article-body__section" id="section-tcl-qm9k-review-verdict"><span>TCL QM9K review: Verdict</span></h3><p>The TCL QM9K is under siege from all sides. There’s TCL’s own <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review">QM7K</a> and <a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review">QM8K</a> models  from 2025 that aren’t quite as bright but deliver most of the same performance for almost half the price, and new models that use Mini-RGB tech arriving shortly. There’s also the LG C5 OLED to consider — it’s Tom’s Guide’s <a href="https://www.tomsguide.com/tvs/toms-guide-awards-2025">2025 TV of the Year</a> for a reason. </p><p>With all that in mind, there’s still a case to be made for the QM9K. It’s incredibly bright with wonderful specular highlights that help to make it a better fit for rooms with lots of ambient light. Its four HDMI 2.1 ports mean that it’s well-equipped for the future, and its Google TV smart platform runs effortlessly thanks to the TV’s advanced processor. It’s simultaneously smooth and sharp when it comes to performance, and that’s not something I say about a TV very often.</p><p>It’s going to be up against some tough competition throughout the rest of the year, but if you’re someone who wants an ultra-bright screen for a sun-drenched living room at a decent discount, you’ll find something special with the QM9K.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ This 65-inch Mini-LED TV is bright, packed with features and down to its lowest price ever ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Broadly speaking, the two best times to shop for a TV are as follows: Black Friday weekend and <em>right now</em>. Many of the most popular TV brands and the biggest retailers are slashing prices on inventory ahead of the release of new models. This is why I've been recommending folks shop for a TV in early spring for my entire career.</p><p>For folks on the hunt for a bright, impressive-looking TV that won't cost an arm and a leg, I've yet to see a better deal this week than this: The <a href="https://www.amazon.com/TCL-65QM7K-120HZ-144HZ-Reflective-Television/dp/B0DVX8WJ7S" target="_blank" rel="nofollow">65-inch TCL QM7K is just $777 at Amazon</a>. The limited-time deal brings this bright, vibrant Mini-LED TV down to its all-time lowest price.</p><div class="product"><a data-dimension112="5beadc80-a99e-4b9d-a2f7-548681f05282" data-action="Deal Block" data-label="65" QM7K Mini-LED TV" data-dimension48="65" QM7K Mini-LED TV" data-dimension25="$777" href="https://www.amazon.com/TCL-65QM7K-120HZ-144HZ-Reflective-Television/dp/B0DVX8WJ7S" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NZFuiZ8YJxwt3TLDFKUiJm" name="TCL-QM7K-Mini-LED-TV-Vanity" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/NZFuiZ8YJxwt3TLDFKUiJm.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/TCL-65QM7K-120HZ-144HZ-Reflective-Television/dp/B0DVX8WJ7S" target="_blank" rel="nofollow" data-dimension112="5beadc80-a99e-4b9d-a2f7-548681f05282" data-action="Deal Block" data-label='65" QM7K Mini-LED TV' data-dimension48='65" QM7K Mini-LED TV' data-dimension25="$777">65" QM7K Mini-LED TV: was $999 now $777</a></strong><br>Since its debut, I've been recommending the QM7K to friends and family on account of its bright, colorful picture, its built-in Google TV software (which makes streaming a breeze) and its nifty, contrast-enhancing Mini-LED backlighting. This is the one to get if you want to save money on a dependable, impressive-looking TV.<a class="view-deal button" href="https://www.amazon.com/TCL-65QM7K-120HZ-144HZ-Reflective-Television/dp/B0DVX8WJ7S" target="_blank" rel="nofollow" data-dimension112="5beadc80-a99e-4b9d-a2f7-548681f05282" data-action="Deal Block" data-label="65" QM7K Mini-LED TV" data-dimension48="65" QM7K Mini-LED TV" data-dimension25="$777">View Deal</a></p></div><p>While ultra-affordable TVs typically make use of basic LED backlighting, the QM7K uses Mini-LEDs. These are smaller-sized LEDs that offer better backlight control due to their tiny size. But improved backlight control is only part of the story. Mini-LEDs are also why the QM7K delivers a bright, cinematic picture.</p><p>According to the performance tests we conducted for our <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review">TCL QM7K review</a>, this set can deliver over 1,700 nits of highlight brightness in HDR. For context, TCL's entry-level model — the <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review">TCL QM6K</a> — tops out at around 700 nits.</p><div><blockquote><p>Mini-LEDs are a why the QM7K delivers a bright, cinematic picture.</p></blockquote></div><p>Its bright, colorful picture is supported by an impressive slate of features. The QM7K comes with Google TV's robust, easy-to-use smart platform pre-installed. Google TV is my second-favorite smart platform (behind Roku), and most people will feel comfortable using it as a daily driver.</p><p>Gamers stand to wring even more value out of the QM7K due to its thorough array of gaming features. It comes with a pair of HDMI 2.1 ports that support 4K gaming up to 144Hz, which means the QM7K can take full advantage of newer titles on the <a href="https://www.tomsguide.com/reviews/xbox-series-x">Xbox Series X</a> and <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-review">PS5 Pro</a>.</p><p>When this TV made its debut, you had to shell out a full $1,499 for the 65-inch model. This deal drops that price all the way down to $777. I wouldn't sleep on it, though — Amazon has slapped its limited-time deal label on this listing.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review">TCL QM7K QD-Mini LED TV review</a></li><li><a href="https://www.tomsguide.com/tvs/i-saw-sonys-true-rgb-up-close-and-the-downfall-of-oled-tvs-might-come-sooner-than-expected">I saw Sony's True RGB up close — and the downfall of OLED TVs might come sooner than expected</a></li><li><a href="https://www.tomsguide.com/tvs/are-flagship-mini-led-tvs-on-their-way-out-heres-how-rgb-led-technology-is-already-reshaping-the-industry">Are flagship Mini-LED TVs on their way out? Here’s how RGB LED technology is already reshaping the industry</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/qled-tvs/this-65-inch-mini-led-tv-is-bright-packed-with-features-and-down-to-its-lowest-price-ever</link>
                                                                            <description>
                            <![CDATA[ Early spring is a terrific time to shop for a TV, and this week, one of my favorite Mini-LED TVs has crashed to its lowest price to date. Here's what you need to know about Amazon's limited-time sale on the TCL QM7K. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">kVmkaF9gTkLz6d3AwVUXZ5</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/qXGmuX7NQe2Y35xgYWktB8-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 09 Apr 2026 16:36:32 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[QLED TVs]]></category>
                                                    <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/qXGmuX7NQe2Y35xgYWktB8-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The TCL QM7K resting on top of a media console while it displays a scene from &quot;The Super Mario Bros. Movie.&quot; A badge superimposed onto the bottom-left corner reads: &quot;Tom&#039;s Guide Lowest Price&quot;.]]></media:description>                                                            <media:text><![CDATA[The TCL QM7K resting on top of a media console while it displays a scene from &quot;The Super Mario Bros. Movie.&quot; A badge superimposed onto the bottom-left corner reads: &quot;Tom&#039;s Guide Lowest Price&quot;.]]></media:text>
                                <media:title type="plain"><![CDATA[The TCL QM7K resting on top of a media console while it displays a scene from &quot;The Super Mario Bros. Movie.&quot; A badge superimposed onto the bottom-left corner reads: &quot;Tom&#039;s Guide Lowest Price&quot;.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/qXGmuX7NQe2Y35xgYWktB8-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Broadly speaking, the two best times to shop for a TV are as follows: Black Friday weekend and <em>right now</em>. Many of the most popular TV brands and the biggest retailers are slashing prices on inventory ahead of the release of new models. This is why I've been recommending folks shop for a TV in early spring for my entire career.</p><p>For folks on the hunt for a bright, impressive-looking TV that won't cost an arm and a leg, I've yet to see a better deal this week than this: The <a href="https://www.amazon.com/TCL-65QM7K-120HZ-144HZ-Reflective-Television/dp/B0DVX8WJ7S" target="_blank" rel="nofollow">65-inch TCL QM7K is just $777 at Amazon</a>. The limited-time deal brings this bright, vibrant Mini-LED TV down to its all-time lowest price.</p><div class="product"><a data-dimension112="5beadc80-a99e-4b9d-a2f7-548681f05282" data-action="Deal Block" data-label="65" QM7K Mini-LED TV" data-dimension48="65" QM7K Mini-LED TV" data-dimension25="$777" href="https://www.amazon.com/TCL-65QM7K-120HZ-144HZ-Reflective-Television/dp/B0DVX8WJ7S" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NZFuiZ8YJxwt3TLDFKUiJm" name="TCL-QM7K-Mini-LED-TV-Vanity" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/NZFuiZ8YJxwt3TLDFKUiJm.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/TCL-65QM7K-120HZ-144HZ-Reflective-Television/dp/B0DVX8WJ7S" target="_blank" rel="nofollow" data-dimension112="5beadc80-a99e-4b9d-a2f7-548681f05282" data-action="Deal Block" data-label='65" QM7K Mini-LED TV' data-dimension48='65" QM7K Mini-LED TV' data-dimension25="$777">65" QM7K Mini-LED TV: was $999 now $777</a></strong><br>Since its debut, I've been recommending the QM7K to friends and family on account of its bright, colorful picture, its built-in Google TV software (which makes streaming a breeze) and its nifty, contrast-enhancing Mini-LED backlighting. This is the one to get if you want to save money on a dependable, impressive-looking TV.<a class="view-deal button" href="https://www.amazon.com/TCL-65QM7K-120HZ-144HZ-Reflective-Television/dp/B0DVX8WJ7S" target="_blank" rel="nofollow" data-dimension112="5beadc80-a99e-4b9d-a2f7-548681f05282" data-action="Deal Block" data-label="65" QM7K Mini-LED TV" data-dimension48="65" QM7K Mini-LED TV" data-dimension25="$777">View Deal</a></p></div><p>While ultra-affordable TVs typically make use of basic LED backlighting, the QM7K uses Mini-LEDs. These are smaller-sized LEDs that offer better backlight control due to their tiny size. But improved backlight control is only part of the story. Mini-LEDs are also why the QM7K delivers a bright, cinematic picture.</p><p>According to the performance tests we conducted for our <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review">TCL QM7K review</a>, this set can deliver over 1,700 nits of highlight brightness in HDR. For context, TCL's entry-level model — the <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review">TCL QM6K</a> — tops out at around 700 nits.</p><div><blockquote><p>Mini-LEDs are a why the QM7K delivers a bright, cinematic picture.</p></blockquote></div><p>Its bright, colorful picture is supported by an impressive slate of features. The QM7K comes with Google TV's robust, easy-to-use smart platform pre-installed. Google TV is my second-favorite smart platform (behind Roku), and most people will feel comfortable using it as a daily driver.</p><p>Gamers stand to wring even more value out of the QM7K due to its thorough array of gaming features. It comes with a pair of HDMI 2.1 ports that support 4K gaming up to 144Hz, which means the QM7K can take full advantage of newer titles on the <a href="https://www.tomsguide.com/reviews/xbox-series-x">Xbox Series X</a> and <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-review">PS5 Pro</a>.</p><p>When this TV made its debut, you had to shell out a full $1,499 for the 65-inch model. This deal drops that price all the way down to $777. I wouldn't sleep on it, though — Amazon has slapped its limited-time deal label on this listing.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review">TCL QM7K QD-Mini LED TV review</a></li><li><a href="https://www.tomsguide.com/tvs/i-saw-sonys-true-rgb-up-close-and-the-downfall-of-oled-tvs-might-come-sooner-than-expected">I saw Sony's True RGB up close — and the downfall of OLED TVs might come sooner than expected</a></li><li><a href="https://www.tomsguide.com/tvs/are-flagship-mini-led-tvs-on-their-way-out-heres-how-rgb-led-technology-is-already-reshaping-the-industry">Are flagship Mini-LED TVs on their way out? Here’s how RGB LED technology is already reshaping the industry</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ This 75-inch Mini-LED TV for $649 is the best big-screen TV deal I've seen this year ]]></title>
                                                                                                <dc:content><![CDATA[ <p>When I found out that Best Buy was holding its <a href="https://www.tomsguide.com/sales-events/huge-best-buy-tv-sale-up-to-58-percent-off-oleds-and-mini-leds-from-samsung-and-lg">Tech Fest Sale</a> this weekend, I didn’t check the sale prices of the fanciest TVs first. Instead, I looked up the sale prices on the models that were already affordable to begin with. Oftentimes, the <a href="https://www.tomsguide.com/us/best-tv-deals,news-26008.html">best TV deals</a> during a sales event are the discounts on entry-level TVs.</p><p>Case in point? The <a href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46" target="_blank" rel="nofollow">75-inch TCL QM5K is just $649 at Best Buy</a> this weekend. This particular model was already one of the most affordable ways to lock down Mini-LED backlighting in an extra-large size point, but with Best Buy’s deal factored in, the value is off the charts. (For more deals, check out our guide to the best <a href="https://www.tomsguide.com/deals/march-madness-tv-sales">March Madness TV sales</a>).</p><div class="product"><a data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label="75" QM5K Mini-LED TV" data-dimension48="75" QM5K Mini-LED TV" data-dimension25="$649" href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="rRdoCj55QhqPM9wqYhpprE" name="TCL-QM5K-Mini-LED-TV-1-by-1-Deals-Block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/rRdoCj55QhqPM9wqYhpprE.jpg" mos="" align="middle" fullscreen="" width="2000" height="2000" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46" target="_blank" rel="nofollow" data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label='75" QM5K Mini-LED TV' data-dimension48='75" QM5K Mini-LED TV' data-dimension25="$649">75" QM5K Mini-LED TV: was $1199 now $649</a></strong><br>This is one of the best deals on a big-screen TV you'll find at Best Buy's Tech Fest Sale. The QM5K arrives with built-in Google TV features for all of your streaming needs, plus Dolby Vision support. Its handiest feature is its Mini-LED backlighting, which is tough to find at this price point. If you're going to shop for a big-screen TV in an affordable price range, this ought to be at the top of your list of candidates.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46" target="_blank" rel="nofollow" data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label="75" QM5K Mini-LED TV" data-dimension48="75" QM5K Mini-LED TV" data-dimension25="$649">View Deal</a></p></div><p>The QM5K's best feature is its display hardware. Take it from a TV expert: At the 75-inch size point, you <em>definitely</em> want Mini-LED backlighting instead of regular ol' LEDs.</p><p>Sure, the QM5K leverages a more modest array of Mini-LEDs when you compare it to higher-end Mini-LED TVs (like the <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review">TCL QM7K</a>), but it's still a gamechanger. This type of backlighting typically results in better contrast and higher brightness, and it's not exactly easy to come by in the QM5K's price range.</p><p>In other words, you're likely to enjoy a brighter, higher-contrast presentation on the QM5K than what you'll get with a similarly priced edge-lit TV. This is one of the reasons why I've been recommending this TV to folks whose number-one priority is saving money, but whose second priority is not ending up with a lousy picture.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="vCnRGsdCB3mnCFg3YgsEfh" name="TCL-QM5K-Mini-LED-TV-Google-TV-Home-Screen" alt="The TCL QM5K Mini-LED TV displaying the Google TV home screen" src="https://cdn.mos.cms.futurecdn.net/vCnRGsdCB3mnCFg3YgsEfh.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>The QM5K isn't exactly flush with features, but that's OK, as it's not really trying to be a the type of TV that would satisfy hardcore A/V enthusiasts. It comes with the Google TV software suite built right in, which is one of my preferred smart platforms.</p><p>Google TV offers a relatively easy experience in addition to a boat-load of downloadable apps. Its inclusion here is especially appreciated because the QM5K only comes with three HDMI inputs instead of the standard set of four. Google TV makes up for that omission by being a reliable platform for everyday use.</p><p>If you're trying to save some cash on a new 4K TV, I recommend that you avoid scraping the bottom of the barrel for an ultra-cheap, big-screen TV that doesn't offer Mini-LED backlighting. I also recommend that you jump on this deal before Best Buy's Tech Fest Sale ends this Sunday.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/sony-just-handed-its-tv-business-to-tcl-heres-what-it-means-for-you">Sony just handed its TV business to TCL — here’s what it means for you</a></li><li><a href="https://www.tomsguide.com/tvs/tcl-tv-lineup-2026-new-sqd-mini-led-enhancement-mini-led-tvs-and-an-rgb-mini-led-tv">TCL TV lineup 2026: new SQD Mini-LED enhancement, Mini-LED TVs, and an RGB Mini-LED TV</a></li><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-finally-added-this-key-feature-to-its-2025-tvs-heres-why-you-should-use-it">TCL finally added this key feature to its 2025 TVs — here's why you should use it</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/qled-tvs/this-75-inch-mini-led-tv-for-usd649-is-the-best-big-screen-tv-deal-youll-see-this-week</link>
                                                                            <description>
                            <![CDATA[ This is one of the best big-screen, 4K TV deals you can get right now. The QM5K comes with Mini-LED backlighting, built-in Google TV and more. It's on sale for just a limited time as part of Best Buy's Tech Fest Sale. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">aNem9G9KmRetRNsSUqiztK</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/SRpjfVoeXivTaWPUeCZ46g-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 20 Mar 2026 16:27:49 +0000</pubDate>                                                                                                                                <updated>Fri, 20 Mar 2026 17:33:50 +0000</updated>
                                                                                                                                            <category><![CDATA[QLED TVs]]></category>
                                                    <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/SRpjfVoeXivTaWPUeCZ46g-1280-80.jpg">
                                                            <media:credit><![CDATA[Best Buy edited with Gemini]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[TCL QM5K 4K TV]]></media:description>                                                            <media:text><![CDATA[TCL QM5K 4K TV]]></media:text>
                                <media:title type="plain"><![CDATA[TCL QM5K 4K TV]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/SRpjfVoeXivTaWPUeCZ46g-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>When I found out that Best Buy was holding its <a href="https://www.tomsguide.com/sales-events/huge-best-buy-tv-sale-up-to-58-percent-off-oleds-and-mini-leds-from-samsung-and-lg">Tech Fest Sale</a> this weekend, I didn’t check the sale prices of the fanciest TVs first. Instead, I looked up the sale prices on the models that were already affordable to begin with. Oftentimes, the <a href="https://www.tomsguide.com/us/best-tv-deals,news-26008.html">best TV deals</a> during a sales event are the discounts on entry-level TVs.</p><p>Case in point? The <a href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46" target="_blank" rel="nofollow">75-inch TCL QM5K is just $649 at Best Buy</a> this weekend. This particular model was already one of the most affordable ways to lock down Mini-LED backlighting in an extra-large size point, but with Best Buy’s deal factored in, the value is off the charts. (For more deals, check out our guide to the best <a href="https://www.tomsguide.com/deals/march-madness-tv-sales">March Madness TV sales</a>).</p><div class="product"><a data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label="75" QM5K Mini-LED TV" data-dimension48="75" QM5K Mini-LED TV" data-dimension25="$649" href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="rRdoCj55QhqPM9wqYhpprE" name="TCL-QM5K-Mini-LED-TV-1-by-1-Deals-Block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/rRdoCj55QhqPM9wqYhpprE.jpg" mos="" align="middle" fullscreen="" width="2000" height="2000" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46" target="_blank" rel="nofollow" data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label='75" QM5K Mini-LED TV' data-dimension48='75" QM5K Mini-LED TV' data-dimension25="$649">75" QM5K Mini-LED TV: was $1199 now $649</a></strong><br>This is one of the best deals on a big-screen TV you'll find at Best Buy's Tech Fest Sale. The QM5K arrives with built-in Google TV features for all of your streaming needs, plus Dolby Vision support. Its handiest feature is its Mini-LED backlighting, which is tough to find at this price point. If you're going to shop for a big-screen TV in an affordable price range, this ought to be at the top of your list of candidates.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46" target="_blank" rel="nofollow" data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label="75" QM5K Mini-LED TV" data-dimension48="75" QM5K Mini-LED TV" data-dimension25="$649">View Deal</a></p></div><p>The QM5K's best feature is its display hardware. Take it from a TV expert: At the 75-inch size point, you <em>definitely</em> want Mini-LED backlighting instead of regular ol' LEDs.</p><p>Sure, the QM5K leverages a more modest array of Mini-LEDs when you compare it to higher-end Mini-LED TVs (like the <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review">TCL QM7K</a>), but it's still a gamechanger. This type of backlighting typically results in better contrast and higher brightness, and it's not exactly easy to come by in the QM5K's price range.</p><p>In other words, you're likely to enjoy a brighter, higher-contrast presentation on the QM5K than what you'll get with a similarly priced edge-lit TV. This is one of the reasons why I've been recommending this TV to folks whose number-one priority is saving money, but whose second priority is not ending up with a lousy picture.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="vCnRGsdCB3mnCFg3YgsEfh" name="TCL-QM5K-Mini-LED-TV-Google-TV-Home-Screen" alt="The TCL QM5K Mini-LED TV displaying the Google TV home screen" src="https://cdn.mos.cms.futurecdn.net/vCnRGsdCB3mnCFg3YgsEfh.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>The QM5K isn't exactly flush with features, but that's OK, as it's not really trying to be a the type of TV that would satisfy hardcore A/V enthusiasts. It comes with the Google TV software suite built right in, which is one of my preferred smart platforms.</p><p>Google TV offers a relatively easy experience in addition to a boat-load of downloadable apps. Its inclusion here is especially appreciated because the QM5K only comes with three HDMI inputs instead of the standard set of four. Google TV makes up for that omission by being a reliable platform for everyday use.</p><p>If you're trying to save some cash on a new 4K TV, I recommend that you avoid scraping the bottom of the barrel for an ultra-cheap, big-screen TV that doesn't offer Mini-LED backlighting. I also recommend that you jump on this deal before Best Buy's Tech Fest Sale ends this Sunday.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/sony-just-handed-its-tv-business-to-tcl-heres-what-it-means-for-you">Sony just handed its TV business to TCL — here’s what it means for you</a></li><li><a href="https://www.tomsguide.com/tvs/tcl-tv-lineup-2026-new-sqd-mini-led-enhancement-mini-led-tvs-and-an-rgb-mini-led-tv">TCL TV lineup 2026: new SQD Mini-LED enhancement, Mini-LED TVs, and an RGB Mini-LED TV</a></li><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-finally-added-this-key-feature-to-its-2025-tvs-heres-why-you-should-use-it">TCL finally added this key feature to its 2025 TVs — here's why you should use it</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ One of my favorite Mini-LED TVs just crashed to $478 at Best Buy — and it got 4 stars in our review ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Spring has sprung, and so have some sensational, seasonal TV sales. As a matter of fact, it’s one of the best times of the year to shop for a new TV, since most of the biggest brands in the business are gearing up to release their newest models. This means that many of the best sets you can buy are falling in price.</p><p>Look no further than the TCL QM6K, one of my favorite affordable Mini-LED TVs. Right now, you can get the <a href="https://www.bestbuy.com/product/tcl-55-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5C" target="_blank" rel="nofollow">55-inch QM6K for just $478 at Best Buy</a> during the store’s Tech Fest sales event. It’s one of the best entry-level Mini-LED TVs you can buy right now, as it blends an excellent set of features with terrific performance for the price.</p><div class="product"><a data-dimension112="36cbbe6c-be4d-485b-8d16-585113fe189b" data-action="Deal Block" data-label="55” QM6K 4K Mini-LED TV" data-dimension48="55” QM6K 4K Mini-LED TV" data-dimension25="$478" href="https://www.bestbuy.com/product/tcl-55-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5C" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:61.93%;"><img id="sLXAogfAqKCUoj8BruTYZm" name="712IORjS-gL._AC_SL1500_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/sLXAogfAqKCUoj8BruTYZm.jpg" mos="" align="middle" fullscreen="" width="1500" height="929" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-55-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5C" target="_blank" rel="nofollow" data-dimension112="36cbbe6c-be4d-485b-8d16-585113fe189b" data-action="Deal Block" data-label="55” QM6K 4K Mini-LED TV" data-dimension48="55” QM6K 4K Mini-LED TV" data-dimension25="$478">55” QM6K 4K Mini-LED TV: was $799 now $478</a></strong><br>For several months, the TCL QM6K has been one of my go-to recommendations for folks looking for a quality screen on a budget. It's a budget-friendly, 55-inch Mini-LED TV that's perfect for folks who want to upgrade to dependable, good-looking TV without spending too much. This deal is part of Best Buy's Tech Fest Sale, which ends on Sunday, March 22.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-55-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5C" target="_blank" rel="nofollow" data-dimension112="36cbbe6c-be4d-485b-8d16-585113fe189b" data-action="Deal Block" data-label="55” QM6K 4K Mini-LED TV" data-dimension48="55” QM6K 4K Mini-LED TV" data-dimension25="$478">View Deal</a></p></div><p>The key to the QM6K's success is its Mini-LED backlighting. If you were to spend just a bit less on a cheaper TV, you’d probably end up with one that <em>doesn’t</em> offer Mini-LED. This would be a mistake.</p><p>With Mini-LEDs in tow, the QM6K delivers higher brightness and better overall contrast than most garden-variety LED TVs. This array of teeny-tiny LEDs allows for a more cinematic presentation, and it's the main reason why my colleague, Malcolm McMillan, described being "blown away by the picture quality" in his <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review">TCL QM6K review</a>.</p><p>The QM6K also arrives with a nifty set of features for streaming and gaming. It supports 4K gaming at 120Hz across two of its HDMI inputs, which is the highest 4K spec for current-gen consoles. With a gaming PC linked up, the QM6K supports 4K/144Hz performance. This gaming support is about as good as you'll find in the QM6K's price bracket.</p><p>Folks who do their fair share of streaming will appreciate the fact that the QM6K is built around Google TV. It's one of my favorite streaming platforms, as it combines an easy-to-use interface with a vast selection of downloadable apps.</p><p>Best Buy's Tech Fest Sale comes to an end this Sunday, March 22. If you're ready to upgrade to a new 4K TV and you'd rather not spend an arm and a leg, the QM6K is a terrific pick.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/its-time-to-replace-your-tv-if-you-notice-any-of-these-5-issues">I test TVs for a living — 5 signs it's time to replace your TV</a></li><li><a href="https://www.tomsguide.com/tvs/ive-set-up-hundreds-of-tvs-in-my-career-here-are-6-mistakes-people-make-when-setting-up-a-new-tv">I’ve set up hundreds of TVs in my career — here are 6 mistakes people make when setting up a new TV</a></li><li><a href="https://www.tomsguide.com/tvs/5-tcl-tv-settings-to-change-for-the-best-possible-picture">5 TCL TV settings to change for the best possible picture</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/qled-tvs/one-of-my-favorite-mini-led-tvs-just-crashed-to-usd478-at-best-buy-and-it-got-4-stars-in-our-review</link>
                                                                            <description>
                            <![CDATA[ Looking for one of the best Mini-LED TVs you can buy on budget? Right now, the TCL QM6K QD Mini-LED TV is just $478 during Best Buy's Tech Fest Sale. As a TV expert, it's one of my favorite affordable TVs on shelves. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">woyLmeDYA7FrzFXAFvxHyR</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/HXzV37kKUxAE27CAjPDKU5-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 19 Mar 2026 16:17:15 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[QLED TVs]]></category>
                                                    <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/HXzV37kKUxAE27CAjPDKU5-1280-80.jpg">
                                                            <media:credit><![CDATA[TCL]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[TCL QM6K ]]></media:description>                                                            <media:text><![CDATA[TCL QM6K ]]></media:text>
                                <media:title type="plain"><![CDATA[TCL QM6K ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/HXzV37kKUxAE27CAjPDKU5-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Spring has sprung, and so have some sensational, seasonal TV sales. As a matter of fact, it’s one of the best times of the year to shop for a new TV, since most of the biggest brands in the business are gearing up to release their newest models. This means that many of the best sets you can buy are falling in price.</p><p>Look no further than the TCL QM6K, one of my favorite affordable Mini-LED TVs. Right now, you can get the <a href="https://www.bestbuy.com/product/tcl-55-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5C" target="_blank" rel="nofollow">55-inch QM6K for just $478 at Best Buy</a> during the store’s Tech Fest sales event. It’s one of the best entry-level Mini-LED TVs you can buy right now, as it blends an excellent set of features with terrific performance for the price.</p><div class="product"><a data-dimension112="36cbbe6c-be4d-485b-8d16-585113fe189b" data-action="Deal Block" data-label="55” QM6K 4K Mini-LED TV" data-dimension48="55” QM6K 4K Mini-LED TV" data-dimension25="$478" href="https://www.bestbuy.com/product/tcl-55-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5C" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:61.93%;"><img id="sLXAogfAqKCUoj8BruTYZm" name="712IORjS-gL._AC_SL1500_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/sLXAogfAqKCUoj8BruTYZm.jpg" mos="" align="middle" fullscreen="" width="1500" height="929" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-55-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5C" target="_blank" rel="nofollow" data-dimension112="36cbbe6c-be4d-485b-8d16-585113fe189b" data-action="Deal Block" data-label="55” QM6K 4K Mini-LED TV" data-dimension48="55” QM6K 4K Mini-LED TV" data-dimension25="$478">55” QM6K 4K Mini-LED TV: was $799 now $478</a></strong><br>For several months, the TCL QM6K has been one of my go-to recommendations for folks looking for a quality screen on a budget. It's a budget-friendly, 55-inch Mini-LED TV that's perfect for folks who want to upgrade to dependable, good-looking TV without spending too much. This deal is part of Best Buy's Tech Fest Sale, which ends on Sunday, March 22.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-55-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5C" target="_blank" rel="nofollow" data-dimension112="36cbbe6c-be4d-485b-8d16-585113fe189b" data-action="Deal Block" data-label="55” QM6K 4K Mini-LED TV" data-dimension48="55” QM6K 4K Mini-LED TV" data-dimension25="$478">View Deal</a></p></div><p>The key to the QM6K's success is its Mini-LED backlighting. If you were to spend just a bit less on a cheaper TV, you’d probably end up with one that <em>doesn’t</em> offer Mini-LED. This would be a mistake.</p><p>With Mini-LEDs in tow, the QM6K delivers higher brightness and better overall contrast than most garden-variety LED TVs. This array of teeny-tiny LEDs allows for a more cinematic presentation, and it's the main reason why my colleague, Malcolm McMillan, described being "blown away by the picture quality" in his <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review">TCL QM6K review</a>.</p><p>The QM6K also arrives with a nifty set of features for streaming and gaming. It supports 4K gaming at 120Hz across two of its HDMI inputs, which is the highest 4K spec for current-gen consoles. With a gaming PC linked up, the QM6K supports 4K/144Hz performance. This gaming support is about as good as you'll find in the QM6K's price bracket.</p><p>Folks who do their fair share of streaming will appreciate the fact that the QM6K is built around Google TV. It's one of my favorite streaming platforms, as it combines an easy-to-use interface with a vast selection of downloadable apps.</p><p>Best Buy's Tech Fest Sale comes to an end this Sunday, March 22. If you're ready to upgrade to a new 4K TV and you'd rather not spend an arm and a leg, the QM6K is a terrific pick.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/its-time-to-replace-your-tv-if-you-notice-any-of-these-5-issues">I test TVs for a living — 5 signs it's time to replace your TV</a></li><li><a href="https://www.tomsguide.com/tvs/ive-set-up-hundreds-of-tvs-in-my-career-here-are-6-mistakes-people-make-when-setting-up-a-new-tv">I’ve set up hundreds of TVs in my career — here are 6 mistakes people make when setting up a new TV</a></li><li><a href="https://www.tomsguide.com/tvs/5-tcl-tv-settings-to-change-for-the-best-possible-picture">5 TCL TV settings to change for the best possible picture</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I finally found a phone I can stare at for hours without tiring my eyes, and now I'm spoiled ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Display tech is a major focus for brands at <a href="https://www.tomsguide.com/tag/mwc">MWC 2026</a>. Samsung just introduced its new <a href="https://www.tomsguide.com/phones/samsung-phones/samsung-galaxy-s26-ultra-has-the-worlds-first-privacy-display-heres-how-it-works">Privacy Display feature</a> on the Galaxy S26 Ultra, while Lenovo has unveiled its expandable <a href="https://www.tomsguide.com/gaming/handheld-gaming/i-went-hands-on-with-lenovos-concept-handheld-and-its-both-awesome-and-weird">Legion Go Fold Concept</a> here on the show floor in Barcelona.</p><p>TCL, however, takes a different route compared to most brands. Instead of chasing higher brightness or refresh rates, the company has focused on making displays easier on the eyes with its <a href="https://www.tomsguide.com/phones/android-phones/the-most-impressive-phone-innovation-right-now-isnt-ai-its-this-color-epaper-display-coming-to-the-us">NXTPAPER tech</a>. </p><p>I've personally been interested in NXTPAPER for a while, especially since my screen-on time keeps increasing and doesn't seem to be going down anytime soon. That said, I've never fully considered switching to a TCL phone because the overall hardware and specs didn't quite match up with competitors.</p><p>At MWC 2026, TCL has introduced the NXTPAPER 70 Pro, a new smartphone that not only brings the latest version of its eye-friendly display but also comes with hardware that finally feels competitive. It might just be the first TCL phone that makes me seriously consider switching. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MFij2G7gHgSwM6RqTAYwpE" name="tcl-nxtpaper-70-pro-hands-on-6" alt="Hands-on with the TC NXTPAPER 70 Pro at MWC 2026" src="https://cdn.mos.cms.futurecdn.net/MFij2G7gHgSwM6RqTAYwpE.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sanuj Bhatia / Tom's Guide)</span></figcaption></figure><p>The NXTPAPER 70 Pro is available now in Asia, Europe, and Latin America, starting at €299. It isn't currently available in the US, but TCL says it will arrive sometime in April 2026, so the wait should not be too long.</p><p>The NXTPAPER 70 Pro features a large 6.9-inch display, which uses the company's NXTPAPER 4.0 tech. The moment you pick up the phone and touch the screen, you immediately feel the difference compared to other smartphones. It doesn't feel like a typical glossy glass panel. Instead, it has a matte surface, using a nano-textured finish that mimics paper. </p><p>TCL says the NXTPAPER tech on the 70 Pro reduces eye fatigue by minimizing exposure to blue light, while the textured display also helps cut down glare. It isn't the brightest display I've seen on a smartphone, but it still supports a 120Hz refresh rate, so you don't feel like you are sacrificing much compared to other Android phones. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Vxua3uqVDReMZzFRk2S5nE" name="tcl-nxtpaper-70-pro-hands-on-7" alt="Hands-on with the TC NXTPAPER 70 Pro at MWC 2026" src="https://cdn.mos.cms.futurecdn.net/Vxua3uqVDReMZzFRk2S5nE.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sanuj Bhatia / Tom's Guide)</span></figcaption></figure><p>The real magic sits on the side of the phone. The NXTPAPER 70 Pro includes a dedicated slide key that switches the display into NXTPAPER mode. It's basically a switch to transform your phone into a Kindle or Kobo on demand.</p><p>TCL offers three NXTPAPER modes: Max Ink Mode, Ink Paper Mode, and Color Paper Mode. The Color Paper Mode retains some color while applying a softer paper-like finish that is much easier on the eyes. What really impressed me about this mode is that the phone still functions like a "full" Android device with smooth animations and all features available, but with the added comfort of a matte, paper-style display.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mnJXsCp5XpLtKRiLAy4XqE" name="tcl-nxtpaper-70-pro-hands-on-4" alt="Hands-on with the TC NXTPAPER 70 Pro at MWC 2026" src="https://cdn.mos.cms.futurecdn.net/mnJXsCp5XpLtKRiLAy4XqE.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sanuj Bhatia / Tom's Guide)</span></figcaption></figure><p>The Ink Paper Mode switches the display to a black-and-white interface, while Max Ink Mode essentially transforms the device into an e-reader built for long reading sessions. TCL claims the phone can deliver up to seven days of reading time and up to 26 days on standby in this mode. </p><p>What's even more impressive is that you can use the device as a note-taking tool on the go, as it supports TCL's T-Pen stylus. There isn't any slot on the phone to store the stylus, though, so you'd have to carry that separately.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HN6q92Zy7QvPdya5SS8stE" name="tcl-nxtpaper-70-pro-hands-on-1" alt="Hands-on with the TC NXTPAPER 70 Pro at MWC 2026" src="https://cdn.mos.cms.futurecdn.net/HN6q92Zy7QvPdya5SS8stE.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sanuj Bhatia / Tom's Guide)</span></figcaption></figure><p>Apart from the paper-like display, the TCL NXTPAPER 70 Pro seems like a solid mid-range phone as well. It runs on a MediaTek Dimensity 7300 processor and is backed by a sizeable 5,200mAh battery. </p><p>There is support for up to 30W wired fast charging, although if you primarily use the phone in NXTPAPER mode, you probably will not need to charge it that often. It comes with 8GB of RAM, and thankfully starts with 256GB of storage on the base variant. </p><p>The phone runs on Android 16 out of the box with TCL's own Android skin on top, which I found smooth and fluid to navigate. TCL has also integrated several AI features into its software, like photo editing and text summary/generation tools, plus you get access to Google's Gemini as well. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="zwhxVm5urqNZNMg743TrsE" name="tcl-nxtpaper-70-pro-hands-on-9" alt="Hands-on with the TC NXTPAPER 70 Pro at MWC 2026" src="https://cdn.mos.cms.futurecdn.net/zwhxVm5urqNZNMg743TrsE.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sanuj Bhatia / Tom's Guide)</span></figcaption></figure><p>On the camera side, you get a 50MP primary sensor paired with an 8MP ultra-wide lens and a 32MP front camera for selfies and video calls. We didn't get enough time to properly test the camera during our short hands-on session at the TCL booth, though I'd keep expectations on the lower side in this area, given the budget nature of this phone.</p><p>If you're someone who wants to cut down on screen time, or make what screen time you do have better, the TCL NXTPAPER 70 Pro could be an excellent choice. But if you'd rather have something a little more eccentric as your next device, then check out the other stuff we've covered during <a href="https://www.tomsguide.com/tag/mwc">MWC 2026</a>, and what we've nominated <a href="https://www.tomsguide.com/phones/mwc-2026-best-in-show-awards-the-10-top-mobile-gadgets-you-need-to-see">MWC 2026 Best in Show</a>.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/5-tcl-tv-settings-to-change-for-the-best-possible-picturehttps://www.tomsguide.com/computing/tablets/i-tried-the-tcl-nxtpaper-11-plus-and-this-budget-tablet-is-easily-my-ipad-killer-heres-why">5 TCL TV settings to change for the best possible picture</a></li><li><a href="https://www.tomsguide.com/computing/tablets/i-tried-the-tcl-nxtpaper-11-plus-and-this-budget-tablet-is-easily-my-ipad-killer-heres-why">I tried the TCL NXTPAPER 11 Plus and this budget tablet is easily my iPad killer</a></li><li><a href="https://www.tomsguide.com/opinion/i-tried-3-different-styluses-with-the-pixel-tablet-and-this-is-the-one-id-buy">The Pixel Tablet is even better with a stylus and I found the best one</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/phones/i-used-tcl-nxtpaper-70-pro-mwc-2026</link>
                                                                            <description>
                            <![CDATA[ The TCL NXTPAPER 70 Pro features a 6.9-inch matte display with eye-friendly modes, stylus support, and long battery life at €299. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">pU6pYwmVXaCTeFGmwpAX4W</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Xp6StWm8pAdUEAYvTAhXpE-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 04 Mar 2026 10:06:24 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Phones]]></category>
                                                                                                                    <dc:creator><![CDATA[ Sanuj Bhatia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/8p5BvMVA7cnu5AWkxnTjRC.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Xp6StWm8pAdUEAYvTAhXpE-1280-80.jpg">
                                                            <media:credit><![CDATA[Sanuj Bhatia / Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Hands-on with the TC NXTPAPER 70 Pro at MWC 2026]]></media:description>                                                            <media:text><![CDATA[Hands-on with the TC NXTPAPER 70 Pro at MWC 2026]]></media:text>
                                <media:title type="plain"><![CDATA[Hands-on with the TC NXTPAPER 70 Pro at MWC 2026]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Xp6StWm8pAdUEAYvTAhXpE-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Display tech is a major focus for brands at <a href="https://www.tomsguide.com/tag/mwc">MWC 2026</a>. Samsung just introduced its new <a href="https://www.tomsguide.com/phones/samsung-phones/samsung-galaxy-s26-ultra-has-the-worlds-first-privacy-display-heres-how-it-works">Privacy Display feature</a> on the Galaxy S26 Ultra, while Lenovo has unveiled its expandable <a href="https://www.tomsguide.com/gaming/handheld-gaming/i-went-hands-on-with-lenovos-concept-handheld-and-its-both-awesome-and-weird">Legion Go Fold Concept</a> here on the show floor in Barcelona.</p><p>TCL, however, takes a different route compared to most brands. Instead of chasing higher brightness or refresh rates, the company has focused on making displays easier on the eyes with its <a href="https://www.tomsguide.com/phones/android-phones/the-most-impressive-phone-innovation-right-now-isnt-ai-its-this-color-epaper-display-coming-to-the-us">NXTPAPER tech</a>. </p><p>I've personally been interested in NXTPAPER for a while, especially since my screen-on time keeps increasing and doesn't seem to be going down anytime soon. That said, I've never fully considered switching to a TCL phone because the overall hardware and specs didn't quite match up with competitors.</p><p>At MWC 2026, TCL has introduced the NXTPAPER 70 Pro, a new smartphone that not only brings the latest version of its eye-friendly display but also comes with hardware that finally feels competitive. It might just be the first TCL phone that makes me seriously consider switching. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MFij2G7gHgSwM6RqTAYwpE" name="tcl-nxtpaper-70-pro-hands-on-6" alt="Hands-on with the TC NXTPAPER 70 Pro at MWC 2026" src="https://cdn.mos.cms.futurecdn.net/MFij2G7gHgSwM6RqTAYwpE.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sanuj Bhatia / Tom's Guide)</span></figcaption></figure><p>The NXTPAPER 70 Pro is available now in Asia, Europe, and Latin America, starting at €299. It isn't currently available in the US, but TCL says it will arrive sometime in April 2026, so the wait should not be too long.</p><p>The NXTPAPER 70 Pro features a large 6.9-inch display, which uses the company's NXTPAPER 4.0 tech. The moment you pick up the phone and touch the screen, you immediately feel the difference compared to other smartphones. It doesn't feel like a typical glossy glass panel. Instead, it has a matte surface, using a nano-textured finish that mimics paper. </p><p>TCL says the NXTPAPER tech on the 70 Pro reduces eye fatigue by minimizing exposure to blue light, while the textured display also helps cut down glare. It isn't the brightest display I've seen on a smartphone, but it still supports a 120Hz refresh rate, so you don't feel like you are sacrificing much compared to other Android phones. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Vxua3uqVDReMZzFRk2S5nE" name="tcl-nxtpaper-70-pro-hands-on-7" alt="Hands-on with the TC NXTPAPER 70 Pro at MWC 2026" src="https://cdn.mos.cms.futurecdn.net/Vxua3uqVDReMZzFRk2S5nE.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sanuj Bhatia / Tom's Guide)</span></figcaption></figure><p>The real magic sits on the side of the phone. The NXTPAPER 70 Pro includes a dedicated slide key that switches the display into NXTPAPER mode. It's basically a switch to transform your phone into a Kindle or Kobo on demand.</p><p>TCL offers three NXTPAPER modes: Max Ink Mode, Ink Paper Mode, and Color Paper Mode. The Color Paper Mode retains some color while applying a softer paper-like finish that is much easier on the eyes. What really impressed me about this mode is that the phone still functions like a "full" Android device with smooth animations and all features available, but with the added comfort of a matte, paper-style display.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mnJXsCp5XpLtKRiLAy4XqE" name="tcl-nxtpaper-70-pro-hands-on-4" alt="Hands-on with the TC NXTPAPER 70 Pro at MWC 2026" src="https://cdn.mos.cms.futurecdn.net/mnJXsCp5XpLtKRiLAy4XqE.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sanuj Bhatia / Tom's Guide)</span></figcaption></figure><p>The Ink Paper Mode switches the display to a black-and-white interface, while Max Ink Mode essentially transforms the device into an e-reader built for long reading sessions. TCL claims the phone can deliver up to seven days of reading time and up to 26 days on standby in this mode. </p><p>What's even more impressive is that you can use the device as a note-taking tool on the go, as it supports TCL's T-Pen stylus. There isn't any slot on the phone to store the stylus, though, so you'd have to carry that separately.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HN6q92Zy7QvPdya5SS8stE" name="tcl-nxtpaper-70-pro-hands-on-1" alt="Hands-on with the TC NXTPAPER 70 Pro at MWC 2026" src="https://cdn.mos.cms.futurecdn.net/HN6q92Zy7QvPdya5SS8stE.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sanuj Bhatia / Tom's Guide)</span></figcaption></figure><p>Apart from the paper-like display, the TCL NXTPAPER 70 Pro seems like a solid mid-range phone as well. It runs on a MediaTek Dimensity 7300 processor and is backed by a sizeable 5,200mAh battery. </p><p>There is support for up to 30W wired fast charging, although if you primarily use the phone in NXTPAPER mode, you probably will not need to charge it that often. It comes with 8GB of RAM, and thankfully starts with 256GB of storage on the base variant. </p><p>The phone runs on Android 16 out of the box with TCL's own Android skin on top, which I found smooth and fluid to navigate. TCL has also integrated several AI features into its software, like photo editing and text summary/generation tools, plus you get access to Google's Gemini as well. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="zwhxVm5urqNZNMg743TrsE" name="tcl-nxtpaper-70-pro-hands-on-9" alt="Hands-on with the TC NXTPAPER 70 Pro at MWC 2026" src="https://cdn.mos.cms.futurecdn.net/zwhxVm5urqNZNMg743TrsE.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sanuj Bhatia / Tom's Guide)</span></figcaption></figure><p>On the camera side, you get a 50MP primary sensor paired with an 8MP ultra-wide lens and a 32MP front camera for selfies and video calls. We didn't get enough time to properly test the camera during our short hands-on session at the TCL booth, though I'd keep expectations on the lower side in this area, given the budget nature of this phone.</p><p>If you're someone who wants to cut down on screen time, or make what screen time you do have better, the TCL NXTPAPER 70 Pro could be an excellent choice. But if you'd rather have something a little more eccentric as your next device, then check out the other stuff we've covered during <a href="https://www.tomsguide.com/tag/mwc">MWC 2026</a>, and what we've nominated <a href="https://www.tomsguide.com/phones/mwc-2026-best-in-show-awards-the-10-top-mobile-gadgets-you-need-to-see">MWC 2026 Best in Show</a>.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/5-tcl-tv-settings-to-change-for-the-best-possible-picturehttps://www.tomsguide.com/computing/tablets/i-tried-the-tcl-nxtpaper-11-plus-and-this-budget-tablet-is-easily-my-ipad-killer-heres-why">5 TCL TV settings to change for the best possible picture</a></li><li><a href="https://www.tomsguide.com/computing/tablets/i-tried-the-tcl-nxtpaper-11-plus-and-this-budget-tablet-is-easily-my-ipad-killer-heres-why">I tried the TCL NXTPAPER 11 Plus and this budget tablet is easily my iPad killer</a></li><li><a href="https://www.tomsguide.com/opinion/i-tried-3-different-styluses-with-the-pixel-tablet-and-this-is-the-one-id-buy">The Pixel Tablet is even better with a stylus and I found the best one</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ TCL’s Nextpaper AMOLED screen is so good I want it on every new phone ]]></title>
                                                                                                <dc:content><![CDATA[ <p>OLED is already the gold standard for smartphone displays. The brightness, color accuracy and power efficiency over LCD has meant it's rare to find any new phone with something other than OLED. And AMOLED (made by Samsung Display) is basically as good as it gets. </p><p>However, AMOLED isn't always easy on the eyes, which is why TCL is combining it with its paper-like display tech to develop a screen that's not only bright and colorful, but doesn't put a strain on your when reading. TCL put this new tech on display at <a href="https://www.tomsguide.com/tag/mwc">MWC 2026</a> with the new Nxtpaper AMOLED.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="BZ5H8CAigCdj44CpFoCpb6" name="TCL NXTPAPER AMOLED-3" alt="TCL Nxtpaper AMOLED" src="https://cdn.mos.cms.futurecdn.net/BZ5H8CAigCdj44CpFoCpb6.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Apart from the boost in brightness, the biggest improvement is the display's anti-glare properties. Anti-reflective displays are becoming more common on tech today, such as the nano-texture screens on the Apple <a href="https://www.tomsguide.com/computing/macbooks/macbook-pro-m5-review">MacBook Pro</a> or <a href="https://www.tomsguide.com/tablets/ipads/ipad-pro-2024">iPad Pro</a>. </p><p>By contrast, TCL's screen tech tries to match natural light via "circular polarization." This severely reduces glare by effectively rotating the light as it passes through the layers of a display, meaning it can't just shine back out and spoil what the screen's actually trying to show you.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kJrx4EH5A2boVJqT5L3zx4" name="TCL NXTPAPER AMOLED-2-LEDE" alt="TCL Nxtpaper AMOLED screen" src="https://cdn.mos.cms.futurecdn.net/kJrx4EH5A2boVJqT5L3zx4.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Blue light emission is also something that TCL's been working on. That dastardly part of the spectrum that can cause sleep disruption or even damage to your eyes is a problem smartphone makers have been trying to address for years. TCL claims that Nxtpaper AMOLED can reduce over 97% of blue light emitted by a regular display.</p><p>A pillar of Nxtpaper's appeal is its benefits when reading, and just like the existing version, the AMOLED edition can be switched into full greyscale mode. But grey isn't always purely grey, because TCL gives this display adjustable warmth and brightness depending on the time of day and surrounding light conditions. Apparently things can go as dim as 1 nit according to TCL's figures, hopefully avoiding headaches when reading in the dark.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Qs6MEWWyi6fUi8RdCYTqF5" name="TCL NXTPAPER AMOLED-1-LEDE" alt="TCL Nxtpaper AMOLED anti-glare" src="https://cdn.mos.cms.futurecdn.net/Qs6MEWWyi6fUi8RdCYTqF5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Despite all of these tweaks to the AMOLED formula, TCL promises these displays are still color accurate with full P3 color gamut coverage (read: all the color you'd expect a premium display to offer). The company's also promising the smooth 120Hz refresh rate you'd expect from a new smartphone display, and a peak brightness of 3,200 nits. Considering how easy it was to read these displays while under full-on expo hall lighting, I see no reason to doubt these figures,.</p><p>Although the Nxtpaper 70 Pro is on its way to store shelves right now, Nxtpaper AMOLED remains a concept. But it's a concept you can literally see works, and I hope we do see this on actual products in the near future. Or at least at next <a href="https://www.tomsguide.com/tag/mwc">MWC</a>.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/news/live/apple-march-event-2026-live">Apple March event LIVE: MacBook Air M5, MacBook Pro M5 Pro, iPhone 17e and every big announcement</a></li><li><a href="https://www.tomsguide.com/phones/samsung-phones/galaxy-s26-ultra-lab-tests-show-that-its-dimmer-than-s25-ultra-even-with-privacy-display-turned-off">Galaxy S26 Ultra lab tests show that it's dimmer than S25 Ultra — even with Privacy Display turned off</a></li><li><a href="https://www.tomsguide.com/phones/android-phones/leica-leitzphone-vs-google-pixel-10-pro-xl-photo-shoot-out">I took 200 photos on the Leica Leitzphone and the Google Pixel 10 Pro XL to see which is better — and it’s not even close</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/phones/android-phones/tcls-nextpaper-amoled-screen-is-so-good-i-want-it-on-every-new-phone</link>
                                                                            <description>
                            <![CDATA[ The latest paper-like display tech from TCL looks awesome while being better for your eyes and easier to look at. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">2vDW5urCeNYFpbEFqwve4j</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/YhV4mmHyyUg6Vixyv5FP96-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 03 Mar 2026 18:44:52 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Android Phones]]></category>
                                                    <category><![CDATA[Phones]]></category>
                                                                                                <author><![CDATA[ richard.priday@futurenet.com (Richard Priday) ]]></author>                    <dc:creator><![CDATA[ Richard Priday ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/H8H8NuPiz5fYjKkGVnSDjV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Richard is a writer based in London, covering news, reviews, how-tos and buying guides for mobile devices like smartphones, tablets and laptops, as well as other topics like gaming and audio.&lt;/p&gt;
&lt;p&gt;He has an impractically large collection of devices, gathered over his five years in tech journalism. Using this broad stock of gadgets, he can compare and contrast a new product&#039;s features with similar devices&#039;, and figure out if something&#039;s a new class leader, or if a different gadget can do what it does better.&lt;/p&gt;
&lt;p&gt;While he enjoys writing about the latest iPhones and Samsung Galaxys, he&#039;s also an advocate of buying cheaper, refurbished and second-hand devices. He hopes that he can help gadget buyers to cut through the hype around new products, and upgrade to something that suits their needs and budget every time, whether it&#039;s brand new or pre-owned.&lt;/p&gt;
&lt;p&gt;Richard has an M.A. in Magazine Journalism from the University of Sheffield&#039;s world-renowned Department of Journalism Studies, and has also written for WIRED U.K., The Register and Creative Bloq. Aside from mobile devices, he also has a great appreciation for specialty coffee, and is never seen in the office without his Aeropress close at hand.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/YhV4mmHyyUg6Vixyv5FP96-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[TCL Nxtpaper AMOLED anti-glare]]></media:description>                                                            <media:text><![CDATA[TCL Nxtpaper AMOLED anti-glare]]></media:text>
                                <media:title type="plain"><![CDATA[TCL Nxtpaper AMOLED anti-glare]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/YhV4mmHyyUg6Vixyv5FP96-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>OLED is already the gold standard for smartphone displays. The brightness, color accuracy and power efficiency over LCD has meant it's rare to find any new phone with something other than OLED. And AMOLED (made by Samsung Display) is basically as good as it gets. </p><p>However, AMOLED isn't always easy on the eyes, which is why TCL is combining it with its paper-like display tech to develop a screen that's not only bright and colorful, but doesn't put a strain on your when reading. TCL put this new tech on display at <a href="https://www.tomsguide.com/tag/mwc">MWC 2026</a> with the new Nxtpaper AMOLED.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="BZ5H8CAigCdj44CpFoCpb6" name="TCL NXTPAPER AMOLED-3" alt="TCL Nxtpaper AMOLED" src="https://cdn.mos.cms.futurecdn.net/BZ5H8CAigCdj44CpFoCpb6.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Apart from the boost in brightness, the biggest improvement is the display's anti-glare properties. Anti-reflective displays are becoming more common on tech today, such as the nano-texture screens on the Apple <a href="https://www.tomsguide.com/computing/macbooks/macbook-pro-m5-review">MacBook Pro</a> or <a href="https://www.tomsguide.com/tablets/ipads/ipad-pro-2024">iPad Pro</a>. </p><p>By contrast, TCL's screen tech tries to match natural light via "circular polarization." This severely reduces glare by effectively rotating the light as it passes through the layers of a display, meaning it can't just shine back out and spoil what the screen's actually trying to show you.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kJrx4EH5A2boVJqT5L3zx4" name="TCL NXTPAPER AMOLED-2-LEDE" alt="TCL Nxtpaper AMOLED screen" src="https://cdn.mos.cms.futurecdn.net/kJrx4EH5A2boVJqT5L3zx4.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Blue light emission is also something that TCL's been working on. That dastardly part of the spectrum that can cause sleep disruption or even damage to your eyes is a problem smartphone makers have been trying to address for years. TCL claims that Nxtpaper AMOLED can reduce over 97% of blue light emitted by a regular display.</p><p>A pillar of Nxtpaper's appeal is its benefits when reading, and just like the existing version, the AMOLED edition can be switched into full greyscale mode. But grey isn't always purely grey, because TCL gives this display adjustable warmth and brightness depending on the time of day and surrounding light conditions. Apparently things can go as dim as 1 nit according to TCL's figures, hopefully avoiding headaches when reading in the dark.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Qs6MEWWyi6fUi8RdCYTqF5" name="TCL NXTPAPER AMOLED-1-LEDE" alt="TCL Nxtpaper AMOLED anti-glare" src="https://cdn.mos.cms.futurecdn.net/Qs6MEWWyi6fUi8RdCYTqF5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Despite all of these tweaks to the AMOLED formula, TCL promises these displays are still color accurate with full P3 color gamut coverage (read: all the color you'd expect a premium display to offer). The company's also promising the smooth 120Hz refresh rate you'd expect from a new smartphone display, and a peak brightness of 3,200 nits. Considering how easy it was to read these displays while under full-on expo hall lighting, I see no reason to doubt these figures,.</p><p>Although the Nxtpaper 70 Pro is on its way to store shelves right now, Nxtpaper AMOLED remains a concept. But it's a concept you can literally see works, and I hope we do see this on actual products in the near future. Or at least at next <a href="https://www.tomsguide.com/tag/mwc">MWC</a>.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/news/live/apple-march-event-2026-live">Apple March event LIVE: MacBook Air M5, MacBook Pro M5 Pro, iPhone 17e and every big announcement</a></li><li><a href="https://www.tomsguide.com/phones/samsung-phones/galaxy-s26-ultra-lab-tests-show-that-its-dimmer-than-s25-ultra-even-with-privacy-display-turned-off">Galaxy S26 Ultra lab tests show that it's dimmer than S25 Ultra — even with Privacy Display turned off</a></li><li><a href="https://www.tomsguide.com/phones/android-phones/leica-leitzphone-vs-google-pixel-10-pro-xl-photo-shoot-out">I took 200 photos on the Leica Leitzphone and the Google Pixel 10 Pro XL to see which is better — and it’s not even close</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Looking for a ‘dumb TV’ experience? I found a hidden Google TV feature that lets you use your smart TV offline ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Google TV is one of the most popular smart platforms. These days, TVs made by Hisense, Sony and TCL all arrive with Google’s streaming software built right into the experience right out of the box.</p><p>If you don’t want to sign up for a Google Account or you’d rather not connect your TV to the internet at all, Google TV offers a way for you to bypass the experience altogether, leaving your TV free to pipe in pictures the old-fashioned way: from a cable box, satellite, indoor antenna, or physical media player.</p><p>To enable Basic Mode, you need to do so during the TV's initial setup. This means that if you've previously set up Google TV, you'll need to perform a factory reset on your TV. If you're setting up Google TV for the first time, skip to step #2.</p><section class="howto-block">                    <h3>1. Perform a factory reset on your Google TV</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/LxEYA56fsc4EsWY7hmw3SM.jpg"                                        alt="A TV on a media console displaying Google TV's System settings menu with the Factory Reset option highlighted"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/LxEYA56fsc4EsWY7hmw3SM.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Performing a factory reset will erase all of your personal data, including apps, login information and any changes you may have made to the TV's settings. Take this into consideration before resetting your TV.</p><p>To perform a factory reset on a Google TV, open the<strong> Settings menu</strong>, select the <strong>All Settings</strong> option, scroll down to the <strong>System</strong> submenu and then select <strong>About. </strong>From here, it's just a matter of selecting the <strong>Reset </strong>option, which will prompt you to either accept or cancel your decision to reset Google TV.</p></p>                </section><section class="howto-block">                    <h3>2. Access Basic Mode in Google TV </h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/vggKGnB7uQ4PJEfFNvkBcF.jpg"                                        alt="A TV on a media console displaying the step in the Google TV setup process that asks the user to select their region or country."                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/vggKGnB7uQ4PJEfFNvkBcF.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>During the initial setup process, your Google TV will guide you through several initial steps. Once you reach the welcome screen, <strong>select your preferred language</strong>. Next, <strong>select your region or country</strong>.</p><p>Afterwards, Google TV will give you two options: Set up Google TV and <strong>Set up basic TV</strong>. Choose the latter.</p></p>                </section><section class="howto-block">                    <h3>3. If prompted, decline to setup Wi-Fi connectivity</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/nYBhg2oWBhhSj7cDrYDqC6.jpg"                                        alt="A TV on a media console displaying a step of the Google TV setup process which asks the user if they'd like to skip Wi-Fi setup."                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/nYBhg2oWBhhSj7cDrYDqC6.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Some versions of Google TV will ask you to set up a wireless internet connection upon entering Basic Mode. To be absolutely sure that your Google TV is not connecting to the internet, <strong>select the Skip option </strong>on this screen.</p><p>Afterwards, you'll be carried through the rest of the TV's initial setup process, including pairing a remote control and choosing various settings for your TV's picture and audio.</p></p>                </section><section class="howto-block">                    <h3>4. Enjoy the Basic Mode experience</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/5jKmUps52Jjy27vRcasFKW.jpg"                                        alt="A TV on a media console displaying the Google TV home screen when the software is in Basic Mode. There are no apps or advertisements on the screen, just various, selectable inputs."                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/5jKmUps52Jjy27vRcasFKW.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>With Basic Mode enabled, your Google TV will be limited to live TV and any external devices connected to it. This includes streaming devices, gaming consoles, cable boxes and indoor antennas.</p><p>While in Basic Mode, Google TV may prompt you to sign in to access apps, the voice assistant and custom content recommendations. Doing so will take you through the setup process again, allowing you to sign in with a Google account to access streaming apps and extra features.</p></p>                </section><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/these-5-tv-settings-silently-inflate-your-electricity-bill-heres-how-to-turn-them-off">5 TV settings you should change now to lower your electricity bill</a></li><li><a href="">5 TCL TV settings to change for the best possible picture</a></li><li><a href="https://www.tomsguide.com/tvs/ive-set-up-hundreds-of-tvs-in-my-career-here-are-6-mistakes-people-make-when-setting-up-a-new-tv">I’ve set up hundreds of TVs in my career — here are 6 mistakes people make when setting up a new TV</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/looking-for-a-dumb-tv-experience-i-found-a-hidden-google-tv-feature-that-lets-you-use-your-smart-tv-offline</link>
                                                                            <description>
                            <![CDATA[ If you don’t want to sign up for a Google Account or you’d rather not connect your Hisense, Sony or TCL TV to the internet at all, there's a hidden feature in the Google TV smart platform that lets you use your smart TV offline, like a "dumb TV." Here's how to enable Google TV's Basic Mode. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">94ox8mJgFjas5R5T986YsG</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/pR5nFPKMr3CCQWUMQWESFU-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 02 Mar 2026 08:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/pR5nFPKMr3CCQWUMQWESFU-1280-80.jpg">
                                                            <media:credit><![CDATA[Google]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Google TV Gemini upgrades]]></media:description>                                                            <media:text><![CDATA[Google TV Gemini upgrades]]></media:text>
                                <media:title type="plain"><![CDATA[Google TV Gemini upgrades]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/pR5nFPKMr3CCQWUMQWESFU-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Google TV is one of the most popular smart platforms. These days, TVs made by Hisense, Sony and TCL all arrive with Google’s streaming software built right into the experience right out of the box.</p><p>If you don’t want to sign up for a Google Account or you’d rather not connect your TV to the internet at all, Google TV offers a way for you to bypass the experience altogether, leaving your TV free to pipe in pictures the old-fashioned way: from a cable box, satellite, indoor antenna, or physical media player.</p><p>To enable Basic Mode, you need to do so during the TV's initial setup. This means that if you've previously set up Google TV, you'll need to perform a factory reset on your TV. If you're setting up Google TV for the first time, skip to step #2.</p><section class="howto-block">                    <h3>1. Perform a factory reset on your Google TV</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/LxEYA56fsc4EsWY7hmw3SM.jpg"                                        alt="A TV on a media console displaying Google TV's System settings menu with the Factory Reset option highlighted"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/LxEYA56fsc4EsWY7hmw3SM.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Performing a factory reset will erase all of your personal data, including apps, login information and any changes you may have made to the TV's settings. Take this into consideration before resetting your TV.</p><p>To perform a factory reset on a Google TV, open the<strong> Settings menu</strong>, select the <strong>All Settings</strong> option, scroll down to the <strong>System</strong> submenu and then select <strong>About. </strong>From here, it's just a matter of selecting the <strong>Reset </strong>option, which will prompt you to either accept or cancel your decision to reset Google TV.</p></p>                </section><section class="howto-block">                    <h3>2. Access Basic Mode in Google TV </h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/vggKGnB7uQ4PJEfFNvkBcF.jpg"                                        alt="A TV on a media console displaying the step in the Google TV setup process that asks the user to select their region or country."                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/vggKGnB7uQ4PJEfFNvkBcF.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>During the initial setup process, your Google TV will guide you through several initial steps. Once you reach the welcome screen, <strong>select your preferred language</strong>. Next, <strong>select your region or country</strong>.</p><p>Afterwards, Google TV will give you two options: Set up Google TV and <strong>Set up basic TV</strong>. Choose the latter.</p></p>                </section><section class="howto-block">                    <h3>3. If prompted, decline to setup Wi-Fi connectivity</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/nYBhg2oWBhhSj7cDrYDqC6.jpg"                                        alt="A TV on a media console displaying a step of the Google TV setup process which asks the user if they'd like to skip Wi-Fi setup."                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/nYBhg2oWBhhSj7cDrYDqC6.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Some versions of Google TV will ask you to set up a wireless internet connection upon entering Basic Mode. To be absolutely sure that your Google TV is not connecting to the internet, <strong>select the Skip option </strong>on this screen.</p><p>Afterwards, you'll be carried through the rest of the TV's initial setup process, including pairing a remote control and choosing various settings for your TV's picture and audio.</p></p>                </section><section class="howto-block">                    <h3>4. Enjoy the Basic Mode experience</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/5jKmUps52Jjy27vRcasFKW.jpg"                                        alt="A TV on a media console displaying the Google TV home screen when the software is in Basic Mode. There are no apps or advertisements on the screen, just various, selectable inputs."                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/5jKmUps52Jjy27vRcasFKW.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>With Basic Mode enabled, your Google TV will be limited to live TV and any external devices connected to it. This includes streaming devices, gaming consoles, cable boxes and indoor antennas.</p><p>While in Basic Mode, Google TV may prompt you to sign in to access apps, the voice assistant and custom content recommendations. Doing so will take you through the setup process again, allowing you to sign in with a Google account to access streaming apps and extra features.</p></p>                </section><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/these-5-tv-settings-silently-inflate-your-electricity-bill-heres-how-to-turn-them-off">5 TV settings you should change now to lower your electricity bill</a></li><li><a href="">5 TCL TV settings to change for the best possible picture</a></li><li><a href="https://www.tomsguide.com/tvs/ive-set-up-hundreds-of-tvs-in-my-career-here-are-6-mistakes-people-make-when-setting-up-a-new-tv">I’ve set up hundreds of TVs in my career — here are 6 mistakes people make when setting up a new TV</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ RGB LED TVs are flagship killers and the TCL QM9K is their first victim ]]></title>
                                                                                                <dc:content><![CDATA[ <p>As someone who reviews TVs for a living, I don’t often see a downside to recommending older models. Take, for example, the 2025 <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c5-oled-tv-review">LG C5 OLED</a>. It’s one of the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TVs</a> we’ve ever tested, sure, but the 2024 <a href="https://www.tomsguide.com/tvs/lg-c4-oled-tv-review">LG C4 OLED</a> is still an incredible TV that, to most folks, would look great. </p><p>However, sometimes there’s such a leap in performance between one year and the next, that it becomes hard to recommend buying a previous year’s model.</p><p>That’s exactly how I feel about the <a href="https://www.tomsguide.com/tvs/qled-tvs/i-just-went-hands-on-with-the-tcl-qm9k-and-its-one-of-tcls-most-powerful-tvs-yet">TCL QM9K</a> — the brand’s flagship Mini-LED TV from 2025 that is, by all accounts, a very good-looking screen, but one that just pales in comparison to the new <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">TCL X11L SQD Mini-LED</a> and the upcoming 2026 Mini-RGB TVs from Samsung, Hisense and LG. Here’s why.</p><h2 id="not-enough-color-where-it-counts">Not enough color where it counts</h2><p>When we talk about color on TVs, we’re talking about two distinct metrics — color volume and color accuracy. To make your favorite movies and shows look their best, you need both.</p><p>The QM9K has rock-solid color accuracy. In our lab tests, the QM9K was incredibly accurate with a Delta-E score of 1.8 (the lower the score, the more accurate it is). That rivals most OLED TVs. But its color vibrancy is comparatively lacking — it only covers 97% of the DCI-P3 color space and 79% of the more-advanced Rec.2020 spectrum. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5731px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="niUp7uabKm2jrPAg3ZieDj" name="TCL QM9K" alt="The TCL QM9K in our editor's home office." src="https://cdn.mos.cms.futurecdn.net/niUp7uabKm2jrPAg3ZieDj.jpg" mos="" align="middle" fullscreen="" width="5731" height="3224" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">MLS looks good on the QM9K, but it could be so much more vibrant.  </span><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div><blockquote><p>Five years ago, these numbers would’ve blown my mind ... But in 2026 these numbers just aren’t as impressive as they once were. </p></blockquote></div><p>Five years ago, these numbers would’ve blown my mind. Even last year, these numbers were relatively good. But in 2026, the year that we’re getting Mini-RGB and TCL's own <a href="https://www.tomsguide.com/tvs/i-went-hands-on-with-tcls-first-sqd-mini-led-tv-and-it-made-me-forget-about-rgb-tvs">SQD TVs</a>, these numbers just aren’t as impressive as they once were. </p><p>So why aren’t they good enough? Well, the QM9K has been superseded by the <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">TCL X11L</a>, the brand’s first SQD TV and its flagship model for 2026. In our lab tests, the X11L not only had a similar Delta-E score of 1.8, but it covered a lot more of the DCI-P3 and Rec.2020 color spaces (97.82% and 91.77%, respectively). That’s <em>a lot </em>of extra color. </p><p>We’re still awaiting the new Mini-RGB TVs from Hisense, Samsung and LG, but each claim that their Rec.2020 coverage will all be in the 90% range or better. </p><h2 id="but-brightness-in-spades">But brightness in spades</h2><p>While color isn’t exactly a strong suit for the QM9K, it’s very good at combating ambient light thanks to its high peak brightness stats. In our lab tests, we measured the QM9K’s peak brightness at 4,207 nits in a 10% window in Standard mode — and we probably could’ve pushed that number even further had we played around with more of the settings. </p><p>To help combat potential haloing from this ultra-bright backlight, the QM9K uses TCL’s new Halo Control system that includes 5,000 contrast control zones. I haven’t seen any haloing in my time with the TV so far, so that’s incredibly impressive.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5799px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="asMtM9wjkKNXRXyPgAjqGj" name="TCL QM9K -1" alt="The TCL QM9K in our editor's home office." src="https://cdn.mos.cms.futurecdn.net/asMtM9wjkKNXRXyPgAjqGj.jpg" mos="" align="middle" fullscreen="" width="5799" height="3262" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I’ve been watching it in a room with a side-facing window that just lets light in like you wouldn’t believe. Again, the QM9K isn’t phased by it. </p><p>The jury is still out on how bright these new Mini-RGB TVs will be — but I don’t think we’ll see a precipitous drop off in peak brightness once they arrive in our test labs later this year. As it stands, the aforementioned X11L can reach upwards of 6,000 nits in the same settings without breaking a sweat, thanks to its Super Quantum Dot (SQD) display. Ambient light, watch out.</p><div class="product"><a data-dimension112="72f05227-ca88-407b-bd4d-bc61f97c183b" data-action="Deal Block" data-label="75" QM9K Mini LED TV" data-dimension48="75" QM9K Mini LED TV" data-dimension25="$2299" href="https://www.bestbuy.com/product/tcl-75-class-qm9k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQZ25" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:60.13%;"><img id="mYhyRwenBUQFzbHyJxCpzh" name="81lQj9DreOL._AC_SL1500_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/mYhyRwenBUQFzbHyJxCpzh.jpg" mos="" align="middle" fullscreen="" width="1500" height="902" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-75-class-qm9k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQZ25" target="_blank" rel="nofollow" data-dimension112="72f05227-ca88-407b-bd4d-bc61f97c183b" data-action="Deal Block" data-label='75" QM9K Mini LED TV' data-dimension48='75" QM9K Mini LED TV' data-dimension25="$2299">75" QM9K Mini LED TV: was $3499 now $2299</a></strong><br>TCL's flagship QM9K boasts some of the highest brightness numbers we've ever seen. If you have a room with way too much ambient light, the QM9K cuts through it with ease and, thanks to its Halo Control system that includes 5,000 contrast control zones, black levels look exactly how they should.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-75-class-qm9k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQZ25" target="_blank" rel="nofollow" data-dimension112="72f05227-ca88-407b-bd4d-bc61f97c183b" data-action="Deal Block" data-label="75" QM9K Mini LED TV" data-dimension48="75" QM9K Mini LED TV" data-dimension25="$2299">View Deal</a></p></div><h2 id="how-good-is-good-enough">How good is good enough? </h2><p>This is the question that’s delayed my review of the TCL QM9K. It’s a good TV — and for a 2025 model I’d even say it’s great. But I keep coming back to the issue with its color saturation. It’s good enough for now, but it pales in comparison to what’s coming. </p><p>The problem, however, is that those TVs could come at untenable prices. The X11L, for example, starts at $6,999 for the 75-inch model. Conversely, the 75-inch QM9K can be purchased for <a href="https://www.bestbuy.com/product/tcl-75-class-qm9k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQZ25" target="_blank" rel="nofollow">$2,299 at Best Buy</a>.</p><p>Should we give up the pursuit of vibrant color for a lower sticker price? I'm not sure. As a reviewer, it's something I'm still grappling with. </p><p>What I do know is that, after seeing them in-person, Mini RGB TVs are at the top of my wish list for 2026 and the QM9K... well, probably won't be. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">I tested TCL’s $8,000 SQD Mini-LED TV — here's my verdict</a></li><li><a href="https://www.tomsguide.com/tvs/oled-tvs/lg-g5-oled-tv-review">LG G5 OLED TV review</a></li><li><a href="https://www.tomsguide.com/tvs/the-ram-crisis-came-for-computers-first-and-now-its-coming-for-tvs-heres-why-i-recommend-upgrading-while-you-still-can">The RAM crisis came for computers first and now it's coming for TVs — here's why I recommend upgrading while you still can</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/qled-tvs/rgb-led-tvs-are-flagship-killers-and-the-tcl-qm9k-is-their-first-victim</link>
                                                                            <description>
                            <![CDATA[ Sometimes there’s such a leap in performance between one year and the next, that it becomes hard to recommend buying a previous year’s model. That's exactly the case with the QM9K. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">X62KU7MhjLobYjq9NueAa5</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/aRmYKeTGrCe5AUV2VdSV2e-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 27 Feb 2026 09:15:00 +0000</pubDate>                                                                                                                                <updated>Thu, 05 Mar 2026 22:37:40 +0000</updated>
                                                                                                                                            <category><![CDATA[QLED TVs]]></category>
                                                    <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ Nick.Pino@futurenet.com (Nick Pino) ]]></author>                    <dc:creator><![CDATA[ Nick Pino ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/7xnnEdyK5eEbDVbS5pYB54.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Nick Pino heads up the TV and AV verticals at Tom&#039;s Guide and covers everything from OLED TVs to the latest wireless headphones. He&#039;s a Level 1 Certified THX Home Theater Professional, and has attended classes on TV and audio calibration. On Tom&#039;s Guide, he looks after some of the site&#039;s important buying guides like the best TVs, best OLED TVs, best 4K TVs, so most of his day is spent watching and evaluating new screens from LG, Samsung, Sony, Hisense, TCL and Vizio. (And yes, he knows how lucky he is to say that.) He was formerly the Senior Editor, TV and AV at TechRadar (Tom&#039;s Guide&#039;s sister site) and has previously written for GamesRadar, Official Xbox Magazine, PC Gamer and other outlets over the last decade. He got his start on Best Buy&#039;s official video game magazine, @GAMER, for whom he attended his first E3 in 2013. He&#039;s served as a judge for CES&#039; prestigious Innovation Awards and has attended the tech conference in Las Vegas since 2014. He has a computer science degree from the University at Buffalo and still resides in the Buffalo area. (Go Bills!) Not sure which TV you should buy? Drop him an email or tweet him on Twitter and he can help you out.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/aRmYKeTGrCe5AUV2VdSV2e-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The TCL QM9K in our editor&#039;s home office.]]></media:description>                                                            <media:text><![CDATA[The TCL QM9K in our editor&#039;s home office.]]></media:text>
                                <media:title type="plain"><![CDATA[The TCL QM9K in our editor&#039;s home office.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/aRmYKeTGrCe5AUV2VdSV2e-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>As someone who reviews TVs for a living, I don’t often see a downside to recommending older models. Take, for example, the 2025 <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c5-oled-tv-review">LG C5 OLED</a>. It’s one of the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TVs</a> we’ve ever tested, sure, but the 2024 <a href="https://www.tomsguide.com/tvs/lg-c4-oled-tv-review">LG C4 OLED</a> is still an incredible TV that, to most folks, would look great. </p><p>However, sometimes there’s such a leap in performance between one year and the next, that it becomes hard to recommend buying a previous year’s model.</p><p>That’s exactly how I feel about the <a href="https://www.tomsguide.com/tvs/qled-tvs/i-just-went-hands-on-with-the-tcl-qm9k-and-its-one-of-tcls-most-powerful-tvs-yet">TCL QM9K</a> — the brand’s flagship Mini-LED TV from 2025 that is, by all accounts, a very good-looking screen, but one that just pales in comparison to the new <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">TCL X11L SQD Mini-LED</a> and the upcoming 2026 Mini-RGB TVs from Samsung, Hisense and LG. Here’s why.</p><h2 id="not-enough-color-where-it-counts">Not enough color where it counts</h2><p>When we talk about color on TVs, we’re talking about two distinct metrics — color volume and color accuracy. To make your favorite movies and shows look their best, you need both.</p><p>The QM9K has rock-solid color accuracy. In our lab tests, the QM9K was incredibly accurate with a Delta-E score of 1.8 (the lower the score, the more accurate it is). That rivals most OLED TVs. But its color vibrancy is comparatively lacking — it only covers 97% of the DCI-P3 color space and 79% of the more-advanced Rec.2020 spectrum. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5731px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="niUp7uabKm2jrPAg3ZieDj" name="TCL QM9K" alt="The TCL QM9K in our editor's home office." src="https://cdn.mos.cms.futurecdn.net/niUp7uabKm2jrPAg3ZieDj.jpg" mos="" align="middle" fullscreen="" width="5731" height="3224" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">MLS looks good on the QM9K, but it could be so much more vibrant.  </span><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div><blockquote><p>Five years ago, these numbers would’ve blown my mind ... But in 2026 these numbers just aren’t as impressive as they once were. </p></blockquote></div><p>Five years ago, these numbers would’ve blown my mind. Even last year, these numbers were relatively good. But in 2026, the year that we’re getting Mini-RGB and TCL's own <a href="https://www.tomsguide.com/tvs/i-went-hands-on-with-tcls-first-sqd-mini-led-tv-and-it-made-me-forget-about-rgb-tvs">SQD TVs</a>, these numbers just aren’t as impressive as they once were. </p><p>So why aren’t they good enough? Well, the QM9K has been superseded by the <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">TCL X11L</a>, the brand’s first SQD TV and its flagship model for 2026. In our lab tests, the X11L not only had a similar Delta-E score of 1.8, but it covered a lot more of the DCI-P3 and Rec.2020 color spaces (97.82% and 91.77%, respectively). That’s <em>a lot </em>of extra color. </p><p>We’re still awaiting the new Mini-RGB TVs from Hisense, Samsung and LG, but each claim that their Rec.2020 coverage will all be in the 90% range or better. </p><h2 id="but-brightness-in-spades">But brightness in spades</h2><p>While color isn’t exactly a strong suit for the QM9K, it’s very good at combating ambient light thanks to its high peak brightness stats. In our lab tests, we measured the QM9K’s peak brightness at 4,207 nits in a 10% window in Standard mode — and we probably could’ve pushed that number even further had we played around with more of the settings. </p><p>To help combat potential haloing from this ultra-bright backlight, the QM9K uses TCL’s new Halo Control system that includes 5,000 contrast control zones. I haven’t seen any haloing in my time with the TV so far, so that’s incredibly impressive.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5799px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="asMtM9wjkKNXRXyPgAjqGj" name="TCL QM9K -1" alt="The TCL QM9K in our editor's home office." src="https://cdn.mos.cms.futurecdn.net/asMtM9wjkKNXRXyPgAjqGj.jpg" mos="" align="middle" fullscreen="" width="5799" height="3262" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I’ve been watching it in a room with a side-facing window that just lets light in like you wouldn’t believe. Again, the QM9K isn’t phased by it. </p><p>The jury is still out on how bright these new Mini-RGB TVs will be — but I don’t think we’ll see a precipitous drop off in peak brightness once they arrive in our test labs later this year. As it stands, the aforementioned X11L can reach upwards of 6,000 nits in the same settings without breaking a sweat, thanks to its Super Quantum Dot (SQD) display. Ambient light, watch out.</p><div class="product"><a data-dimension112="72f05227-ca88-407b-bd4d-bc61f97c183b" data-action="Deal Block" data-label="75" QM9K Mini LED TV" data-dimension48="75" QM9K Mini LED TV" data-dimension25="$2299" href="https://www.bestbuy.com/product/tcl-75-class-qm9k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQZ25" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:60.13%;"><img id="mYhyRwenBUQFzbHyJxCpzh" name="81lQj9DreOL._AC_SL1500_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/mYhyRwenBUQFzbHyJxCpzh.jpg" mos="" align="middle" fullscreen="" width="1500" height="902" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-75-class-qm9k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQZ25" target="_blank" rel="nofollow" data-dimension112="72f05227-ca88-407b-bd4d-bc61f97c183b" data-action="Deal Block" data-label='75" QM9K Mini LED TV' data-dimension48='75" QM9K Mini LED TV' data-dimension25="$2299">75" QM9K Mini LED TV: was $3499 now $2299</a></strong><br>TCL's flagship QM9K boasts some of the highest brightness numbers we've ever seen. If you have a room with way too much ambient light, the QM9K cuts through it with ease and, thanks to its Halo Control system that includes 5,000 contrast control zones, black levels look exactly how they should.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-75-class-qm9k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQZ25" target="_blank" rel="nofollow" data-dimension112="72f05227-ca88-407b-bd4d-bc61f97c183b" data-action="Deal Block" data-label="75" QM9K Mini LED TV" data-dimension48="75" QM9K Mini LED TV" data-dimension25="$2299">View Deal</a></p></div><h2 id="how-good-is-good-enough">How good is good enough? </h2><p>This is the question that’s delayed my review of the TCL QM9K. It’s a good TV — and for a 2025 model I’d even say it’s great. But I keep coming back to the issue with its color saturation. It’s good enough for now, but it pales in comparison to what’s coming. </p><p>The problem, however, is that those TVs could come at untenable prices. The X11L, for example, starts at $6,999 for the 75-inch model. Conversely, the 75-inch QM9K can be purchased for <a href="https://www.bestbuy.com/product/tcl-75-class-qm9k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQZ25" target="_blank" rel="nofollow">$2,299 at Best Buy</a>.</p><p>Should we give up the pursuit of vibrant color for a lower sticker price? I'm not sure. As a reviewer, it's something I'm still grappling with. </p><p>What I do know is that, after seeing them in-person, Mini RGB TVs are at the top of my wish list for 2026 and the QM9K... well, probably won't be. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">I tested TCL’s $8,000 SQD Mini-LED TV — here's my verdict</a></li><li><a href="https://www.tomsguide.com/tvs/oled-tvs/lg-g5-oled-tv-review">LG G5 OLED TV review</a></li><li><a href="https://www.tomsguide.com/tvs/the-ram-crisis-came-for-computers-first-and-now-its-coming-for-tvs-heres-why-i-recommend-upgrading-while-you-still-can">The RAM crisis came for computers first and now it's coming for TVs — here's why I recommend upgrading while you still can</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ TCL X11L vs LG G5: Which high-end TV is the better buy? ]]></title>
                                                                                                <dc:content><![CDATA[         <div class="featured_product_block featured_block_versus" data-id="6e4f4178-db48-4095-a276-0af35096717b">            <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review" data-model-name="TCL X11L 4K SQD Mini LED TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/viSrbyMKKroPjkqrdBfspf.jpg" alt="The TCL X11L SQD Mini-LED TV displaying a colorful, abstract picture"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL X11L</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="90" /></span></div>                                        <p><p>Thanks to an all-new spin on quantum-dot technology, the TCL X11L delivers some of the best (and brightest) performance we've ever seen on a Mini-LED TV. However, even compared to LG's flagship OLED TV, the X11L is prohibitively expensive for most shoppers.</p></p>                </div>                <div class="pro-con"><div class="list-pros-wrapper"><h4 class="list-pros-label">Pros</h4><ul class="list-pros"><li class='list-item list-item-pros'>Exceptional brightness and HDR impact</li><li class='list-item list-item-pros'>Excellent color retention in bright scenes</li><li class='list-item list-item-pros'>Premium features and connectivity</li></ul></div><div class="list-cons-wrapper"><h4 class="list-cons-label">Cons</h4><ul class="list-cons"><li class='list-item list-item-cons'>Extremely expensive</li><li class='list-item list-item-cons'>Large sizes limit placement options</li><li class='list-item list-item-cons'>Motion handling isn’t class-leading</li></ul></div></div>            </div>        </div>        <div class="featured_product_block featured_block_versus" data-id="27c98386-334a-46f4-9d66-2e8abb5a5403">            <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-g5-oled-tv-review" data-model-name="LG G5 65-inch" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.27%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/VDfKnyZfQzZMbqYN499FUJ.jpg" alt="The LG G5 OLED TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">LG G5</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="90" /></span></div>                                        <p><p>The G5 offers stunning picture quality and some of the brightest highlights you'll find on an OLED TV. It's also packed with features. As LG's flagship OLED, it doesn't come cheap, but it's nevertheless much more affordable than the TCL X11L. For most people, it's the all-around better buy.</p></p>                </div>                <div class="pro-con"><div class="list-pros-wrapper"><h4 class="list-pros-label">Pros</h4><ul class="list-pros"><li class='list-item list-item-pros'>Nearly unparalleled brightness for an OLED</li><li class='list-item list-item-pros'>Gorgeous color</li><li class='list-item list-item-pros'>Terrific gaming features</li></ul></div><div class="list-cons-wrapper"><h4 class="list-cons-label">Cons</h4><ul class="list-cons"><li class='list-item list-item-cons'>A little pricey for what you get</li><li class='list-item list-item-cons'>No ATSC 3.0 tuner</li></ul></div></div>            </div>        </div><p>There are high-end TVs, and then there are <em>extremely </em>high-end TVs. Right now, folks who are looking to splurge on a mind-blowingly good TV have their pick of both.</p><p>In one corner is the <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-g5-oled-tv-review">LG G5</a>, which is not only one of the <a href="https://www.tomsguide.com/tvs/oled-tvs/best-oled-tvs">best OLED TVs</a> you can buy, it’s easily one of the <a href="https://www.tomsguide.com/best-picks/best-lg-tvs">best LG TVs</a> ever made, period. If you’ve been considering a high-performance OLED TV, the G5 is likely near the top of your list of options.</p><p>In the other corner is the all-new <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">TCL X11L</a>. While the G5 iterates on traditional OLED technology, the X11L is a complete refresh on a quantum dot-enhanced Mini-LED TV. Thanks in part to TCL’s new Super Quantum Dot (SQD) display tech, the X11L is currently over <em>twice</em> as expensive as the G5. The question, then, is this: If you’ve got the money to spend on either option, which should you choose?</p><h2 id="tcl-x11l-vs-lg-g5-specs-compared">TCL X11L vs LG G5: specs compared</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL X11L</p></th><th  ><p>LG G5</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Sizes</strong></p></td><td  ><p>75", 85", 98"</p></td><td  ><p>55", 65", 77", 83", 97"</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>4x HDMI 2.1</p></td><td  ><p>4x HDMI 2.1</p></td></tr><tr><td class="firstcol " ><p><strong>Resolution</strong></p></td><td  ><p>3,840 x 2,160p</p></td><td  ><p>3,840 x 2,160p</p></td></tr><tr><td class="firstcol " ><p><strong>Refresh rate</strong></p></td><td  ><p>144Hz</p></td><td  ><p>165Hz</p></td></tr><tr><td class="firstcol " ><p><strong>HDR</strong></p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td><td  ><p>Dolby Vision, HDR10, HLG</p></td></tr><tr><td class="firstcol " ><p><strong>Smart TV software</strong></p></td><td  ><p>Google TV</p></td><td  ><p>webOS</p></td></tr><tr><td class="firstcol " ><p><strong>ATSC 3.0 support?</strong></p></td><td  ><p>Yes</p></td><td  ><p>No</p></td></tr><tr><td class="firstcol " ><p><strong>Processor</strong></p></td><td  ><p>TSR AI Processor</p></td><td  ><p>a11 AI Processor 4K Gen2</p></td></tr></tbody></table></div><p>These are similarly spec'd TVs, but let's talk about a few noteworthy differences. The G5 supports 4K gaming at 165Hz, but the X11L is capped at 144Hz. You don't need to worry about this unless you're planning on using one of these TVs with a gaming PC, because current-generation consoles top out at 120Hz for 4K games.</p><p><a href="https://www.tomsguide.com/tvs/do-you-actually-need-dolby-vision-on-your-next-tv-heres-the-answer">Dolby Vision support</a> is in represented on both of these TVs, though HDR10+ is absent on the LG G5. This isn't that big of a deal, however, as Dolby Vision is the more popular format across various streaming platforms today, but credit where credit is due: The X11L supports every major HDR version including HDR10+. </p><p>It's also worth calling out the X11L's ATSC 3.0 support. This allows over-the-air broadcasts to be piped-in at native 4K resolution when available. 4K broadcasts aren't particularly common, but this feature is nevertheless nice to have, especially given the X11L's price tag.</p><p>The most important thing to consider when looking at this chart is screen size availability. The TCL X11L is only available in three sizes and the smallest option is 75 inches. The G5, meanwhile, has a much more accommodating slate of size options.</p><h2 id="tcl-x11l-vs-lg-g5-design">TCL X11L vs LG G5: design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="dg3dmUtTho2XCVygjjmVd9" name="TG_LG-G5-TV-5" alt="The LG G5 OLED at Tom's Guide's Labs." src="https://cdn.mos.cms.futurecdn.net/dg3dmUtTho2XCVygjjmVd9.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Last year, LG included a stand with 55- and 65-inch versions of its G Series OLED. The G5, on the other hand, doesn't come with a stand at any size point. LG believes that most people shopping the G Series plan on taking advantage of the TV's gap-free, wall-mounted design. </p><p>You can check out the G5's separately sold stand in the photo above. It's a relatively heavy, pedestal-style stand that screws into the back of the panel, and I've never had any issues with it.</p><p>When the G5 is wall-mounted, few TVs come close to topping its striking, elegant design. When it's sitting on a credenza with its pedestal-style stand, the G5 is still a fancy-looking customer, but much of the design's visual appeal is lost.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fVb4gMFxwMorM3ykPuRp7W" name="TCL X11L SQD Mini-LED TV-09" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/fVb4gMFxwMorM3ykPuRp7W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The X11L (seen above) includes a pair of svelte, minimalistic feet that straddle the screen close to the bottom edges of the panel. This makes the X11L a more accommodating, out-of-the-box choice than the G5 for folks who don't intend on wall-mounting their next TV, but I find the G5's design better looking than the X11L whether it's on or off a wall.</p><p>My reasoning for this comes down to the sheer bulk of the X11L's panel. It's a hefty customer, and visually speaking, it carries a similar weight. I appreciate that the X11L's chassis is mostly uniform in size, but it's quite slab-like in its overall vibe.</p><p>Still, the fact that you have to shell out for the G5's separately sold stand is a pretty significant ding against its design. This one is a draw.</p><p><em><strong>Winner:</strong></em><em> Draw</em></p><h2 id="tcl-x11l-vs-lg-g5-performance">TCL X11L vs LG G5: performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1447px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="f3EFaXwbkrGmeKJDfwUmwm" name="TCL X11L SQD Mini-LED TV-LIST2" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/f3EFaXwbkrGmeKJDfwUmwm.jpg" mos="" align="middle" fullscreen="" width="1447" height="814" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Before we dive into which of these TVs is the better performer, let's compare their test results. (Both TVs were in their respective Filmmaker picture mode when these tests were taken.)</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>TCL X11L</strong></p></th><th  ><p><strong>LG G5</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p>SDR Brightness (10%, in nits)    </p></td><td  ><p>283</p></td><td  ><p>465</p></td></tr><tr><td class="firstcol " ><p>Delta-E (lower is better)    </p></td><td  ><p>1.9</p></td><td  ><p>1.9</p></td></tr><tr><td class="firstcol " ><p>HDR Brightness (10%, in nits)    </p></td><td  ><p>2,679</p></td><td  ><p>2,296</p></td></tr><tr><td class="firstcol " ><p>UHDA-P3 Gamut Coverage    </p></td><td  ><p>97.74%</p></td><td  ><p>99.79%</p></td></tr><tr><td class="firstcol " ><p>Rec. 2020 Gamut Coverage    </p></td><td  ><p>91.77%</p></td><td  ><p>82.42% </p></td></tr><tr><td class="firstcol " ><p>Input latency (milliseconds)   </p></td><td  ><p>11.7</p></td><td  ><p>9.2</p></td></tr></tbody></table></div><p>First, let's talk about brightness. Along with its showstopping color, brightness is the X11L's bread and butter. We measured a sizzling 2,679 nits of HDR highlight brightness on the X11L, but it's worth noting that this set is capable of getting much, <em>much</em> brighter with its backlight completely cranked up.</p><p>This is especially true when measuring even smaller highlights on the X11L than the 10% window reported above. Indeed, the X11L is capable of brightness levels well above 6,000 nits.</p><p>So, how does that stack up to the G5? Thanks to the 4th-generation OLED panel from LG Display, the G5 is one of the brightest OLEDs we've ever tested, rivaling quantum dot-enhanced OLEDs from Sony and Samsung.</p><p>And, although the G5's HDR highlight brightness in Filmmaker mode is comparable to what you'll see on the X11L while the latter's backlight is kept at or around its default setting, its ceiling is nowhere near as high as the X11L's.</p><p>The X11L's added brightness is especially noticeable if you measure the luminance of the entire picture during everyday content. For people with brightly lit homes, the X11L is a much safer bet.</p><p>That said, like all OLED TVs, the G5 is capable of perfect black levels and pixel-level dimming. When you factor-in this ability, the G5's contrast-related advantages really come into focus. The X11L does a remarkably good job at minimizing haloing and light bloom (especially given its brightness), but it can't quite replicate the depth and clarity of a searingly bright OLED panel. For this reason, I find the G5's contrast to be far more appealing.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="sGpPo6pnYuKYXu4sGBFqf9" name="TG_LG-G5-TV-9" alt="The LG G5 OLED at Tom's Guide's Labs." src="https://cdn.mos.cms.futurecdn.net/sGpPo6pnYuKYXu4sGBFqf9.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div><blockquote><p>I find the G5's contrast to be far more appealing.</p></blockquote></div><p>Contrast isn't the whole story. The X11L and its unique, souped-up quantum-dot panel are engineered to squeeze as much color out of a Mini-LED-backed picture than ever before.</p><p>TCL's top-of-the-line TV for 2026 covers more of the Rec. 2020 color gamut than any Mini-LED TV we've measured to date. It even surpasses some QD-OLED TVs in this category, too.</p><p>Were you to place these TVs side by side, you would almost certainly notice brighter, bolder colors on the X11L. However, without a reference, viewers' jaws will still be on the floor for the G5's bright, well-calibrated color palette, too.</p><p>Both of these TVs deliver an incredible picture worthy of a flagship-level price tag. If you're looking for the brightest possible presentation — bright enough that colors are downright psychedelic — the X11L has a considerable edge.</p><p>For my money, though, there's no better mix than the pure, true black levels of an OLED display capable of cracking 2,000 nits. For as remarkable as TCL's SQD panel truly is, the G5 has all of the built-in benefits of an OLED panel, and that seals the deal.</p><p><em><strong>Winner:</strong></em><em> LG G5</em></p><h2 id="tcl-x11l-vs-lg-g5-smart-platform-and-features">TCL X11L vs LG G5: smart platform and features</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NCSPbAdY7umgEREUbDDR5W" name="TCL X11L SQD Mini-LED TV-10" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/NCSPbAdY7umgEREUbDDR5W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The X11L is built around the Google TV software suite, and it's a great smart platform to hang your hat on if you intend to do most of your streaming on your TV rather than an external streaming device.</p><p>I love how zippy Google TV is, and the user interface is relatively straightforward, which I suspect most people will appreciate if they don't want to fumble their way through various tabs and submenus.</p><p>The G5, on the other hand, is built around webOS 25, the newest version of LG's proprietary smart platform. It's fussier than Google TV and offers a less-streamlined experience, but you can get away with using it as a daily driver.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uitP29WyfaomHeLZ2RpQf9" name="TG_LG-G5-TV-18" alt="The LG G5 OLED at Tom's Guide's Labs." src="https://cdn.mos.cms.futurecdn.net/uitP29WyfaomHeLZ2RpQf9.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As far as gaming features go, these are similar sets. Each offers HDMI 2.1-compatibility across all four inputs, which frees you up from thinking about which port any given device should use. Both TVs also arrive with Variable Refresh Rate (VRR), Auto Low Latency Mode (ALLM) and some variation of AMD FreeSync Premium for smooth, artifact-free gameplay. </p><p>Sure, the G5 supports 4K gaming at 165Hz and the X11L tops out at 144Hz. I just can't bring myself to invest too much in this difference, though, as it won't matter to the vast majority of shoppers — even the folks shopping in this price range.</p><p>For the vast majority of viewers, these sets are basically the same when it comes to features. They both offer a top-shelf gaming experience and come with a thorough slate of A/V-related enhancements. The X11L's Google TV experience is my preferred choice between the two (and TCL includes HDR10+ support), but that's not enough for it to take this category.</p><p><em><strong>Winner: </strong></em><em>Draw</em></p><h2 id="tcl-x11l-vs-lg-g5-outlook">TCL X11L vs LG G5: outlook</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL X11L</p></th><th  ><p>LG G5</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Specs (25)</strong></p></td><td  ><p>24</p></td><td  ><p>24</p></td></tr><tr><td class="firstcol " ><p><strong>Design (25)</strong></p></td><td  ><p>21</p></td><td  ><p>21</p></td></tr><tr><td class="firstcol " ><p><strong>Performance (25)</strong></p></td><td  ><p>23</p></td><td  ><p>25</p></td></tr><tr><td class="firstcol " ><p><strong>Features (25)</strong></p></td><td  ><p>25</p></td><td  ><p>25</p></td></tr><tr><td class="firstcol " ><p><strong>Total Score (100)</strong></p></td><td  ><p><strong>93</strong></p></td><td  ><p><strong>95</strong></p></td></tr></tbody></table></div><p>Upon tallying up their report card points, it's plainly obvious that these are close competitors that perform at the highest possible level. For most people, the rubber meets the road when peeking at their respective price tags.</p><p>The TCL X11L is a brand-new TV just making its way to shelves. This is merely one reason why it's priced higher than the LG G5, which was released last year.</p><p>The primary reason why the TCL X11L is priced higher than the G5 is — to put it simply — because it's just really, <em>really </em>expensive. Right now, you can order the <a href="https://www.amazon.com/TCL-SQD-Mini-Ultimate-Brightness-Contrast/dp/B0GFDHZZ8F?th=1" target="_blank" rel="nofollow">75-inch TCL X11L for $6,999 at Amazon</a>. Meanwhile, the <a href="https://www.bestbuy.com/product/tcl-85-x11l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH3VY" target="_blank" rel="nofollow">85-inch X11L is $7,999 at Best Buy</a>.</p><p>For comparison's sake, the 77-inch G5 was $4,399 at launch. As a year-old model, it's even cheaper today. You can grab the <a href="https://www.bestbuy.com/product/lg-77-class-g5-series-oled-evo-ai-4k-uhd-smart-webos-tv-with-one-wall-design-2025/JJ8VPZTK5F/sku/6621819" target="_blank" rel="nofollow">77-inch LG G5 for $3,499 at Best Buy</a> right now — half the price of the 75-inch X11L.</p><p>The G5 is also available in 55- and 65-inch models, which is something you <em>can't</em> say for the X11L. For people in the market for a smaller-sized, high-performance TV, the <a href="https://www.amazon.com/LG-Upscaling-Filmmaker-Orchestra-OLED55G5WUA/dp/B0DYQGRHX3" target="_blank" rel="nofollow">55-inch G5 being available for $1,449 at Amazon</a> will make this decision an open-shut case.</p><p>Still, there's no denying that the TCL X11L is one of the year's best TVs. It's also proof that there are still ways to eke more performance gains out of Mini-LED display tech. Given its high price, I suspect it will be a tough sell for most people until it goes on sale.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">I tested TCL’s $8,000 SQD Mini-LED TV — here's my verdict</a></li><li><a href="https://www.tomsguide.com/tvs/oled-tvs/lg-g5-oled-tv-review">LG G5 OLED TV review</a></li><li><a href="https://www.tomsguide.com/tvs/the-ram-crisis-came-for-computers-first-and-now-its-coming-for-tvs-heres-why-i-recommend-upgrading-while-you-still-can">The RAM crisis came for computers first and now it's coming for TVs — here's why I recommend upgrading while you still can</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/tcl-x11l-vs-lg-g5-which-high-end-tv-is-the-better-buy</link>
                                                                            <description>
                            <![CDATA[ The 2025 LG G5 OLED and the 2026 TCL X11L SDQ Mini-LED TV are two top-level TVs with incredible picture quality. Here's how they compare — from performance to features and price. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">fqUYcW6sP5XQbehdzzgNoV</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/cJTMb2sqafnmu4qRFJ6tNh-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 26 Feb 2026 10:00:00 +0000</pubDate>                                                                                                                                <updated>Tue, 24 Mar 2026 16:23:32 +0000</updated>
                                                                                                                                            <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/cJTMb2sqafnmu4qRFJ6tNh-1280-80.jpg">
                                                            <media:credit><![CDATA[TCL / LG]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The TCL X11L SQD Mini-LED TV and the LG G5 side by side]]></media:description>                                                            <media:text><![CDATA[The TCL X11L SQD Mini-LED TV and the LG G5 side by side]]></media:text>
                                <media:title type="plain"><![CDATA[The TCL X11L SQD Mini-LED TV and the LG G5 side by side]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/cJTMb2sqafnmu4qRFJ6tNh-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div class="featured_product_block featured_block_versus" data-id="6e4f4178-db48-4095-a276-0af35096717b">            <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review" data-model-name="TCL X11L 4K SQD Mini LED TV" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.25%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/viSrbyMKKroPjkqrdBfspf.jpg" alt="The TCL X11L SQD Mini-LED TV displaying a colorful, abstract picture"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">TCL X11L</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="90" /></span></div>                                        <p><p>Thanks to an all-new spin on quantum-dot technology, the TCL X11L delivers some of the best (and brightest) performance we've ever seen on a Mini-LED TV. However, even compared to LG's flagship OLED TV, the X11L is prohibitively expensive for most shoppers.</p></p>                </div>                <div class="pro-con"><div class="list-pros-wrapper"><h4 class="list-pros-label">Pros</h4><ul class="list-pros"><li class='list-item list-item-pros'>Exceptional brightness and HDR impact</li><li class='list-item list-item-pros'>Excellent color retention in bright scenes</li><li class='list-item list-item-pros'>Premium features and connectivity</li></ul></div><div class="list-cons-wrapper"><h4 class="list-cons-label">Cons</h4><ul class="list-cons"><li class='list-item list-item-cons'>Extremely expensive</li><li class='list-item list-item-cons'>Large sizes limit placement options</li><li class='list-item list-item-cons'>Motion handling isn’t class-leading</li></ul></div></div>            </div>        </div>        <div class="featured_product_block featured_block_versus" data-id="27c98386-334a-46f4-9d66-2e8abb5a5403">            <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-g5-oled-tv-review" data-model-name="LG G5 65-inch" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:56.27%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/VDfKnyZfQzZMbqYN499FUJ.jpg" alt="The LG G5 OLED TV"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                                                <div class="featured__title">LG G5</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="90" /></span></div>                                        <p><p>The G5 offers stunning picture quality and some of the brightest highlights you'll find on an OLED TV. It's also packed with features. As LG's flagship OLED, it doesn't come cheap, but it's nevertheless much more affordable than the TCL X11L. For most people, it's the all-around better buy.</p></p>                </div>                <div class="pro-con"><div class="list-pros-wrapper"><h4 class="list-pros-label">Pros</h4><ul class="list-pros"><li class='list-item list-item-pros'>Nearly unparalleled brightness for an OLED</li><li class='list-item list-item-pros'>Gorgeous color</li><li class='list-item list-item-pros'>Terrific gaming features</li></ul></div><div class="list-cons-wrapper"><h4 class="list-cons-label">Cons</h4><ul class="list-cons"><li class='list-item list-item-cons'>A little pricey for what you get</li><li class='list-item list-item-cons'>No ATSC 3.0 tuner</li></ul></div></div>            </div>        </div><p>There are high-end TVs, and then there are <em>extremely </em>high-end TVs. Right now, folks who are looking to splurge on a mind-blowingly good TV have their pick of both.</p><p>In one corner is the <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-g5-oled-tv-review">LG G5</a>, which is not only one of the <a href="https://www.tomsguide.com/tvs/oled-tvs/best-oled-tvs">best OLED TVs</a> you can buy, it’s easily one of the <a href="https://www.tomsguide.com/best-picks/best-lg-tvs">best LG TVs</a> ever made, period. If you’ve been considering a high-performance OLED TV, the G5 is likely near the top of your list of options.</p><p>In the other corner is the all-new <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">TCL X11L</a>. While the G5 iterates on traditional OLED technology, the X11L is a complete refresh on a quantum dot-enhanced Mini-LED TV. Thanks in part to TCL’s new Super Quantum Dot (SQD) display tech, the X11L is currently over <em>twice</em> as expensive as the G5. The question, then, is this: If you’ve got the money to spend on either option, which should you choose?</p><h2 id="tcl-x11l-vs-lg-g5-specs-compared">TCL X11L vs LG G5: specs compared</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL X11L</p></th><th  ><p>LG G5</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Sizes</strong></p></td><td  ><p>75", 85", 98"</p></td><td  ><p>55", 65", 77", 83", 97"</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>4x HDMI 2.1</p></td><td  ><p>4x HDMI 2.1</p></td></tr><tr><td class="firstcol " ><p><strong>Resolution</strong></p></td><td  ><p>3,840 x 2,160p</p></td><td  ><p>3,840 x 2,160p</p></td></tr><tr><td class="firstcol " ><p><strong>Refresh rate</strong></p></td><td  ><p>144Hz</p></td><td  ><p>165Hz</p></td></tr><tr><td class="firstcol " ><p><strong>HDR</strong></p></td><td  ><p>Dolby Vision, HDR10+, HDR10, HLG</p></td><td  ><p>Dolby Vision, HDR10, HLG</p></td></tr><tr><td class="firstcol " ><p><strong>Smart TV software</strong></p></td><td  ><p>Google TV</p></td><td  ><p>webOS</p></td></tr><tr><td class="firstcol " ><p><strong>ATSC 3.0 support?</strong></p></td><td  ><p>Yes</p></td><td  ><p>No</p></td></tr><tr><td class="firstcol " ><p><strong>Processor</strong></p></td><td  ><p>TSR AI Processor</p></td><td  ><p>a11 AI Processor 4K Gen2</p></td></tr></tbody></table></div><p>These are similarly spec'd TVs, but let's talk about a few noteworthy differences. The G5 supports 4K gaming at 165Hz, but the X11L is capped at 144Hz. You don't need to worry about this unless you're planning on using one of these TVs with a gaming PC, because current-generation consoles top out at 120Hz for 4K games.</p><p><a href="https://www.tomsguide.com/tvs/do-you-actually-need-dolby-vision-on-your-next-tv-heres-the-answer">Dolby Vision support</a> is in represented on both of these TVs, though HDR10+ is absent on the LG G5. This isn't that big of a deal, however, as Dolby Vision is the more popular format across various streaming platforms today, but credit where credit is due: The X11L supports every major HDR version including HDR10+. </p><p>It's also worth calling out the X11L's ATSC 3.0 support. This allows over-the-air broadcasts to be piped-in at native 4K resolution when available. 4K broadcasts aren't particularly common, but this feature is nevertheless nice to have, especially given the X11L's price tag.</p><p>The most important thing to consider when looking at this chart is screen size availability. The TCL X11L is only available in three sizes and the smallest option is 75 inches. The G5, meanwhile, has a much more accommodating slate of size options.</p><h2 id="tcl-x11l-vs-lg-g5-design">TCL X11L vs LG G5: design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="dg3dmUtTho2XCVygjjmVd9" name="TG_LG-G5-TV-5" alt="The LG G5 OLED at Tom's Guide's Labs." src="https://cdn.mos.cms.futurecdn.net/dg3dmUtTho2XCVygjjmVd9.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Last year, LG included a stand with 55- and 65-inch versions of its G Series OLED. The G5, on the other hand, doesn't come with a stand at any size point. LG believes that most people shopping the G Series plan on taking advantage of the TV's gap-free, wall-mounted design. </p><p>You can check out the G5's separately sold stand in the photo above. It's a relatively heavy, pedestal-style stand that screws into the back of the panel, and I've never had any issues with it.</p><p>When the G5 is wall-mounted, few TVs come close to topping its striking, elegant design. When it's sitting on a credenza with its pedestal-style stand, the G5 is still a fancy-looking customer, but much of the design's visual appeal is lost.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fVb4gMFxwMorM3ykPuRp7W" name="TCL X11L SQD Mini-LED TV-09" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/fVb4gMFxwMorM3ykPuRp7W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The X11L (seen above) includes a pair of svelte, minimalistic feet that straddle the screen close to the bottom edges of the panel. This makes the X11L a more accommodating, out-of-the-box choice than the G5 for folks who don't intend on wall-mounting their next TV, but I find the G5's design better looking than the X11L whether it's on or off a wall.</p><p>My reasoning for this comes down to the sheer bulk of the X11L's panel. It's a hefty customer, and visually speaking, it carries a similar weight. I appreciate that the X11L's chassis is mostly uniform in size, but it's quite slab-like in its overall vibe.</p><p>Still, the fact that you have to shell out for the G5's separately sold stand is a pretty significant ding against its design. This one is a draw.</p><p><em><strong>Winner:</strong></em><em> Draw</em></p><h2 id="tcl-x11l-vs-lg-g5-performance">TCL X11L vs LG G5: performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1447px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="f3EFaXwbkrGmeKJDfwUmwm" name="TCL X11L SQD Mini-LED TV-LIST2" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/f3EFaXwbkrGmeKJDfwUmwm.jpg" mos="" align="middle" fullscreen="" width="1447" height="814" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Before we dive into which of these TVs is the better performer, let's compare their test results. (Both TVs were in their respective Filmmaker picture mode when these tests were taken.)</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>TCL X11L</strong></p></th><th  ><p><strong>LG G5</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p>SDR Brightness (10%, in nits)    </p></td><td  ><p>283</p></td><td  ><p>465</p></td></tr><tr><td class="firstcol " ><p>Delta-E (lower is better)    </p></td><td  ><p>1.9</p></td><td  ><p>1.9</p></td></tr><tr><td class="firstcol " ><p>HDR Brightness (10%, in nits)    </p></td><td  ><p>2,679</p></td><td  ><p>2,296</p></td></tr><tr><td class="firstcol " ><p>UHDA-P3 Gamut Coverage    </p></td><td  ><p>97.74%</p></td><td  ><p>99.79%</p></td></tr><tr><td class="firstcol " ><p>Rec. 2020 Gamut Coverage    </p></td><td  ><p>91.77%</p></td><td  ><p>82.42% </p></td></tr><tr><td class="firstcol " ><p>Input latency (milliseconds)   </p></td><td  ><p>11.7</p></td><td  ><p>9.2</p></td></tr></tbody></table></div><p>First, let's talk about brightness. Along with its showstopping color, brightness is the X11L's bread and butter. We measured a sizzling 2,679 nits of HDR highlight brightness on the X11L, but it's worth noting that this set is capable of getting much, <em>much</em> brighter with its backlight completely cranked up.</p><p>This is especially true when measuring even smaller highlights on the X11L than the 10% window reported above. Indeed, the X11L is capable of brightness levels well above 6,000 nits.</p><p>So, how does that stack up to the G5? Thanks to the 4th-generation OLED panel from LG Display, the G5 is one of the brightest OLEDs we've ever tested, rivaling quantum dot-enhanced OLEDs from Sony and Samsung.</p><p>And, although the G5's HDR highlight brightness in Filmmaker mode is comparable to what you'll see on the X11L while the latter's backlight is kept at or around its default setting, its ceiling is nowhere near as high as the X11L's.</p><p>The X11L's added brightness is especially noticeable if you measure the luminance of the entire picture during everyday content. For people with brightly lit homes, the X11L is a much safer bet.</p><p>That said, like all OLED TVs, the G5 is capable of perfect black levels and pixel-level dimming. When you factor-in this ability, the G5's contrast-related advantages really come into focus. The X11L does a remarkably good job at minimizing haloing and light bloom (especially given its brightness), but it can't quite replicate the depth and clarity of a searingly bright OLED panel. For this reason, I find the G5's contrast to be far more appealing.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="sGpPo6pnYuKYXu4sGBFqf9" name="TG_LG-G5-TV-9" alt="The LG G5 OLED at Tom's Guide's Labs." src="https://cdn.mos.cms.futurecdn.net/sGpPo6pnYuKYXu4sGBFqf9.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div><blockquote><p>I find the G5's contrast to be far more appealing.</p></blockquote></div><p>Contrast isn't the whole story. The X11L and its unique, souped-up quantum-dot panel are engineered to squeeze as much color out of a Mini-LED-backed picture than ever before.</p><p>TCL's top-of-the-line TV for 2026 covers more of the Rec. 2020 color gamut than any Mini-LED TV we've measured to date. It even surpasses some QD-OLED TVs in this category, too.</p><p>Were you to place these TVs side by side, you would almost certainly notice brighter, bolder colors on the X11L. However, without a reference, viewers' jaws will still be on the floor for the G5's bright, well-calibrated color palette, too.</p><p>Both of these TVs deliver an incredible picture worthy of a flagship-level price tag. If you're looking for the brightest possible presentation — bright enough that colors are downright psychedelic — the X11L has a considerable edge.</p><p>For my money, though, there's no better mix than the pure, true black levels of an OLED display capable of cracking 2,000 nits. For as remarkable as TCL's SQD panel truly is, the G5 has all of the built-in benefits of an OLED panel, and that seals the deal.</p><p><em><strong>Winner:</strong></em><em> LG G5</em></p><h2 id="tcl-x11l-vs-lg-g5-smart-platform-and-features">TCL X11L vs LG G5: smart platform and features</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NCSPbAdY7umgEREUbDDR5W" name="TCL X11L SQD Mini-LED TV-10" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/NCSPbAdY7umgEREUbDDR5W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The X11L is built around the Google TV software suite, and it's a great smart platform to hang your hat on if you intend to do most of your streaming on your TV rather than an external streaming device.</p><p>I love how zippy Google TV is, and the user interface is relatively straightforward, which I suspect most people will appreciate if they don't want to fumble their way through various tabs and submenus.</p><p>The G5, on the other hand, is built around webOS 25, the newest version of LG's proprietary smart platform. It's fussier than Google TV and offers a less-streamlined experience, but you can get away with using it as a daily driver.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uitP29WyfaomHeLZ2RpQf9" name="TG_LG-G5-TV-18" alt="The LG G5 OLED at Tom's Guide's Labs." src="https://cdn.mos.cms.futurecdn.net/uitP29WyfaomHeLZ2RpQf9.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As far as gaming features go, these are similar sets. Each offers HDMI 2.1-compatibility across all four inputs, which frees you up from thinking about which port any given device should use. Both TVs also arrive with Variable Refresh Rate (VRR), Auto Low Latency Mode (ALLM) and some variation of AMD FreeSync Premium for smooth, artifact-free gameplay. </p><p>Sure, the G5 supports 4K gaming at 165Hz and the X11L tops out at 144Hz. I just can't bring myself to invest too much in this difference, though, as it won't matter to the vast majority of shoppers — even the folks shopping in this price range.</p><p>For the vast majority of viewers, these sets are basically the same when it comes to features. They both offer a top-shelf gaming experience and come with a thorough slate of A/V-related enhancements. The X11L's Google TV experience is my preferred choice between the two (and TCL includes HDR10+ support), but that's not enough for it to take this category.</p><p><em><strong>Winner: </strong></em><em>Draw</em></p><h2 id="tcl-x11l-vs-lg-g5-outlook">TCL X11L vs LG G5: outlook</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL X11L</p></th><th  ><p>LG G5</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Specs (25)</strong></p></td><td  ><p>24</p></td><td  ><p>24</p></td></tr><tr><td class="firstcol " ><p><strong>Design (25)</strong></p></td><td  ><p>21</p></td><td  ><p>21</p></td></tr><tr><td class="firstcol " ><p><strong>Performance (25)</strong></p></td><td  ><p>23</p></td><td  ><p>25</p></td></tr><tr><td class="firstcol " ><p><strong>Features (25)</strong></p></td><td  ><p>25</p></td><td  ><p>25</p></td></tr><tr><td class="firstcol " ><p><strong>Total Score (100)</strong></p></td><td  ><p><strong>93</strong></p></td><td  ><p><strong>95</strong></p></td></tr></tbody></table></div><p>Upon tallying up their report card points, it's plainly obvious that these are close competitors that perform at the highest possible level. For most people, the rubber meets the road when peeking at their respective price tags.</p><p>The TCL X11L is a brand-new TV just making its way to shelves. This is merely one reason why it's priced higher than the LG G5, which was released last year.</p><p>The primary reason why the TCL X11L is priced higher than the G5 is — to put it simply — because it's just really, <em>really </em>expensive. Right now, you can order the <a href="https://www.amazon.com/TCL-SQD-Mini-Ultimate-Brightness-Contrast/dp/B0GFDHZZ8F?th=1" target="_blank" rel="nofollow">75-inch TCL X11L for $6,999 at Amazon</a>. Meanwhile, the <a href="https://www.bestbuy.com/product/tcl-85-x11l-series-4k-uhd-hdr-sqd-mini-led-smart-tv-with-google-tv-2026/J36QYTH3VY" target="_blank" rel="nofollow">85-inch X11L is $7,999 at Best Buy</a>.</p><p>For comparison's sake, the 77-inch G5 was $4,399 at launch. As a year-old model, it's even cheaper today. You can grab the <a href="https://www.bestbuy.com/product/lg-77-class-g5-series-oled-evo-ai-4k-uhd-smart-webos-tv-with-one-wall-design-2025/JJ8VPZTK5F/sku/6621819" target="_blank" rel="nofollow">77-inch LG G5 for $3,499 at Best Buy</a> right now — half the price of the 75-inch X11L.</p><p>The G5 is also available in 55- and 65-inch models, which is something you <em>can't</em> say for the X11L. For people in the market for a smaller-sized, high-performance TV, the <a href="https://www.amazon.com/LG-Upscaling-Filmmaker-Orchestra-OLED55G5WUA/dp/B0DYQGRHX3" target="_blank" rel="nofollow">55-inch G5 being available for $1,449 at Amazon</a> will make this decision an open-shut case.</p><p>Still, there's no denying that the TCL X11L is one of the year's best TVs. It's also proof that there are still ways to eke more performance gains out of Mini-LED display tech. Given its high price, I suspect it will be a tough sell for most people until it goes on sale.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review">I tested TCL’s $8,000 SQD Mini-LED TV — here's my verdict</a></li><li><a href="https://www.tomsguide.com/tvs/oled-tvs/lg-g5-oled-tv-review">LG G5 OLED TV review</a></li><li><a href="https://www.tomsguide.com/tvs/the-ram-crisis-came-for-computers-first-and-now-its-coming-for-tvs-heres-why-i-recommend-upgrading-while-you-still-can">The RAM crisis came for computers first and now it's coming for TVs — here's why I recommend upgrading while you still can</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ From QLEDs to OLEDs, here are the 9 best TV deals to pounce on before TV prices take off in 2026 ]]></title>
                                                                                                <dc:content><![CDATA[ <p>As many of the biggest brands in the TV industry gear up to launch their newest QLEDs, OLEDs and RGB LED TVs, one question is on the minds of people hoping to upgrade their living room in 2026: <em>Will the ongoing </em><a href="https://www.tomsguide.com/computing/ram-price-crisis-2026-everything-you-need-to-know"><em>RAM crisis</em></a><em> affect the price of a new TV this year?</em></p><p>While we haven’t seen much in the way of confirmed pricing for 2026 TVs, many analysts are predicting higher TV prices this spring as the demand rapidly increases for DRAM and RAM. I’m one of the experts sounding the alarm, and if I were in the market for a new TV, I’d be looking to buy one as soon as possible.</p><p>With this in mind, I’ve corralled several of the best deals you can currently get on TVs that are actually worth buying. We won’t know how these prices compare to newer models until brands begin rolling out their 2026 TVs, but they’re already massively discounted and worth your consideration.</p><h2 id="1-tcl-qm5k">1. TCL QM5K</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="vCnRGsdCB3mnCFg3YgsEfh" name="TCL-QM5K-Mini-LED-TV-Google-TV-Home-Screen" alt="The TCL QM5K Mini-LED TV displaying the Google TV home screen" src="https://cdn.mos.cms.futurecdn.net/vCnRGsdCB3mnCFg3YgsEfh.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>TCL's most-affordable Mini-LED TV is the QM5K, a Best Buy-exclusive model that prioritizes value above all else. Over the last several months, I've been recommending this TV for people who just want an affordable, 4K smart TV that doesn't scrape the bottom of the proverbial barrel. Given its ultra-low price, I suspect I'll be recommending it even more in the coming months in the face of RAM-related price hikes.</p><p>The QM5K's modest array of Mini-LED backlights are better to have at your disposal than the low-contrast, edge-lit panels that budget-friendly TVs typically use. You'll appreciate having Mini-LEDs whether you're streaming shows during the day or dimming the lights for movie night.</p><p>The QM5K also comes with Google TV built right into the software. If you're hoping to rely on your TV's smart platform for all of your usual streaming needs, Google TV is an excellent software suite to hang your hat on. Right now, the 55-inch version is well under $400.</p><div class="product"><a data-dimension112="44af0f3b-8c79-43ed-9b2d-4a61d3975633" data-action="Deal Block" data-label="QM5K 4K Mini-LED TV" data-dimension48="QM5K 4K Mini-LED TV" data-dimension25="$379" href="https://www.bestbuy.com/product/tcl-55-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZR" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="a7hfeCnr9iXywQGB8VRvA9" name="TCL-QM5K-Mini-LED-TV-16-by-9-Deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/a7hfeCnr9iXywQGB8VRvA9.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-55-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZR" target="_blank" rel="nofollow" data-dimension112="44af0f3b-8c79-43ed-9b2d-4a61d3975633" data-action="Deal Block" data-label="QM5K 4K Mini-LED TV" data-dimension48="QM5K 4K Mini-LED TV" data-dimension25="$379">QM5K 4K Mini-LED TV: was $699 now $379</a></strong><br>Who's afraid of the ongoing RAM crisis when you can land a 55-inch Mini-LED TV for just $379? The TCL QM5K is a perfect pick for people who just need to upgrade to a new, affordable 4K TV with easy-to-use smart features. Its Mini-LED backlighting is very hard to find at this price point.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-55-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZR" target="_blank" rel="nofollow" data-dimension112="44af0f3b-8c79-43ed-9b2d-4a61d3975633" data-action="Deal Block" data-label="QM5K 4K Mini-LED TV" data-dimension48="QM5K 4K Mini-LED TV" data-dimension25="$379">View Deal</a></p></div><h2 id="2-hisense-u65qf">2. Hisense U65QF</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="v82Xvbhr52u74MQgopE3dB" name="Amazon Fire TV on the Hisense U65QF-1-LIST" alt="The Hisense U65QF at a press event in NYC." src="https://cdn.mos.cms.futurecdn.net/v82Xvbhr52u74MQgopE3dB.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If you want something a bit more performance-oriented than the QM5K but still want to keep costs down, consider the 55-inch <a href="https://www.tomsguide.com/tvs/4k-tvs/hisense-u65qf-mini-led-tv-review">Hisense U65QF</a>. It comes with a brighter picture than any set we've tested in its entry-level class, which makes it a great choice for folks who watch a ton of TV during the day.</p><p>The 55-inch version of the U65QF costs about $100 more than the 55-inch QM5K, but the U65QF's price is still remarkably low for a TV of its type.</p><p>Hisense will almost certainly launch a new entry-level Mini-LED TV sometime in the coming months, but it's almost guaranteed to cost more than the U65QF currently costs on sale. If you're hoping to get out in front of the RAM crisis' downstream effect on TV pricing, this is a great TV to go for.</p><div class="product"><a data-dimension112="4de6387c-7561-4486-8fc3-9e1d55b481cd" data-action="Deal Block" data-label="55" U65QF 4K Mini-LED TV" data-dimension48="55" U65QF 4K Mini-LED TV" data-dimension25="$449" href="https://www.amazon.com/Hisense-Class-Mini-LED-55U65QF-Built/dp/B0DYWG3BL1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:900px;"><p class="vanilla-image-block" style="padding-top:60.89%;"><img id="xMqoTz79rH7r2QjMaxD4AV" name="Hisense U65QF" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/xMqoTz79rH7r2QjMaxD4AV.jpg" mos="" align="middle" fullscreen="" width="900" height="548" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Hisense-Class-Mini-LED-55U65QF-Built/dp/B0DYWG3BL1" target="_blank" rel="nofollow" data-dimension112="4de6387c-7561-4486-8fc3-9e1d55b481cd" data-action="Deal Block" data-label='55" U65QF 4K Mini-LED TV' data-dimension48='55" U65QF 4K Mini-LED TV' data-dimension25="$449">55" U65QF 4K Mini-LED TV: was $549 now $449</a></strong><br>The U65QF is one of the most affordable Mini-LED TVs on the market, and this deal ups its value even further. Enjoy better brightness and overall contrast than what you'll get on a basic, garden-variety LED TV, as well as an array of built-in, Fire TV-powered smart features.<a class="view-deal button" href="https://www.amazon.com/Hisense-Class-Mini-LED-55U65QF-Built/dp/B0DYWG3BL1" target="_blank" rel="nofollow" data-dimension112="4de6387c-7561-4486-8fc3-9e1d55b481cd" data-action="Deal Block" data-label="55" U65QF 4K Mini-LED TV" data-dimension48="55" U65QF 4K Mini-LED TV" data-dimension25="$449">View Deal</a></p></div><h2 id="3-tcl-qm6k">3. TCL QM6K</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="FmeRUErxShQcgSjAYFeutL" name="TCL QM6K-07" alt="TCL QM6K QD-Mini LED TV" src="https://cdn.mos.cms.futurecdn.net/FmeRUErxShQcgSjAYFeutL.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>If a 65-inch TV is what you seek but you're not looking to spend more than $550 on a screen of this size, I recommend taking advantage of Best Buy's current deal on the <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review">TCL QM6K</a>. It features a better Mini-LED display than that of the QM5K, and right now, the QM6K is heavily discounted.</p><p>Another benefit that the QM6K has over the aforementioned QM5K is that it supports 4K gaming at 120Hz or 144Hz across two of its HDMI inputs. This makes it a better pick for casual and dedicated gamers.</p><p>TCL has been relatively tight-lipped about the release dates and prices for its mainline series of 2026 TVs, but you can reasonably expect this 2025 model to undercut new models by a few hundred dollars.</p><div class="product"><a data-dimension112="b5712ce9-bcd5-4627-b5e5-170732f75612" data-action="Deal Block" data-label="65” QM6K 4K Mini-LED TV" data-dimension48="65” QM6K 4K Mini-LED TV" data-dimension25="$529" href="https://www.bestbuy.com/product/tcl-65-class-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5K" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:61.93%;"><img id="sLXAogfAqKCUoj8BruTYZm" name="712IORjS-gL._AC_SL1500_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/sLXAogfAqKCUoj8BruTYZm.jpg" mos="" align="middle" fullscreen="" width="1500" height="929" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-65-class-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5K" target="_blank" rel="nofollow" data-dimension112="b5712ce9-bcd5-4627-b5e5-170732f75612" data-action="Deal Block" data-label="65” QM6K 4K Mini-LED TV" data-dimension48="65” QM6K 4K Mini-LED TV" data-dimension25="$529">65” QM6K 4K Mini-LED TV: was $999 now $529</a></strong><br>For several months, the TCL QM6K has been one of my go-to recommendations for folks looking for a quality screen on a budget. It's a budget-friendly, 65-inch Mini-LED TV that's perfect for folks who want to upgrade to a dependable, good-looking TV without spending too much.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-65-class-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5K" target="_blank" rel="nofollow" data-dimension112="b5712ce9-bcd5-4627-b5e5-170732f75612" data-action="Deal Block" data-label="65” QM6K 4K Mini-LED TV" data-dimension48="65” QM6K 4K Mini-LED TV" data-dimension25="$529">View Deal</a></p></div><h2 id="4-roku-pro-series">4. Roku Pro Series</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="32gPqDzLUrLbQ5upeoRYhA" name="Roku Pro Series-2.jpg" alt="Roku Pro Series shown on a table" src="https://cdn.mos.cms.futurecdn.net/32gPqDzLUrLbQ5upeoRYhA.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If you've had an opportunity to use a Roku device before, you probably understand the appeal. The software's clean-looking interface is easy to warm up to, while Roku's library of downloadable apps is vast.</p><p>But the Roku Pro Series' best feature is its display, which blends Mini-LED backlighting with quantum dot-enhanced color. It's truly an impressive TV for movies and shows, and the fact that it comes with my favorite smart platform is an excellent bonus.</p><p>Not much is known about Roku's plans for 2026, but if you're already shopping for a well-engineered TV that simplifies streaming, I'd put the Pro Series at the top of the list of candidates. Right now, the 65-inch version is $300 off at Best Buy.</p><div class="product"><a data-dimension112="121e0398-420e-4b3f-bc90-ed8f4df7e1fb" data-action="Deal Block" data-label="65" Pro Series 4K QLED TV" data-dimension48="65" Pro Series 4K QLED TV" data-dimension25="$899" href="https://www.bestbuy.com/product/roku-65-class-pro-series-4k-qled-mini-led-smart-rokutv-2025/J3PFCJQ95Y/sku/6625625" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="ZwbzwxPurtS8TJ6ENrL4kQ" name="Roku-Pro-Series-Vanity.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ZwbzwxPurtS8TJ6ENrL4kQ.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/roku-65-class-pro-series-4k-qled-mini-led-smart-rokutv-2025/J3PFCJQ95Y/sku/6625625" target="_blank" rel="nofollow" data-dimension112="121e0398-420e-4b3f-bc90-ed8f4df7e1fb" data-action="Deal Block" data-label='65" Pro Series 4K QLED TV' data-dimension48='65" Pro Series 4K QLED TV' data-dimension25="$899">65" Pro Series 4K QLED TV: was $1199 now $899</a></strong><br>The Roku Pro Series is an affordable Mini-LED 4K TV that offers a simple-but-powerful backdrop for all of your streaming needs. Its quantum-dot color and Mini-LED backlighting make this TV a step above most others in its price range. Plus, there are enough gaming features here to satisfy both casual and dedicated gamers.<a class="view-deal button" href="https://www.bestbuy.com/product/roku-65-class-pro-series-4k-qled-mini-led-smart-rokutv-2025/J3PFCJQ95Y/sku/6625625" target="_blank" rel="nofollow" data-dimension112="121e0398-420e-4b3f-bc90-ed8f4df7e1fb" data-action="Deal Block" data-label="65" Pro Series 4K QLED TV" data-dimension48="65" Pro Series 4K QLED TV" data-dimension25="$899">View Deal</a></p></div><h2 id="5-tcl-qm7k">5. TCL QM7K</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="dQDaNgZLzTn4ZiTXfeYgvh" name="TG_TCL-QM7K-TV-5" alt="A TCL QM7K QD-Mini LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/dQDaNgZLzTn4ZiTXfeYgvh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Much like the Roku Pro Series, the TCL QM7K offers a much punchier picture than what you'll find on entry-level sets like the QM5K and QM6K. This TV is pricier than those models because, in many cases, it gets at least twice as bright.</p><p>In addition, the QM7K's thorough collection of gaming features is one of the reasons I've been recommending it to people for several months now. </p><p>Its current sale price brings it down to a relatively low price when compared to higher-end Mini-LED TVs, and it's also a safe bet to assume that this deal will look even better when 2026 TVs begin to reach the market.</p><div class="product"><a data-dimension112="ea299a11-963e-495a-99a6-4977a6151797" data-action="Deal Block" data-label="65" QM7K 4K Mini-LED TV" data-dimension48="65" QM7K 4K Mini-LED TV" data-dimension25="$998" href="https://www.bestbuy.com/product/tcl-65-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCT" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NZFuiZ8YJxwt3TLDFKUiJm" name="TCL-QM7K-Mini-LED-TV-Vanity" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/NZFuiZ8YJxwt3TLDFKUiJm.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-65-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCT" target="_blank" rel="nofollow" data-dimension112="ea299a11-963e-495a-99a6-4977a6151797" data-action="Deal Block" data-label='65" QM7K 4K Mini-LED TV' data-dimension48='65" QM7K 4K Mini-LED TV' data-dimension25="$998">65" QM7K 4K Mini-LED TV: was $1499 now $998</a></strong><br>The TCL QM7K is perfect for folks who want to upgrade to a truly impressive TV without breaking the bank. It's also an especially good TV for gamers on a budget, thanks to an impressive array of gaming enhancements.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-65-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCT" target="_blank" rel="nofollow" data-dimension112="ea299a11-963e-495a-99a6-4977a6151797" data-action="Deal Block" data-label="65" QM7K 4K Mini-LED TV" data-dimension48="65" QM7K 4K Mini-LED TV" data-dimension25="$998">View Deal</a></p></div><h2 id="6-lg-c5">6. LG C5</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="h9dbeJK2VNhVSDxuvbre2c" name="LG C5-06" alt="Spider-Man: Across the Spider-Verse on a LG C5 OLED TV" src="https://cdn.mos.cms.futurecdn.net/h9dbeJK2VNhVSDxuvbre2c.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If you've spent several years yearning for one of LG's award-winning C Series OLED TVs, take note: This might be your last opportunity to get a good deal on the <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c5-oled-tv-review">LG C5</a>. There's a very good chance that the upcoming <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c6-oled">LG C6</a> will debut at a higher price than its predecessor.</p><p>All of the benefits of OLED technology are accounted for, including perfect black levels, ultra-wide viewing angles and pixel-level dimming. Right now, the 65-inch version is about 48% off its original price, and stock is sure to shrink as the year moves along.</p><p>The LG C5 is one of my favorite TVs in recent years, and while I'm excited to see what the C6 brings to the table in the coming months, I will find it much harder to recommend the C6 if its price is, indeed, affected by the ongoing RAM crisis.</p><div class="product"><a data-dimension112="da1daf30-9026-482c-ba59-347404840f6b" data-action="Deal Block" data-label="65" C5 4K OLED TV" data-dimension48="65" C5 4K OLED TV" data-dimension25="$1399" href="https://www.bestbuy.com/product/lg-65-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTRG6" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="36Tn6ZvqxRqxMo9tCTpsGg" name="LG-C5-OLED-1-by-1" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/36Tn6ZvqxRqxMo9tCTpsGg.jpg" mos="" align="middle" fullscreen="" width="3000" height="3000" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/lg-65-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTRG6" target="_blank" rel="nofollow" data-dimension112="da1daf30-9026-482c-ba59-347404840f6b" data-action="Deal Block" data-label='65" C5 4K OLED TV' data-dimension48='65" C5 4K OLED TV' data-dimension25="$1399">65" C5 4K OLED TV: was $2699 now $1399</a></strong><br>The C5 delivers all of the benefits we've come to expect from OLED displays, but its design, software and overall experience is the result of LG's excellent engineering.<a class="view-deal button" href="https://www.bestbuy.com/product/lg-65-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTRG6" target="_blank" rel="nofollow" data-dimension112="da1daf30-9026-482c-ba59-347404840f6b" data-action="Deal Block" data-label="65" C5 4K OLED TV" data-dimension48="65" C5 4K OLED TV" data-dimension25="$1399">View Deal</a></p></div><h2 id="7-samsung-s95f">7. Samsung S95F</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="iEhWN7YvmzSYRfQgxRqnwF" name="Samsung-S95F-2001-A-Space-Odyssey" alt="2001 A Space Odyssey on a Samsung S95F OLED TV" src="https://cdn.mos.cms.futurecdn.net/iEhWN7YvmzSYRfQgxRqnwF.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If you're comfortable splurging on a top-of-the-line OLED TV but you're nonetheless nervous about how current economic forces might impact TV prices, I recommend choosing one of last year's <a href="https://www.tomsguide.com/tvs/oled-tvs/best-oled-tvs">best OLED TVs</a>, the <a href="https://www.tomsguide.com/tvs/4k-tvs/samsung-s95f-oled-tv-review">Samsung S95F</a>.</p><p>Like the LG C5, the S95F is capable of perfect black levels and pixel-level dimming. However, Samsung's flagship OLED delivers quantum dot-enhanced color for brighter colors and highlights. Unsurprisingly, this incredible, flagship-level OLED comes with plenty of streaming- and gaming-related features.</p><p>Samsung is one of the only TV makers that's been transparent about the possible impact of the RAM shortage on the newest models, and I'm inclined to take them at their word. There's no guarantee that the S95H will ever be as affordable as the S95F currently is.</p><div class="product"><a data-dimension112="7e80680f-1808-40af-b482-b59bbc87b559" data-action="Deal Block" data-label="65" S95F QD-OLED" data-dimension48="65" S95F QD-OLED" data-dimension25="$2384" href="https://www.amazon.com/SAMSUNG-65-Inch-Processor-Xcelerator-Samsung/dp/B0DXMJFJ7W?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:63.00%;"><img id="R9i85LheUkxs6jyZGM8xrc" name="61N5xjm0wuL._AC_SL1000_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/R9i85LheUkxs6jyZGM8xrc.jpg" mos="" align="middle" fullscreen="" width="1000" height="630" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/SAMSUNG-65-Inch-Processor-Xcelerator-Samsung/dp/B0DXMJFJ7W?th=1" target="_blank" rel="nofollow" data-dimension112="7e80680f-1808-40af-b482-b59bbc87b559" data-action="Deal Block" data-label='65" S95F QD-OLED' data-dimension48='65" S95F QD-OLED' data-dimension25="$2384">65" S95F QD-OLED: was $2997 now $2384</a></strong><br>The S95F offers better color volume and higher highlight brightness than what you'll find on mid-range OLED TVs, and as a flagship model, you're also getting just about every gaming feature under the sun.<a class="view-deal button" href="https://www.amazon.com/SAMSUNG-65-Inch-Processor-Xcelerator-Samsung/dp/B0DXMJFJ7W?th=1" target="_blank" rel="nofollow" data-dimension112="7e80680f-1808-40af-b482-b59bbc87b559" data-action="Deal Block" data-label="65" S95F QD-OLED" data-dimension48="65" S95F QD-OLED" data-dimension25="$2384">View Deal</a></p></div><h2 id="more-to-consider">More to consider</h2><div class="product"><a data-dimension112="c4a650f4-8384-4478-bfa2-0649ea69013e" data-action="Deal Block" data-label="65" S84F 4K OLED TV" data-dimension48="65" S84F 4K OLED TV" data-dimension25="$949" href="https://www.bestbuy.com/product/samsung-65-class-s84f-oled-4k-uhd-vision-ai-smart-tizen-tv-2025/JJGRF39ZVL" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:900px;"><p class="vanilla-image-block" style="padding-top:66.67%;"><img id="WLkxnYAtPurKgVX6mGS336" name="5e170c99-71a4-4ad9-b19f-720201d9a73b" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/WLkxnYAtPurKgVX6mGS336.webp" mos="" align="middle" fullscreen="" width="900" height="600" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/samsung-65-class-s84f-oled-4k-uhd-vision-ai-smart-tizen-tv-2025/JJGRF39ZVL" target="_blank" rel="nofollow" data-dimension112="c4a650f4-8384-4478-bfa2-0649ea69013e" data-action="Deal Block" data-label='65" S84F 4K OLED TV' data-dimension48='65" S84F 4K OLED TV' data-dimension25="$949">65" S84F 4K OLED TV: was $1999 now $949</a></strong><br>Samsung's most affordable OLED TV of 2025 may not be as much of a showstopper as the brand's flagship-level S95F, but it's priced well for a 65-inch OLED TV. It also comes with a useful array of gaming enhancements and streaming features. It's gone up a bit since Black Friday and Cyber Monday, but is still under $1,000, making it a hard bargain to beat. <a class="view-deal button" href="https://www.bestbuy.com/product/samsung-65-class-s84f-oled-4k-uhd-vision-ai-smart-tizen-tv-2025/JJGRF39ZVL" target="_blank" rel="nofollow" data-dimension112="c4a650f4-8384-4478-bfa2-0649ea69013e" data-action="Deal Block" data-label="65" S84F 4K OLED TV" data-dimension48="65" S84F 4K OLED TV" data-dimension25="$949">View Deal</a></p></div><div class="product"><a data-dimension112="55159454-44eb-4dac-93aa-1adf29a99487" data-action="Deal Block" data-label="65" S90D 4K OLED TV" data-dimension48="65" S90D 4K OLED TV" data-dimension25="$1195" href="https://www.amazon.com/SAMSUNG-Tracking-Xcelerator-Enhancer-Upscaling/dp/B0CV9VGMPT" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1052px;"><p class="vanilla-image-block" style="padding-top:90.49%;"><img id="HBR7MYEFwR6gPxyu5XLGHg" name="Samsung S90D 4K OLED TV deal block.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/HBR7MYEFwR6gPxyu5XLGHg.jpg" mos="" align="middle" fullscreen="" width="1052" height="952" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/SAMSUNG-Tracking-Xcelerator-Enhancer-Upscaling/dp/B0CV9VGMPT" target="_blank" rel="nofollow" data-dimension112="55159454-44eb-4dac-93aa-1adf29a99487" data-action="Deal Block" data-label='65" S90D 4K OLED TV' data-dimension48='65" S90D 4K OLED TV' data-dimension25="$1195">65" S90D 4K OLED TV: was $1697 now $1195</a></strong><br>The S90D is one of Samsung's older 2024 OLED TVs. The OLED TV features Samsung's new NQ4 AI Gen2 processor, HDR10+/HLG support, 120Hz refresh rate, four HDMI 2.1 ports, and built-in Alexa. It also offers 4K AI Upscaling to ensure all programs are crisp and sharp. On the audio front, you get Dolby Atmos and Object Tracking Sound Lite for 3D surround sound.<br><strong>Price check: </strong><a href="https://www.bestbuy.com/site/samsung-65-class-s90d-series-oled-4k-uhd-smart-tizen-tv-2024/6576598.p?skuId=6576598" target="_blank" rel="nofollow"><strong>$1,195 @ Best Buy</strong></a><strong></strong><a class="view-deal button" href="https://www.amazon.com/SAMSUNG-Tracking-Xcelerator-Enhancer-Upscaling/dp/B0CV9VGMPT" target="_blank" rel="nofollow" data-dimension112="55159454-44eb-4dac-93aa-1adf29a99487" data-action="Deal Block" data-label="65" S90D 4K OLED TV" data-dimension48="65" S90D 4K OLED TV" data-dimension25="$1195">View Deal</a></p></div><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/its-time-to-replace-your-tv-if-you-notice-any-of-these-5-issues">I test TVs for a living — 5 signs it's time to replace your TV</a></li><li><a href="https://www.tomsguide.com/tvs/ive-set-up-hundreds-of-tvs-in-my-career-here-are-6-mistakes-people-make-when-setting-up-a-new-tv">I’ve set up hundreds of TVs in my career — here are 6 mistakes people make when setting up a new TV</a></li><li><a href="https://www.tomsguide.com/tvs/oled-tvs/best-oled-tvs">Best OLED TVs in 2026 tested: Our top picks from LG, Samsung and more</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/from-qleds-to-oleds-here-are-the-7-best-tv-deals-to-pounce-on-before-tv-prices-take-off-in-2026</link>
                                                                            <description>
                            <![CDATA[ If I were in the market for a new TV, I’d be looking to buy one as soon as possible. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">aXsD6Ywa3zu4JVDxHDWauN</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/cXu53N7pMsaTnHqRK5tGxK-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 24 Feb 2026 11:00:00 +0000</pubDate>                                                                                                                                <updated>Wed, 25 Feb 2026 10:14:37 +0000</updated>
                                                                                                                                            <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/cXu53N7pMsaTnHqRK5tGxK-1280-80.jpg">
                                                            <media:credit><![CDATA[Samsung / LG / Roku / TCL]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Four TVs arranged into quadrants, each displaying colorful images: the Samsung S95F, the LG B5, the Roku Pro Series and the TCL QM7K.]]></media:description>                                                            <media:text><![CDATA[Four TVs arranged into quadrants, each displaying colorful images: the Samsung S95F, the LG B5, the Roku Pro Series and the TCL QM7K.]]></media:text>
                                <media:title type="plain"><![CDATA[Four TVs arranged into quadrants, each displaying colorful images: the Samsung S95F, the LG B5, the Roku Pro Series and the TCL QM7K.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/cXu53N7pMsaTnHqRK5tGxK-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>As many of the biggest brands in the TV industry gear up to launch their newest QLEDs, OLEDs and RGB LED TVs, one question is on the minds of people hoping to upgrade their living room in 2026: <em>Will the ongoing </em><a href="https://www.tomsguide.com/computing/ram-price-crisis-2026-everything-you-need-to-know"><em>RAM crisis</em></a><em> affect the price of a new TV this year?</em></p><p>While we haven’t seen much in the way of confirmed pricing for 2026 TVs, many analysts are predicting higher TV prices this spring as the demand rapidly increases for DRAM and RAM. I’m one of the experts sounding the alarm, and if I were in the market for a new TV, I’d be looking to buy one as soon as possible.</p><p>With this in mind, I’ve corralled several of the best deals you can currently get on TVs that are actually worth buying. We won’t know how these prices compare to newer models until brands begin rolling out their 2026 TVs, but they’re already massively discounted and worth your consideration.</p><h2 id="1-tcl-qm5k">1. TCL QM5K</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="vCnRGsdCB3mnCFg3YgsEfh" name="TCL-QM5K-Mini-LED-TV-Google-TV-Home-Screen" alt="The TCL QM5K Mini-LED TV displaying the Google TV home screen" src="https://cdn.mos.cms.futurecdn.net/vCnRGsdCB3mnCFg3YgsEfh.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>TCL's most-affordable Mini-LED TV is the QM5K, a Best Buy-exclusive model that prioritizes value above all else. Over the last several months, I've been recommending this TV for people who just want an affordable, 4K smart TV that doesn't scrape the bottom of the proverbial barrel. Given its ultra-low price, I suspect I'll be recommending it even more in the coming months in the face of RAM-related price hikes.</p><p>The QM5K's modest array of Mini-LED backlights are better to have at your disposal than the low-contrast, edge-lit panels that budget-friendly TVs typically use. You'll appreciate having Mini-LEDs whether you're streaming shows during the day or dimming the lights for movie night.</p><p>The QM5K also comes with Google TV built right into the software. If you're hoping to rely on your TV's smart platform for all of your usual streaming needs, Google TV is an excellent software suite to hang your hat on. Right now, the 55-inch version is well under $400.</p><div class="product"><a data-dimension112="44af0f3b-8c79-43ed-9b2d-4a61d3975633" data-action="Deal Block" data-label="QM5K 4K Mini-LED TV" data-dimension48="QM5K 4K Mini-LED TV" data-dimension25="$379" href="https://www.bestbuy.com/product/tcl-55-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZR" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="a7hfeCnr9iXywQGB8VRvA9" name="TCL-QM5K-Mini-LED-TV-16-by-9-Deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/a7hfeCnr9iXywQGB8VRvA9.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-55-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZR" target="_blank" rel="nofollow" data-dimension112="44af0f3b-8c79-43ed-9b2d-4a61d3975633" data-action="Deal Block" data-label="QM5K 4K Mini-LED TV" data-dimension48="QM5K 4K Mini-LED TV" data-dimension25="$379">QM5K 4K Mini-LED TV: was $699 now $379</a></strong><br>Who's afraid of the ongoing RAM crisis when you can land a 55-inch Mini-LED TV for just $379? The TCL QM5K is a perfect pick for people who just need to upgrade to a new, affordable 4K TV with easy-to-use smart features. Its Mini-LED backlighting is very hard to find at this price point.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-55-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZR" target="_blank" rel="nofollow" data-dimension112="44af0f3b-8c79-43ed-9b2d-4a61d3975633" data-action="Deal Block" data-label="QM5K 4K Mini-LED TV" data-dimension48="QM5K 4K Mini-LED TV" data-dimension25="$379">View Deal</a></p></div><h2 id="2-hisense-u65qf">2. Hisense U65QF</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="v82Xvbhr52u74MQgopE3dB" name="Amazon Fire TV on the Hisense U65QF-1-LIST" alt="The Hisense U65QF at a press event in NYC." src="https://cdn.mos.cms.futurecdn.net/v82Xvbhr52u74MQgopE3dB.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If you want something a bit more performance-oriented than the QM5K but still want to keep costs down, consider the 55-inch <a href="https://www.tomsguide.com/tvs/4k-tvs/hisense-u65qf-mini-led-tv-review">Hisense U65QF</a>. It comes with a brighter picture than any set we've tested in its entry-level class, which makes it a great choice for folks who watch a ton of TV during the day.</p><p>The 55-inch version of the U65QF costs about $100 more than the 55-inch QM5K, but the U65QF's price is still remarkably low for a TV of its type.</p><p>Hisense will almost certainly launch a new entry-level Mini-LED TV sometime in the coming months, but it's almost guaranteed to cost more than the U65QF currently costs on sale. If you're hoping to get out in front of the RAM crisis' downstream effect on TV pricing, this is a great TV to go for.</p><div class="product"><a data-dimension112="4de6387c-7561-4486-8fc3-9e1d55b481cd" data-action="Deal Block" data-label="55" U65QF 4K Mini-LED TV" data-dimension48="55" U65QF 4K Mini-LED TV" data-dimension25="$449" href="https://www.amazon.com/Hisense-Class-Mini-LED-55U65QF-Built/dp/B0DYWG3BL1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:900px;"><p class="vanilla-image-block" style="padding-top:60.89%;"><img id="xMqoTz79rH7r2QjMaxD4AV" name="Hisense U65QF" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/xMqoTz79rH7r2QjMaxD4AV.jpg" mos="" align="middle" fullscreen="" width="900" height="548" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Hisense-Class-Mini-LED-55U65QF-Built/dp/B0DYWG3BL1" target="_blank" rel="nofollow" data-dimension112="4de6387c-7561-4486-8fc3-9e1d55b481cd" data-action="Deal Block" data-label='55" U65QF 4K Mini-LED TV' data-dimension48='55" U65QF 4K Mini-LED TV' data-dimension25="$449">55" U65QF 4K Mini-LED TV: was $549 now $449</a></strong><br>The U65QF is one of the most affordable Mini-LED TVs on the market, and this deal ups its value even further. Enjoy better brightness and overall contrast than what you'll get on a basic, garden-variety LED TV, as well as an array of built-in, Fire TV-powered smart features.<a class="view-deal button" href="https://www.amazon.com/Hisense-Class-Mini-LED-55U65QF-Built/dp/B0DYWG3BL1" target="_blank" rel="nofollow" data-dimension112="4de6387c-7561-4486-8fc3-9e1d55b481cd" data-action="Deal Block" data-label="55" U65QF 4K Mini-LED TV" data-dimension48="55" U65QF 4K Mini-LED TV" data-dimension25="$449">View Deal</a></p></div><h2 id="3-tcl-qm6k">3. TCL QM6K</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="FmeRUErxShQcgSjAYFeutL" name="TCL QM6K-07" alt="TCL QM6K QD-Mini LED TV" src="https://cdn.mos.cms.futurecdn.net/FmeRUErxShQcgSjAYFeutL.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>If a 65-inch TV is what you seek but you're not looking to spend more than $550 on a screen of this size, I recommend taking advantage of Best Buy's current deal on the <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review">TCL QM6K</a>. It features a better Mini-LED display than that of the QM5K, and right now, the QM6K is heavily discounted.</p><p>Another benefit that the QM6K has over the aforementioned QM5K is that it supports 4K gaming at 120Hz or 144Hz across two of its HDMI inputs. This makes it a better pick for casual and dedicated gamers.</p><p>TCL has been relatively tight-lipped about the release dates and prices for its mainline series of 2026 TVs, but you can reasonably expect this 2025 model to undercut new models by a few hundred dollars.</p><div class="product"><a data-dimension112="b5712ce9-bcd5-4627-b5e5-170732f75612" data-action="Deal Block" data-label="65” QM6K 4K Mini-LED TV" data-dimension48="65” QM6K 4K Mini-LED TV" data-dimension25="$529" href="https://www.bestbuy.com/product/tcl-65-class-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5K" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:61.93%;"><img id="sLXAogfAqKCUoj8BruTYZm" name="712IORjS-gL._AC_SL1500_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/sLXAogfAqKCUoj8BruTYZm.jpg" mos="" align="middle" fullscreen="" width="1500" height="929" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-65-class-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5K" target="_blank" rel="nofollow" data-dimension112="b5712ce9-bcd5-4627-b5e5-170732f75612" data-action="Deal Block" data-label="65” QM6K 4K Mini-LED TV" data-dimension48="65” QM6K 4K Mini-LED TV" data-dimension25="$529">65” QM6K 4K Mini-LED TV: was $999 now $529</a></strong><br>For several months, the TCL QM6K has been one of my go-to recommendations for folks looking for a quality screen on a budget. It's a budget-friendly, 65-inch Mini-LED TV that's perfect for folks who want to upgrade to a dependable, good-looking TV without spending too much.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-65-class-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5K" target="_blank" rel="nofollow" data-dimension112="b5712ce9-bcd5-4627-b5e5-170732f75612" data-action="Deal Block" data-label="65” QM6K 4K Mini-LED TV" data-dimension48="65” QM6K 4K Mini-LED TV" data-dimension25="$529">View Deal</a></p></div><h2 id="4-roku-pro-series">4. Roku Pro Series</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="32gPqDzLUrLbQ5upeoRYhA" name="Roku Pro Series-2.jpg" alt="Roku Pro Series shown on a table" src="https://cdn.mos.cms.futurecdn.net/32gPqDzLUrLbQ5upeoRYhA.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If you've had an opportunity to use a Roku device before, you probably understand the appeal. The software's clean-looking interface is easy to warm up to, while Roku's library of downloadable apps is vast.</p><p>But the Roku Pro Series' best feature is its display, which blends Mini-LED backlighting with quantum dot-enhanced color. It's truly an impressive TV for movies and shows, and the fact that it comes with my favorite smart platform is an excellent bonus.</p><p>Not much is known about Roku's plans for 2026, but if you're already shopping for a well-engineered TV that simplifies streaming, I'd put the Pro Series at the top of the list of candidates. Right now, the 65-inch version is $300 off at Best Buy.</p><div class="product"><a data-dimension112="121e0398-420e-4b3f-bc90-ed8f4df7e1fb" data-action="Deal Block" data-label="65" Pro Series 4K QLED TV" data-dimension48="65" Pro Series 4K QLED TV" data-dimension25="$899" href="https://www.bestbuy.com/product/roku-65-class-pro-series-4k-qled-mini-led-smart-rokutv-2025/J3PFCJQ95Y/sku/6625625" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="ZwbzwxPurtS8TJ6ENrL4kQ" name="Roku-Pro-Series-Vanity.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ZwbzwxPurtS8TJ6ENrL4kQ.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/roku-65-class-pro-series-4k-qled-mini-led-smart-rokutv-2025/J3PFCJQ95Y/sku/6625625" target="_blank" rel="nofollow" data-dimension112="121e0398-420e-4b3f-bc90-ed8f4df7e1fb" data-action="Deal Block" data-label='65" Pro Series 4K QLED TV' data-dimension48='65" Pro Series 4K QLED TV' data-dimension25="$899">65" Pro Series 4K QLED TV: was $1199 now $899</a></strong><br>The Roku Pro Series is an affordable Mini-LED 4K TV that offers a simple-but-powerful backdrop for all of your streaming needs. Its quantum-dot color and Mini-LED backlighting make this TV a step above most others in its price range. Plus, there are enough gaming features here to satisfy both casual and dedicated gamers.<a class="view-deal button" href="https://www.bestbuy.com/product/roku-65-class-pro-series-4k-qled-mini-led-smart-rokutv-2025/J3PFCJQ95Y/sku/6625625" target="_blank" rel="nofollow" data-dimension112="121e0398-420e-4b3f-bc90-ed8f4df7e1fb" data-action="Deal Block" data-label="65" Pro Series 4K QLED TV" data-dimension48="65" Pro Series 4K QLED TV" data-dimension25="$899">View Deal</a></p></div><h2 id="5-tcl-qm7k">5. TCL QM7K</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="dQDaNgZLzTn4ZiTXfeYgvh" name="TG_TCL-QM7K-TV-5" alt="A TCL QM7K QD-Mini LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/dQDaNgZLzTn4ZiTXfeYgvh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Much like the Roku Pro Series, the TCL QM7K offers a much punchier picture than what you'll find on entry-level sets like the QM5K and QM6K. This TV is pricier than those models because, in many cases, it gets at least twice as bright.</p><p>In addition, the QM7K's thorough collection of gaming features is one of the reasons I've been recommending it to people for several months now. </p><p>Its current sale price brings it down to a relatively low price when compared to higher-end Mini-LED TVs, and it's also a safe bet to assume that this deal will look even better when 2026 TVs begin to reach the market.</p><div class="product"><a data-dimension112="ea299a11-963e-495a-99a6-4977a6151797" data-action="Deal Block" data-label="65" QM7K 4K Mini-LED TV" data-dimension48="65" QM7K 4K Mini-LED TV" data-dimension25="$998" href="https://www.bestbuy.com/product/tcl-65-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCT" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NZFuiZ8YJxwt3TLDFKUiJm" name="TCL-QM7K-Mini-LED-TV-Vanity" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/NZFuiZ8YJxwt3TLDFKUiJm.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-65-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCT" target="_blank" rel="nofollow" data-dimension112="ea299a11-963e-495a-99a6-4977a6151797" data-action="Deal Block" data-label='65" QM7K 4K Mini-LED TV' data-dimension48='65" QM7K 4K Mini-LED TV' data-dimension25="$998">65" QM7K 4K Mini-LED TV: was $1499 now $998</a></strong><br>The TCL QM7K is perfect for folks who want to upgrade to a truly impressive TV without breaking the bank. It's also an especially good TV for gamers on a budget, thanks to an impressive array of gaming enhancements.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-65-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCT" target="_blank" rel="nofollow" data-dimension112="ea299a11-963e-495a-99a6-4977a6151797" data-action="Deal Block" data-label="65" QM7K 4K Mini-LED TV" data-dimension48="65" QM7K 4K Mini-LED TV" data-dimension25="$998">View Deal</a></p></div><h2 id="6-lg-c5">6. LG C5</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="h9dbeJK2VNhVSDxuvbre2c" name="LG C5-06" alt="Spider-Man: Across the Spider-Verse on a LG C5 OLED TV" src="https://cdn.mos.cms.futurecdn.net/h9dbeJK2VNhVSDxuvbre2c.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If you've spent several years yearning for one of LG's award-winning C Series OLED TVs, take note: This might be your last opportunity to get a good deal on the <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c5-oled-tv-review">LG C5</a>. There's a very good chance that the upcoming <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c6-oled">LG C6</a> will debut at a higher price than its predecessor.</p><p>All of the benefits of OLED technology are accounted for, including perfect black levels, ultra-wide viewing angles and pixel-level dimming. Right now, the 65-inch version is about 48% off its original price, and stock is sure to shrink as the year moves along.</p><p>The LG C5 is one of my favorite TVs in recent years, and while I'm excited to see what the C6 brings to the table in the coming months, I will find it much harder to recommend the C6 if its price is, indeed, affected by the ongoing RAM crisis.</p><div class="product"><a data-dimension112="da1daf30-9026-482c-ba59-347404840f6b" data-action="Deal Block" data-label="65" C5 4K OLED TV" data-dimension48="65" C5 4K OLED TV" data-dimension25="$1399" href="https://www.bestbuy.com/product/lg-65-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTRG6" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="36Tn6ZvqxRqxMo9tCTpsGg" name="LG-C5-OLED-1-by-1" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/36Tn6ZvqxRqxMo9tCTpsGg.jpg" mos="" align="middle" fullscreen="" width="3000" height="3000" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/lg-65-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTRG6" target="_blank" rel="nofollow" data-dimension112="da1daf30-9026-482c-ba59-347404840f6b" data-action="Deal Block" data-label='65" C5 4K OLED TV' data-dimension48='65" C5 4K OLED TV' data-dimension25="$1399">65" C5 4K OLED TV: was $2699 now $1399</a></strong><br>The C5 delivers all of the benefits we've come to expect from OLED displays, but its design, software and overall experience is the result of LG's excellent engineering.<a class="view-deal button" href="https://www.bestbuy.com/product/lg-65-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTRG6" target="_blank" rel="nofollow" data-dimension112="da1daf30-9026-482c-ba59-347404840f6b" data-action="Deal Block" data-label="65" C5 4K OLED TV" data-dimension48="65" C5 4K OLED TV" data-dimension25="$1399">View Deal</a></p></div><h2 id="7-samsung-s95f">7. Samsung S95F</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="iEhWN7YvmzSYRfQgxRqnwF" name="Samsung-S95F-2001-A-Space-Odyssey" alt="2001 A Space Odyssey on a Samsung S95F OLED TV" src="https://cdn.mos.cms.futurecdn.net/iEhWN7YvmzSYRfQgxRqnwF.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If you're comfortable splurging on a top-of-the-line OLED TV but you're nonetheless nervous about how current economic forces might impact TV prices, I recommend choosing one of last year's <a href="https://www.tomsguide.com/tvs/oled-tvs/best-oled-tvs">best OLED TVs</a>, the <a href="https://www.tomsguide.com/tvs/4k-tvs/samsung-s95f-oled-tv-review">Samsung S95F</a>.</p><p>Like the LG C5, the S95F is capable of perfect black levels and pixel-level dimming. However, Samsung's flagship OLED delivers quantum dot-enhanced color for brighter colors and highlights. Unsurprisingly, this incredible, flagship-level OLED comes with plenty of streaming- and gaming-related features.</p><p>Samsung is one of the only TV makers that's been transparent about the possible impact of the RAM shortage on the newest models, and I'm inclined to take them at their word. There's no guarantee that the S95H will ever be as affordable as the S95F currently is.</p><div class="product"><a data-dimension112="7e80680f-1808-40af-b482-b59bbc87b559" data-action="Deal Block" data-label="65" S95F QD-OLED" data-dimension48="65" S95F QD-OLED" data-dimension25="$2384" href="https://www.amazon.com/SAMSUNG-65-Inch-Processor-Xcelerator-Samsung/dp/B0DXMJFJ7W?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:63.00%;"><img id="R9i85LheUkxs6jyZGM8xrc" name="61N5xjm0wuL._AC_SL1000_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/R9i85LheUkxs6jyZGM8xrc.jpg" mos="" align="middle" fullscreen="" width="1000" height="630" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/SAMSUNG-65-Inch-Processor-Xcelerator-Samsung/dp/B0DXMJFJ7W?th=1" target="_blank" rel="nofollow" data-dimension112="7e80680f-1808-40af-b482-b59bbc87b559" data-action="Deal Block" data-label='65" S95F QD-OLED' data-dimension48='65" S95F QD-OLED' data-dimension25="$2384">65" S95F QD-OLED: was $2997 now $2384</a></strong><br>The S95F offers better color volume and higher highlight brightness than what you'll find on mid-range OLED TVs, and as a flagship model, you're also getting just about every gaming feature under the sun.<a class="view-deal button" href="https://www.amazon.com/SAMSUNG-65-Inch-Processor-Xcelerator-Samsung/dp/B0DXMJFJ7W?th=1" target="_blank" rel="nofollow" data-dimension112="7e80680f-1808-40af-b482-b59bbc87b559" data-action="Deal Block" data-label="65" S95F QD-OLED" data-dimension48="65" S95F QD-OLED" data-dimension25="$2384">View Deal</a></p></div><h2 id="more-to-consider">More to consider</h2><div class="product"><a data-dimension112="c4a650f4-8384-4478-bfa2-0649ea69013e" data-action="Deal Block" data-label="65" S84F 4K OLED TV" data-dimension48="65" S84F 4K OLED TV" data-dimension25="$949" href="https://www.bestbuy.com/product/samsung-65-class-s84f-oled-4k-uhd-vision-ai-smart-tizen-tv-2025/JJGRF39ZVL" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:900px;"><p class="vanilla-image-block" style="padding-top:66.67%;"><img id="WLkxnYAtPurKgVX6mGS336" name="5e170c99-71a4-4ad9-b19f-720201d9a73b" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/WLkxnYAtPurKgVX6mGS336.webp" mos="" align="middle" fullscreen="" width="900" height="600" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/samsung-65-class-s84f-oled-4k-uhd-vision-ai-smart-tizen-tv-2025/JJGRF39ZVL" target="_blank" rel="nofollow" data-dimension112="c4a650f4-8384-4478-bfa2-0649ea69013e" data-action="Deal Block" data-label='65" S84F 4K OLED TV' data-dimension48='65" S84F 4K OLED TV' data-dimension25="$949">65" S84F 4K OLED TV: was $1999 now $949</a></strong><br>Samsung's most affordable OLED TV of 2025 may not be as much of a showstopper as the brand's flagship-level S95F, but it's priced well for a 65-inch OLED TV. It also comes with a useful array of gaming enhancements and streaming features. It's gone up a bit since Black Friday and Cyber Monday, but is still under $1,000, making it a hard bargain to beat. <a class="view-deal button" href="https://www.bestbuy.com/product/samsung-65-class-s84f-oled-4k-uhd-vision-ai-smart-tizen-tv-2025/JJGRF39ZVL" target="_blank" rel="nofollow" data-dimension112="c4a650f4-8384-4478-bfa2-0649ea69013e" data-action="Deal Block" data-label="65" S84F 4K OLED TV" data-dimension48="65" S84F 4K OLED TV" data-dimension25="$949">View Deal</a></p></div><div class="product"><a data-dimension112="55159454-44eb-4dac-93aa-1adf29a99487" data-action="Deal Block" data-label="65" S90D 4K OLED TV" data-dimension48="65" S90D 4K OLED TV" data-dimension25="$1195" href="https://www.amazon.com/SAMSUNG-Tracking-Xcelerator-Enhancer-Upscaling/dp/B0CV9VGMPT" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1052px;"><p class="vanilla-image-block" style="padding-top:90.49%;"><img id="HBR7MYEFwR6gPxyu5XLGHg" name="Samsung S90D 4K OLED TV deal block.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/HBR7MYEFwR6gPxyu5XLGHg.jpg" mos="" align="middle" fullscreen="" width="1052" height="952" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/SAMSUNG-Tracking-Xcelerator-Enhancer-Upscaling/dp/B0CV9VGMPT" target="_blank" rel="nofollow" data-dimension112="55159454-44eb-4dac-93aa-1adf29a99487" data-action="Deal Block" data-label='65" S90D 4K OLED TV' data-dimension48='65" S90D 4K OLED TV' data-dimension25="$1195">65" S90D 4K OLED TV: was $1697 now $1195</a></strong><br>The S90D is one of Samsung's older 2024 OLED TVs. The OLED TV features Samsung's new NQ4 AI Gen2 processor, HDR10+/HLG support, 120Hz refresh rate, four HDMI 2.1 ports, and built-in Alexa. It also offers 4K AI Upscaling to ensure all programs are crisp and sharp. On the audio front, you get Dolby Atmos and Object Tracking Sound Lite for 3D surround sound.<br><strong>Price check: </strong><a href="https://www.bestbuy.com/site/samsung-65-class-s90d-series-oled-4k-uhd-smart-tizen-tv-2024/6576598.p?skuId=6576598" target="_blank" rel="nofollow"><strong>$1,195 @ Best Buy</strong></a><strong></strong><a class="view-deal button" href="https://www.amazon.com/SAMSUNG-Tracking-Xcelerator-Enhancer-Upscaling/dp/B0CV9VGMPT" target="_blank" rel="nofollow" data-dimension112="55159454-44eb-4dac-93aa-1adf29a99487" data-action="Deal Block" data-label="65" S90D 4K OLED TV" data-dimension48="65" S90D 4K OLED TV" data-dimension25="$1195">View Deal</a></p></div><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/its-time-to-replace-your-tv-if-you-notice-any-of-these-5-issues">I test TVs for a living — 5 signs it's time to replace your TV</a></li><li><a href="https://www.tomsguide.com/tvs/ive-set-up-hundreds-of-tvs-in-my-career-here-are-6-mistakes-people-make-when-setting-up-a-new-tv">I’ve set up hundreds of TVs in my career — here are 6 mistakes people make when setting up a new TV</a></li><li><a href="https://www.tomsguide.com/tvs/oled-tvs/best-oled-tvs">Best OLED TVs in 2026 tested: Our top picks from LG, Samsung and more</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Here are 5 of the best deals on TVs we've tested and awarded 4 stars or above ]]></title>
                                                                                                <dc:content><![CDATA[ <p>We review dozens of the most popular TVs every year, but only a handful are good enough to take home our coveted four- or five-star rating. Some are ultra-affordable, entry-level sets overwhelming with value, while others are high-end marvels with incredible picture quality.</p><p>In the spirit of awards season, I put together a list of some of the newest TVs to earn a four-to-five-star rating in our test lab. As it happens, all of these TVs are currently on sale, too.</p><p>Everything is covered — from affordable QLEDs to eye-popping OLEDs. They’re among the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TVs</a> we’ve seen in recent months.</p><h2 id="1-hisense-u65qf-2">1. Hisense U65QF</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="5fVCCVVb4Hg56M5cA8UqTi" name="Hisense-U65QF-02" alt="Hisense U65QF in an apartment" src="https://cdn.mos.cms.futurecdn.net/5fVCCVVb4Hg56M5cA8UqTi.jpg" mos="" align="middle" fullscreen="" width="1500" height="844" attribution="" class="inline"><img id="Xc987sPL6EDZGCrLfXakAb" class="endorsement-img endorsement-bottom-right" style="max-width: 100px; max-height: 100px;" src="https://cdn.mos.cms.futurecdn.net/Xc987sPL6EDZGCrLfXakAb.png" name="TG_ed_choice.png" alt="Editor's Choice"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Hisense)</span></figcaption></figure><p>Hisense's most-affordable QLED to feature Mini-LED backlighting is the U65QF, one of the most bang-for-your-buck sets you can find on shelves right now. It's available in 55-, 65-, 75-, 85- and 100-inch sizes.</p><p><em><strong>Why we love it: </strong></em>As we noted in our <a href="https://www.tomsguide.com/tvs/4k-tvs/hisense-u65qf-mini-led-tv-review">Hisense U65QF review</a>, this TV packs a brighter picture than any set in the entry-level, Mini-LED TV class. That makes it a fantastic choice for folks who watch a good amount of TV during the day or in an otherwise well-lit room. In its most-accurate picture mode, it also looks very sharp right out of the box.</p><p>If that weren't enough to earn its four-and-a-half-star rating, the U65QF also comes with more features than most TVs in its price range, too. These features include a pair of HDMI 2.1 inputs that support 4K gaming at 120Hz or 144Hz.</p><div class="product"><a data-dimension112="4de6387c-7561-4486-8fc3-9e1d55b481cd" data-action="Deal Block" data-label="55" U65QF 4K Mini-LED TV" data-dimension48="55" U65QF 4K Mini-LED TV" data-dimension25="$449" href="https://www.amazon.com/Hisense-Class-Mini-LED-55U65QF-Built/dp/B0DYWG3BL1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:900px;"><p class="vanilla-image-block" style="padding-top:60.89%;"><img id="xMqoTz79rH7r2QjMaxD4AV" name="Hisense U65QF" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/xMqoTz79rH7r2QjMaxD4AV.jpg" mos="" align="middle" fullscreen="" width="900" height="548" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Hisense-Class-Mini-LED-55U65QF-Built/dp/B0DYWG3BL1" target="_blank" rel="nofollow" data-dimension112="4de6387c-7561-4486-8fc3-9e1d55b481cd" data-action="Deal Block" data-label='55" U65QF 4K Mini-LED TV' data-dimension48='55" U65QF 4K Mini-LED TV' data-dimension25="$449">55" U65QF 4K Mini-LED TV: was $549 now $449</a></strong><br>The U65QF is one of the most affordable Mini-LED TVs on the market, and this deal ups its value even further. Enjoy better brightness and overall contrast that what you'll get on a basic, garden-variety LED TV, plus an array of built-in, Fire TV-powered smart features.<a class="view-deal button" href="https://www.amazon.com/Hisense-Class-Mini-LED-55U65QF-Built/dp/B0DYWG3BL1" target="_blank" rel="nofollow" data-dimension112="4de6387c-7561-4486-8fc3-9e1d55b481cd" data-action="Deal Block" data-label="55" U65QF 4K Mini-LED TV" data-dimension48="55" U65QF 4K Mini-LED TV" data-dimension25="$449">View Deal</a></p></div><h2 id="2-tcl-qm6k">2. TCL QM6K</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QebvvW6BsG6sEzhqQpNWqL" name="TCL QM6K-01" alt="TCL QM6K QD-Mini LED TV" src="https://cdn.mos.cms.futurecdn.net/QebvvW6BsG6sEzhqQpNWqL.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" class="inline"><img id="WqLzPy4iPS8qbMqK42dYLY" class="endorsement-img endorsement-bottom-right" style="max-width: 100px; max-height: 100px;" src="https://cdn.mos.cms.futurecdn.net/WqLzPy4iPS8qbMqK42dYLY.png" name="TG_badges_Recommended.png" alt="Tom's Guide Recommended product badge"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Like the Hisense TV mentioned above, TCL's entry-level Mini-LED TV is also packed to the gills with value. It's available in 55-, 65-, 75-, 85- and 98-inch screen sizes.</p><p><em><strong>Why we love it: </strong></em>While not as bright as the U65QF, the <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review">TCL QM6K </a>is bright enough for impactful HDR performance, be it a TV show, movie or game. If you were to spend just a bit less on a cheaper TV, you’d probably end up with one that <em>doesn’t</em> offer Mini-LED backlighting. This feature is the primary reason why my colleague, Malcolm McMillan, described being "blown away by the picture quality."</p><p>In addition, the QM6K supports 4K gaming at 120Hz or 144Hz across two of its HDMI inputs. It also arrives with Google TV built right in, which I <em>much</em> prefer over the Hisense U65QF's Fire TV software.</p><div class="product"><a data-dimension112="b5712ce9-bcd5-4627-b5e5-170732f75612" data-action="Deal Block" data-label="65” QM6K 4K Mini-LED TV" data-dimension48="65” QM6K 4K Mini-LED TV" data-dimension25="$529" href="https://www.bestbuy.com/product/tcl-65-class-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5K" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:61.93%;"><img id="sLXAogfAqKCUoj8BruTYZm" name="712IORjS-gL._AC_SL1500_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/sLXAogfAqKCUoj8BruTYZm.jpg" mos="" align="middle" fullscreen="" width="1500" height="929" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-65-class-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5K" target="_blank" rel="nofollow" data-dimension112="b5712ce9-bcd5-4627-b5e5-170732f75612" data-action="Deal Block" data-label="65” QM6K 4K Mini-LED TV" data-dimension48="65” QM6K 4K Mini-LED TV" data-dimension25="$529">65” QM6K 4K Mini-LED TV: was $999 now $529</a></strong><br>For several months, the TCL QM6K has been one of my go-to recommendations for folks looking for a quality screen on a budget. It's a budget-friendly, 65-inch Mini-LED TV that's perfect for folks who want to upgrade to dependable, good-looking TV without spending too much.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-65-class-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5K" target="_blank" rel="nofollow" data-dimension112="b5712ce9-bcd5-4627-b5e5-170732f75612" data-action="Deal Block" data-label="65” QM6K 4K Mini-LED TV" data-dimension48="65” QM6K 4K Mini-LED TV" data-dimension25="$529">View Deal</a></p></div><h2 id="3-tcl-qm7k">3. TCL QM7K</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="CD2VrnJcoADSq6RwTM5yvh" name="TG_TCL-QM7K-TV-9" alt="A TCL QM7K QD-Mini LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/CD2VrnJcoADSq6RwTM5yvh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" class="inline"><img id="WqLzPy4iPS8qbMqK42dYLY" class="endorsement-img endorsement-bottom-right" style="max-width: 100px; max-height: 100px;" src="https://cdn.mos.cms.futurecdn.net/WqLzPy4iPS8qbMqK42dYLY.png" name="TG_badges_Recommended.png" alt="Tom's Guide Recommended product badge"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If you want a little more <em>oomph</em> on a screen that's still fairly affordable, consider the TCL QM7K, a higher-end sibling to the QM6K. It's also available in 55-, 65-, 75-, 85- and 98-inch screen sizes.</p><p><em><strong>Why we love it: </strong></em>Like the QM6K, the TCL QM7K also blends quantum dot-color with Mini-LED backlighting. However, the Mini-LEDs on the QM7K are much brighter, more bountiful and feature all-around better backlight control. It's a great choice for folks who want better performance and more features than what they'll get on the QM6K or the Hisense U65QF.</p><p>In our <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review">TCL QM7K review</a>, we awarded this TV four stars in large part because of its implementation of Google TV and its thorough array of features for gamers. When you get right down to it, though, this TV is pricier than entry-level models because it gets at least twice as bright as many of those sets.</p><div class="product"><a data-dimension112="ea299a11-963e-495a-99a6-4977a6151797" data-action="Deal Block" data-label="65" QM7K 4K Mini-LED TV" data-dimension48="65" QM7K 4K Mini-LED TV" data-dimension25="$998" href="https://www.bestbuy.com/product/tcl-65-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCT" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NZFuiZ8YJxwt3TLDFKUiJm" name="TCL-QM7K-Mini-LED-TV-Vanity" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/NZFuiZ8YJxwt3TLDFKUiJm.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-65-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCT" target="_blank" rel="nofollow" data-dimension112="ea299a11-963e-495a-99a6-4977a6151797" data-action="Deal Block" data-label='65" QM7K 4K Mini-LED TV' data-dimension48='65" QM7K 4K Mini-LED TV' data-dimension25="$998">65" QM7K 4K Mini-LED TV: was $1499 now $998</a></strong><br>The TCL QM7K is perfect for folks who want to upgrade to a truly impressive TV without breaking the bank. It's also an especially good TV for gamers on a budget, thanks to an impressive array of gaming enhancements.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-65-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCT" target="_blank" rel="nofollow" data-dimension112="ea299a11-963e-495a-99a6-4977a6151797" data-action="Deal Block" data-label="65" QM7K 4K Mini-LED TV" data-dimension48="65" QM7K 4K Mini-LED TV" data-dimension25="$998">View Deal</a></p></div><h2 id="4-lg-c5">4. LG C5</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bMLMU9wLzRunYC5pYBndzb" name="LG C5-04" alt="The Super Mario Bros. Movie on a LG C5 OLED TV" src="https://cdn.mos.cms.futurecdn.net/bMLMU9wLzRunYC5pYBndzb.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" class="inline"><img id="Xc987sPL6EDZGCrLfXakAb" class="endorsement-img endorsement-bottom-right" style="max-width: 100px; max-height: 100px;" src="https://cdn.mos.cms.futurecdn.net/Xc987sPL6EDZGCrLfXakAb.png" name="TG_ed_choice.png" alt="Editor's Choice"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>We've arrived at the only TV on this list to have received a perfect, five-star rating. It's a mid-range OLED TV with a ridiculous amount of value, and it's available in 42-, 48-, 55-, 65-, 77- and 83-inch sizes.</p><p><em><strong>Why we love it: </strong></em>In our <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c5-oled-tv-review">LG C5 review</a>, we heaped praise onto this value-packed OLED for its sensational performance, its class-leading selection of features and its approachable price. (It's 50% off its debut price right now, too, which definitely adds to its value.)</p><p>All of the benefits of OLED technology are on display here: perfect black levels, ultra-wide viewing angles and a sharp, detail-rich picture. It's also one of the <a href="https://www.tomsguide.com/us/best-4k-gaming-tv,review-4837.html">best gaming TVs </a>money can buy. How's that for earning its five-star rating?</p><div class="product"><a data-dimension112="da1daf30-9026-482c-ba59-347404840f6b" data-action="Deal Block" data-label="65" C5 4K OLED TV" data-dimension48="65" C5 4K OLED TV" data-dimension25="$1399" href="https://www.bestbuy.com/product/lg-65-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTRG6" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="36Tn6ZvqxRqxMo9tCTpsGg" name="LG-C5-OLED-1-by-1" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/36Tn6ZvqxRqxMo9tCTpsGg.jpg" mos="" align="middle" fullscreen="" width="3000" height="3000" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/lg-65-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTRG6" target="_blank" rel="nofollow" data-dimension112="da1daf30-9026-482c-ba59-347404840f6b" data-action="Deal Block" data-label='65" C5 4K OLED TV' data-dimension48='65" C5 4K OLED TV' data-dimension25="$1399">65" C5 4K OLED TV: was $2699 now $1399</a></strong><br>The C5 delivers all of the benefits we've come to expect from OLED displays, but its design, software and overall experience is the result of LG's excellent engineering.<a class="view-deal button" href="https://www.bestbuy.com/product/lg-65-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTRG6" target="_blank" rel="nofollow" data-dimension112="da1daf30-9026-482c-ba59-347404840f6b" data-action="Deal Block" data-label="65" C5 4K OLED TV" data-dimension48="65" C5 4K OLED TV" data-dimension25="$1399">View Deal</a></p></div><h2 id="5-samsung-s95f">5. Samsung S95F</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9R4cCo79eCVT8Mc6fP7uyF" name="Samsung-S95F-Blade-Runner" alt="Blade Runner on a Samsung S95F OLED TV" src="https://cdn.mos.cms.futurecdn.net/9R4cCo79eCVT8Mc6fP7uyF.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" class="inline"><img id="Xc987sPL6EDZGCrLfXakAb" class="endorsement-img endorsement-bottom-right" style="max-width: 100px; max-height: 100px;" src="https://cdn.mos.cms.futurecdn.net/Xc987sPL6EDZGCrLfXakAb.png" name="TG_ed_choice.png" alt="Editor's Choice"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The LG C5 may be the best-rated OLED TV on this list, but the Samsung S95F is easily the best-performing OLED TV on this list. You can find this incredible TV in 55-, 65-, 77- and 83-inch sizes, though the 83-inch model lacks the quantum dot-enhanced panel we marveled at in our four-and-a-half-star <a href="https://www.tomsguide.com/tvs/4k-tvs/samsung-s95f-oled-tv-review">Samsung S95F review</a>.</p><p><em><strong>Why we love it: </strong></em>Like the LG C5 (and all OLED displays), the S95F is capable of perfect black levels and pixel-level contrast control. <em>Unlike</em> the C5, Samsung's flagship OLED delivers quantum dot-enhanced color for brighter, purer hues and higher HDR highlight brightness. The result is a deep, visually arresting picture that needs to be seen to do it any sort of justice.</p><p>We also appreciated the screen's matte finish, which does a remarkable job at blunting direct glare from nearby windows or light sources. As expected, the S95F comes with a laundry list of features and enhancements. It's just as powerful a gaming machine as the LG C5, but like all Samsung TVs, the S95F doesn't come with Dolby Vision support.</p><div class="product"><a data-dimension112="7e80680f-1808-40af-b482-b59bbc87b559" data-action="Deal Block" data-label="65" S95F QD-OLED" data-dimension48="65" S95F QD-OLED" data-dimension25="$2497" href="https://www.amazon.com/SAMSUNG-65-Inch-Processor-Xcelerator-Samsung/dp/B0DXMJFJ7W?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:63.00%;"><img id="R9i85LheUkxs6jyZGM8xrc" name="61N5xjm0wuL._AC_SL1000_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/R9i85LheUkxs6jyZGM8xrc.jpg" mos="" align="middle" fullscreen="" width="1000" height="630" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/SAMSUNG-65-Inch-Processor-Xcelerator-Samsung/dp/B0DXMJFJ7W?th=1" target="_blank" rel="nofollow" data-dimension112="7e80680f-1808-40af-b482-b59bbc87b559" data-action="Deal Block" data-label='65" S95F QD-OLED' data-dimension48='65" S95F QD-OLED' data-dimension25="$2497">65" S95F QD-OLED: was $2997 now $2497</a></strong><br>The S95F offers better color volume and higher highlight brightness than what you'll find on mid-range OLED TVs, and as a flagship model, you're also getting just about every gaming feature under the sun.<a class="view-deal button" href="https://www.amazon.com/SAMSUNG-65-Inch-Processor-Xcelerator-Samsung/dp/B0DXMJFJ7W?th=1" target="_blank" rel="nofollow" data-dimension112="7e80680f-1808-40af-b482-b59bbc87b559" data-action="Deal Block" data-label="65" S95F QD-OLED" data-dimension48="65" S95F QD-OLED" data-dimension25="$2497">View Deal</a></p></div><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/its-time-to-replace-your-tv-if-you-notice-any-of-these-5-issues">I test TVs for a living — 5 signs it's time to replace your TV</a></li><li><a href="https://www.tomsguide.com/tvs/oled-tvs/lg-oled-tvs-are-getting-a-free-update-that-fixes-a-huge-dolby-vision-problem">LG OLED TVs are getting a free update that fixes a huge Dolby Vision problem</a></li><li><a href="https://www.tomsguide.com/tvs/ive-set-up-hundreds-of-tvs-in-my-career-here-are-6-mistakes-people-make-when-setting-up-a-new-tv">I’ve set up hundreds of TVs in my career — here are 6 mistakes people make when setting up a new TV</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/here-are-5-of-the-best-deals-on-tvs-weve-tested-and-awarded-4-stars-or-above</link>
                                                                            <description>
                            <![CDATA[ We review dozens of TVs every year, but not all of them receive our coveted four- or five-star rating. Here are five TVs we've recently tested from Hisense, TCL, LG and Samsung that received our recommendation — and all of them are on sale right now. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">iv8WiiNWXuPvLLyGstP4eQ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/kGLmQBVCkUqCGWYGKp4p3U-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 21 Feb 2026 11:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/kGLmQBVCkUqCGWYGKp4p3U-1280-80.jpg">
                                                            <media:credit><![CDATA[LG / Hisense / TCL]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A collage of TVs arranged in front of a colorful background]]></media:description>                                                            <media:text><![CDATA[A collage of TVs arranged in front of a colorful background]]></media:text>
                                <media:title type="plain"><![CDATA[A collage of TVs arranged in front of a colorful background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/kGLmQBVCkUqCGWYGKp4p3U-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>We review dozens of the most popular TVs every year, but only a handful are good enough to take home our coveted four- or five-star rating. Some are ultra-affordable, entry-level sets overwhelming with value, while others are high-end marvels with incredible picture quality.</p><p>In the spirit of awards season, I put together a list of some of the newest TVs to earn a four-to-five-star rating in our test lab. As it happens, all of these TVs are currently on sale, too.</p><p>Everything is covered — from affordable QLEDs to eye-popping OLEDs. They’re among the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TVs</a> we’ve seen in recent months.</p><h2 id="1-hisense-u65qf-2">1. Hisense U65QF</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="5fVCCVVb4Hg56M5cA8UqTi" name="Hisense-U65QF-02" alt="Hisense U65QF in an apartment" src="https://cdn.mos.cms.futurecdn.net/5fVCCVVb4Hg56M5cA8UqTi.jpg" mos="" align="middle" fullscreen="" width="1500" height="844" attribution="" class="inline"><img id="Xc987sPL6EDZGCrLfXakAb" class="endorsement-img endorsement-bottom-right" style="max-width: 100px; max-height: 100px;" src="https://cdn.mos.cms.futurecdn.net/Xc987sPL6EDZGCrLfXakAb.png" name="TG_ed_choice.png" alt="Editor's Choice"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Hisense)</span></figcaption></figure><p>Hisense's most-affordable QLED to feature Mini-LED backlighting is the U65QF, one of the most bang-for-your-buck sets you can find on shelves right now. It's available in 55-, 65-, 75-, 85- and 100-inch sizes.</p><p><em><strong>Why we love it: </strong></em>As we noted in our <a href="https://www.tomsguide.com/tvs/4k-tvs/hisense-u65qf-mini-led-tv-review">Hisense U65QF review</a>, this TV packs a brighter picture than any set in the entry-level, Mini-LED TV class. That makes it a fantastic choice for folks who watch a good amount of TV during the day or in an otherwise well-lit room. In its most-accurate picture mode, it also looks very sharp right out of the box.</p><p>If that weren't enough to earn its four-and-a-half-star rating, the U65QF also comes with more features than most TVs in its price range, too. These features include a pair of HDMI 2.1 inputs that support 4K gaming at 120Hz or 144Hz.</p><div class="product"><a data-dimension112="4de6387c-7561-4486-8fc3-9e1d55b481cd" data-action="Deal Block" data-label="55" U65QF 4K Mini-LED TV" data-dimension48="55" U65QF 4K Mini-LED TV" data-dimension25="$449" href="https://www.amazon.com/Hisense-Class-Mini-LED-55U65QF-Built/dp/B0DYWG3BL1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:900px;"><p class="vanilla-image-block" style="padding-top:60.89%;"><img id="xMqoTz79rH7r2QjMaxD4AV" name="Hisense U65QF" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/xMqoTz79rH7r2QjMaxD4AV.jpg" mos="" align="middle" fullscreen="" width="900" height="548" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Hisense-Class-Mini-LED-55U65QF-Built/dp/B0DYWG3BL1" target="_blank" rel="nofollow" data-dimension112="4de6387c-7561-4486-8fc3-9e1d55b481cd" data-action="Deal Block" data-label='55" U65QF 4K Mini-LED TV' data-dimension48='55" U65QF 4K Mini-LED TV' data-dimension25="$449">55" U65QF 4K Mini-LED TV: was $549 now $449</a></strong><br>The U65QF is one of the most affordable Mini-LED TVs on the market, and this deal ups its value even further. Enjoy better brightness and overall contrast that what you'll get on a basic, garden-variety LED TV, plus an array of built-in, Fire TV-powered smart features.<a class="view-deal button" href="https://www.amazon.com/Hisense-Class-Mini-LED-55U65QF-Built/dp/B0DYWG3BL1" target="_blank" rel="nofollow" data-dimension112="4de6387c-7561-4486-8fc3-9e1d55b481cd" data-action="Deal Block" data-label="55" U65QF 4K Mini-LED TV" data-dimension48="55" U65QF 4K Mini-LED TV" data-dimension25="$449">View Deal</a></p></div><h2 id="2-tcl-qm6k">2. TCL QM6K</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QebvvW6BsG6sEzhqQpNWqL" name="TCL QM6K-01" alt="TCL QM6K QD-Mini LED TV" src="https://cdn.mos.cms.futurecdn.net/QebvvW6BsG6sEzhqQpNWqL.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" class="inline"><img id="WqLzPy4iPS8qbMqK42dYLY" class="endorsement-img endorsement-bottom-right" style="max-width: 100px; max-height: 100px;" src="https://cdn.mos.cms.futurecdn.net/WqLzPy4iPS8qbMqK42dYLY.png" name="TG_badges_Recommended.png" alt="Tom's Guide Recommended product badge"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Like the Hisense TV mentioned above, TCL's entry-level Mini-LED TV is also packed to the gills with value. It's available in 55-, 65-, 75-, 85- and 98-inch screen sizes.</p><p><em><strong>Why we love it: </strong></em>While not as bright as the U65QF, the <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review">TCL QM6K </a>is bright enough for impactful HDR performance, be it a TV show, movie or game. If you were to spend just a bit less on a cheaper TV, you’d probably end up with one that <em>doesn’t</em> offer Mini-LED backlighting. This feature is the primary reason why my colleague, Malcolm McMillan, described being "blown away by the picture quality."</p><p>In addition, the QM6K supports 4K gaming at 120Hz or 144Hz across two of its HDMI inputs. It also arrives with Google TV built right in, which I <em>much</em> prefer over the Hisense U65QF's Fire TV software.</p><div class="product"><a data-dimension112="b5712ce9-bcd5-4627-b5e5-170732f75612" data-action="Deal Block" data-label="65” QM6K 4K Mini-LED TV" data-dimension48="65” QM6K 4K Mini-LED TV" data-dimension25="$529" href="https://www.bestbuy.com/product/tcl-65-class-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5K" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:61.93%;"><img id="sLXAogfAqKCUoj8BruTYZm" name="712IORjS-gL._AC_SL1500_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/sLXAogfAqKCUoj8BruTYZm.jpg" mos="" align="middle" fullscreen="" width="1500" height="929" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-65-class-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5K" target="_blank" rel="nofollow" data-dimension112="b5712ce9-bcd5-4627-b5e5-170732f75612" data-action="Deal Block" data-label="65” QM6K 4K Mini-LED TV" data-dimension48="65” QM6K 4K Mini-LED TV" data-dimension25="$529">65” QM6K 4K Mini-LED TV: was $999 now $529</a></strong><br>For several months, the TCL QM6K has been one of my go-to recommendations for folks looking for a quality screen on a budget. It's a budget-friendly, 65-inch Mini-LED TV that's perfect for folks who want to upgrade to dependable, good-looking TV without spending too much.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-65-class-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW5K" target="_blank" rel="nofollow" data-dimension112="b5712ce9-bcd5-4627-b5e5-170732f75612" data-action="Deal Block" data-label="65” QM6K 4K Mini-LED TV" data-dimension48="65” QM6K 4K Mini-LED TV" data-dimension25="$529">View Deal</a></p></div><h2 id="3-tcl-qm7k">3. TCL QM7K</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="CD2VrnJcoADSq6RwTM5yvh" name="TG_TCL-QM7K-TV-9" alt="A TCL QM7K QD-Mini LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/CD2VrnJcoADSq6RwTM5yvh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" class="inline"><img id="WqLzPy4iPS8qbMqK42dYLY" class="endorsement-img endorsement-bottom-right" style="max-width: 100px; max-height: 100px;" src="https://cdn.mos.cms.futurecdn.net/WqLzPy4iPS8qbMqK42dYLY.png" name="TG_badges_Recommended.png" alt="Tom's Guide Recommended product badge"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If you want a little more <em>oomph</em> on a screen that's still fairly affordable, consider the TCL QM7K, a higher-end sibling to the QM6K. It's also available in 55-, 65-, 75-, 85- and 98-inch screen sizes.</p><p><em><strong>Why we love it: </strong></em>Like the QM6K, the TCL QM7K also blends quantum dot-color with Mini-LED backlighting. However, the Mini-LEDs on the QM7K are much brighter, more bountiful and feature all-around better backlight control. It's a great choice for folks who want better performance and more features than what they'll get on the QM6K or the Hisense U65QF.</p><p>In our <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review">TCL QM7K review</a>, we awarded this TV four stars in large part because of its implementation of Google TV and its thorough array of features for gamers. When you get right down to it, though, this TV is pricier than entry-level models because it gets at least twice as bright as many of those sets.</p><div class="product"><a data-dimension112="ea299a11-963e-495a-99a6-4977a6151797" data-action="Deal Block" data-label="65" QM7K 4K Mini-LED TV" data-dimension48="65" QM7K 4K Mini-LED TV" data-dimension25="$998" href="https://www.bestbuy.com/product/tcl-65-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCT" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NZFuiZ8YJxwt3TLDFKUiJm" name="TCL-QM7K-Mini-LED-TV-Vanity" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/NZFuiZ8YJxwt3TLDFKUiJm.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-65-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCT" target="_blank" rel="nofollow" data-dimension112="ea299a11-963e-495a-99a6-4977a6151797" data-action="Deal Block" data-label='65" QM7K 4K Mini-LED TV' data-dimension48='65" QM7K 4K Mini-LED TV' data-dimension25="$998">65" QM7K 4K Mini-LED TV: was $1499 now $998</a></strong><br>The TCL QM7K is perfect for folks who want to upgrade to a truly impressive TV without breaking the bank. It's also an especially good TV for gamers on a budget, thanks to an impressive array of gaming enhancements.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-65-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCT" target="_blank" rel="nofollow" data-dimension112="ea299a11-963e-495a-99a6-4977a6151797" data-action="Deal Block" data-label="65" QM7K 4K Mini-LED TV" data-dimension48="65" QM7K 4K Mini-LED TV" data-dimension25="$998">View Deal</a></p></div><h2 id="4-lg-c5">4. LG C5</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bMLMU9wLzRunYC5pYBndzb" name="LG C5-04" alt="The Super Mario Bros. Movie on a LG C5 OLED TV" src="https://cdn.mos.cms.futurecdn.net/bMLMU9wLzRunYC5pYBndzb.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" class="inline"><img id="Xc987sPL6EDZGCrLfXakAb" class="endorsement-img endorsement-bottom-right" style="max-width: 100px; max-height: 100px;" src="https://cdn.mos.cms.futurecdn.net/Xc987sPL6EDZGCrLfXakAb.png" name="TG_ed_choice.png" alt="Editor's Choice"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>We've arrived at the only TV on this list to have received a perfect, five-star rating. It's a mid-range OLED TV with a ridiculous amount of value, and it's available in 42-, 48-, 55-, 65-, 77- and 83-inch sizes.</p><p><em><strong>Why we love it: </strong></em>In our <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c5-oled-tv-review">LG C5 review</a>, we heaped praise onto this value-packed OLED for its sensational performance, its class-leading selection of features and its approachable price. (It's 50% off its debut price right now, too, which definitely adds to its value.)</p><p>All of the benefits of OLED technology are on display here: perfect black levels, ultra-wide viewing angles and a sharp, detail-rich picture. It's also one of the <a href="https://www.tomsguide.com/us/best-4k-gaming-tv,review-4837.html">best gaming TVs </a>money can buy. How's that for earning its five-star rating?</p><div class="product"><a data-dimension112="da1daf30-9026-482c-ba59-347404840f6b" data-action="Deal Block" data-label="65" C5 4K OLED TV" data-dimension48="65" C5 4K OLED TV" data-dimension25="$1399" href="https://www.bestbuy.com/product/lg-65-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTRG6" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="36Tn6ZvqxRqxMo9tCTpsGg" name="LG-C5-OLED-1-by-1" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/36Tn6ZvqxRqxMo9tCTpsGg.jpg" mos="" align="middle" fullscreen="" width="3000" height="3000" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/lg-65-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTRG6" target="_blank" rel="nofollow" data-dimension112="da1daf30-9026-482c-ba59-347404840f6b" data-action="Deal Block" data-label='65" C5 4K OLED TV' data-dimension48='65" C5 4K OLED TV' data-dimension25="$1399">65" C5 4K OLED TV: was $2699 now $1399</a></strong><br>The C5 delivers all of the benefits we've come to expect from OLED displays, but its design, software and overall experience is the result of LG's excellent engineering.<a class="view-deal button" href="https://www.bestbuy.com/product/lg-65-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTRG6" target="_blank" rel="nofollow" data-dimension112="da1daf30-9026-482c-ba59-347404840f6b" data-action="Deal Block" data-label="65" C5 4K OLED TV" data-dimension48="65" C5 4K OLED TV" data-dimension25="$1399">View Deal</a></p></div><h2 id="5-samsung-s95f">5. Samsung S95F</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9R4cCo79eCVT8Mc6fP7uyF" name="Samsung-S95F-Blade-Runner" alt="Blade Runner on a Samsung S95F OLED TV" src="https://cdn.mos.cms.futurecdn.net/9R4cCo79eCVT8Mc6fP7uyF.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" class="inline"><img id="Xc987sPL6EDZGCrLfXakAb" class="endorsement-img endorsement-bottom-right" style="max-width: 100px; max-height: 100px;" src="https://cdn.mos.cms.futurecdn.net/Xc987sPL6EDZGCrLfXakAb.png" name="TG_ed_choice.png" alt="Editor's Choice"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The LG C5 may be the best-rated OLED TV on this list, but the Samsung S95F is easily the best-performing OLED TV on this list. You can find this incredible TV in 55-, 65-, 77- and 83-inch sizes, though the 83-inch model lacks the quantum dot-enhanced panel we marveled at in our four-and-a-half-star <a href="https://www.tomsguide.com/tvs/4k-tvs/samsung-s95f-oled-tv-review">Samsung S95F review</a>.</p><p><em><strong>Why we love it: </strong></em>Like the LG C5 (and all OLED displays), the S95F is capable of perfect black levels and pixel-level contrast control. <em>Unlike</em> the C5, Samsung's flagship OLED delivers quantum dot-enhanced color for brighter, purer hues and higher HDR highlight brightness. The result is a deep, visually arresting picture that needs to be seen to do it any sort of justice.</p><p>We also appreciated the screen's matte finish, which does a remarkable job at blunting direct glare from nearby windows or light sources. As expected, the S95F comes with a laundry list of features and enhancements. It's just as powerful a gaming machine as the LG C5, but like all Samsung TVs, the S95F doesn't come with Dolby Vision support.</p><div class="product"><a data-dimension112="7e80680f-1808-40af-b482-b59bbc87b559" data-action="Deal Block" data-label="65" S95F QD-OLED" data-dimension48="65" S95F QD-OLED" data-dimension25="$2497" href="https://www.amazon.com/SAMSUNG-65-Inch-Processor-Xcelerator-Samsung/dp/B0DXMJFJ7W?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:63.00%;"><img id="R9i85LheUkxs6jyZGM8xrc" name="61N5xjm0wuL._AC_SL1000_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/R9i85LheUkxs6jyZGM8xrc.jpg" mos="" align="middle" fullscreen="" width="1000" height="630" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/SAMSUNG-65-Inch-Processor-Xcelerator-Samsung/dp/B0DXMJFJ7W?th=1" target="_blank" rel="nofollow" data-dimension112="7e80680f-1808-40af-b482-b59bbc87b559" data-action="Deal Block" data-label='65" S95F QD-OLED' data-dimension48='65" S95F QD-OLED' data-dimension25="$2497">65" S95F QD-OLED: was $2997 now $2497</a></strong><br>The S95F offers better color volume and higher highlight brightness than what you'll find on mid-range OLED TVs, and as a flagship model, you're also getting just about every gaming feature under the sun.<a class="view-deal button" href="https://www.amazon.com/SAMSUNG-65-Inch-Processor-Xcelerator-Samsung/dp/B0DXMJFJ7W?th=1" target="_blank" rel="nofollow" data-dimension112="7e80680f-1808-40af-b482-b59bbc87b559" data-action="Deal Block" data-label="65" S95F QD-OLED" data-dimension48="65" S95F QD-OLED" data-dimension25="$2497">View Deal</a></p></div><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQA6zW"></div>                            </div>                            <script src="https://kwizly.com/embed/WQA6zW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/its-time-to-replace-your-tv-if-you-notice-any-of-these-5-issues">I test TVs for a living — 5 signs it's time to replace your TV</a></li><li><a href="https://www.tomsguide.com/tvs/oled-tvs/lg-oled-tvs-are-getting-a-free-update-that-fixes-a-huge-dolby-vision-problem">LG OLED TVs are getting a free update that fixes a huge Dolby Vision problem</a></li><li><a href="https://www.tomsguide.com/tvs/ive-set-up-hundreds-of-tvs-in-my-career-here-are-6-mistakes-people-make-when-setting-up-a-new-tv">I’ve set up hundreds of TVs in my career — here are 6 mistakes people make when setting up a new TV</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I tested TCL’s $8,000 SQD Mini-LED TV — here's my verdict ]]></title>
                                                                                                <dc:content><![CDATA[ <div  class="fancy-box"><div class="fancy_box-title">TCL X11L 4K SQD Mini-LED TV: Specs</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Price: </strong>$7,999<br><strong>Screen size: </strong>85 inches<br><strong>Model: Samsung </strong>85X11L<br><strong>Resolution: </strong>4K (3,840 x 2,160)<br><strong>HDR: </strong>Dolby Vision IQ, HDR10, HDR10+, HLG<br><strong>Refresh rate: </strong>144Hz<br><strong>Ports: </strong>4x HDMI 2.1<br><strong>Smart TV software: </strong>Google TV<br><strong>Size (without stand): </strong>74 x 43.5 x 0.8 inches<br><strong>Weight (without stand): </strong>112.9 pounds</p></div></div><p>The TCL X11L SQD Mini-LED TV is the brand’s most ambitious yet. It’s aimed squarely at premium competitors, bringing major color improvements to LED TVs without jumping to the RGB backlight approach that’s starting to take over the TV market.</p><p>SQD (Super Quantum Dot) Mini-LED is essentially TCL’s way of improving <a href="https://www.tomsguide.com/tvs/tcl-takes-on-oled-tvs-with-qd-mini-led-technology"><u>QD Mini-LED</u></a> performance both in hardware and software. With SQD, you’re getting more local dimming zones, higher brightness potential and an improved color filter designed to maintain richer color even at high luminance levels — all controlled by a new “color purity algorithm.”</p><p>The SQD looks to solve one of Mini-LED’s long-standing challenges: keeping colors looking natural when brightness ramps up. Many of the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html"><u>best TVs</u></a> can hit impressive peak brightness numbers, but colors often wash out in real scenes. Based on a combination of our lab benchmarking and my anecdotal testing for this TCL X11L SQD Mini-LED TV review, this one manages to stay vibrant even in full-screen bright content. No seriously, we’ve officially crowned it <a href="https://www.tomsguide.com/tvs/qled-tvs/tcls-super-qled-tv-is-the-new-king-of-color-heres-what-our-test-results-say"><u>the new king of color</u></a>.</p><p>And perhaps the best part is that TCL isn’t keeping SQD exclusive to this ultra-premium set. The company is bringing the technology to more affordable Google TV models, so buyers who aren’t in a rush might want to wait and compare options. This is a TV that starts at $6,999, after all. Still, my time with the X11L offered a look at what the future of flagship LED TVs is starting to look like.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/aYH6t1eZBhA" allowfullscreen></iframe></div></div><h3 class="article-body__section" id="section-tcl-x11l-4k-sqd-mini-led-tv-price-and-sizes"><span>TCL X11L 4K SQD Mini-LED TV: Price and sizes</span></h3><p>The TCL X11L is among the priciest sets to ever hit the Tom’s Guide testing bench. It starts at $6,999 for the smallest 75-inch size. I tested the 85-inch size priced at $8,000, with the third option being 98 inches for $9,999.</p><ul><li>98-inch TCL X11L SQD Mini-LED TV (98X11L): <a href="https://us.tcl.com/products/tcl-x11l-98"><u>$9,999</u></a></li><li>85-inch TCL X11L SQD Mini-LED TV (85X11L): <a href="https://us.tcl.com/products/tcl-x11l-85"><u>$7,999</u></a></li><li>75-inch TCL X11L SQD Mini-LED TV (75X11L): <a href="https://us.tcl.com/products/tcl-x11l-85"><u>$6,999</u></a></li></ul><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2rbmcgBB47hdxRbp8S6u4W" name="TCL X11L SQD Mini-LED TV-05" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/2rbmcgBB47hdxRbp8S6u4W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>TCL is no stranger to the large TV market, in fact it was the first brand to make the <a href="https://www.tomsguide.com/best-picks/best-85-inch-tv"><u>best 85-inch TVs</u></a> and bigger, somewhat affordable. That said, if these options are not suitable for your budget or space (according to our guide on <a href="https://www.tomsguide.com/us/choose-right-tv-size,news-24708.html"><u>what size TV to buy</u></a>) you may want to consider the upcoming TCL QM8L and QM7L from <a href="https://www.tomsguide.com/tvs/tcl-tv-lineup-2026-new-sqd-mini-led-enhancement-mini-led-tvs-and-an-rgb-mini-led-tv"><u>TCL’s 2026 offerings</u></a> instead. Neither are available yet at the time of this writing, but these SQD Mini-LED configurations are set to offer TCL’s newest tech at lower prices and more sizes.</p><h3 class="article-body__section" id="section-tcl-x11l-4k-sqd-mini-led-tv-review-ports-and-connectivity"><span>TCL X11L 4K SQD Mini-LED TV review: Ports and connectivity</span></h3><p>The TCL X11L’s connectivity is as solid and future-proof as I’d hope for a TV of this caliber. Not only does it feature an <a href="https://www.tomsguide.com/tvs/atsc-30-tuners-do-you-really-need-one-on-your-2024-tv"><u>ATSC 3.0 tuner</u></a> for 4K over-the-air broadcasts, but you also get four HDMI 2.1 ports (4K @ 144Hz,) with one supporting eARC for connecting a soundbar or receiver. That gives you enough bandwidth for multiple next-gen consoles, gaming PCs and streaming devices without constant cable swapping.</p><p>For me, the only physical annoyance comes from the TV’s wide-set feet. They require a very large stand, so many buyers will likely opt for 600 x 400 VESA wall mounting instead. See our guide to the <a href="https://www.tomsguide.com/best-picks/best-tv-mounts"><u>best TV wall mounts</u></a> for recommendations.</p><h3 class="article-body__section" id="section-tcl-x11l-4k-sqd-mini-led-tv-review-performance"><span>TCL X11L 4K SQD Mini-LED TV review: Performance</span></h3><p>In day-to-day viewing, the X11L made an immediate impression with brightness. Whether watching sports during the day or HDR movies at night, the TV punches through ambient light easily while still maintaining strong contrast.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="P4Za4ooiVYVNuvKJEJsa2W" name="TCL X11L SQD Mini-LED TV-03" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/P4Za4ooiVYVNuvKJEJsa2W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>What stood out most is how well the TV holds color in bright scenes. Reds and greens remain saturated rather than bleaching out, and HDR content looks punchy without feeling artificial.  Watching animated films like “Spider-Man: Into the Spider-Verse,” the punch of comic book-inspired colors were a visual treat.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="34ytXWMKv7xBBxBz4cfw5W" name="TCL X11L SQD Mini-LED TV-04" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/34ytXWMKv7xBBxBz4cfw5W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Blooming, or the halo effect sometimes seen around bright objects, was another concern going in, but in real viewing it’s barely noticeable. Blacks also stay impressively clean for an LCD-based display. When the Excelsior launches to confront Galactus in “The Fantastic Four: First Steps,” I enjoy the complex, bright colors of the rocket’s flames without losing the darker details of the cityscape and ship itself. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="EsFbDkStqx2bKXV9mQwR7W" name="TCL X11L SQD Mini-LED TV-06" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/EsFbDkStqx2bKXV9mQwR7W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The only area of performance that felt slightly weaker was motion. Fast action scenes occasionally showed some smearing. Simply put, I found motion handling doesn’t quite match how strong the rest of the picture looks. It’s not a dealbreaker, but it’s the one area where the X11L perhaps feels less dominant<strong>. </strong></p><h3 class="article-body__section" id="section-how-we-test-tvs"><span>How we test TVs</span></h3><p>We follow a standard testing protocol for every TV we review at Tom’s Guide. Our benchmarks include a series of technical and subject tests designed to rate the set’s performance.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fVb4gMFxwMorM3ykPuRp7W" name="TCL X11L SQD Mini-LED TV-09" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/fVb4gMFxwMorM3ykPuRp7W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>For our technical tests, we use a Jeti Spectraval 1501-HiRes spectroradiometer, a Klein K10-A colorimeter, a Murideo 8K-SIX-G Metal pattern generator, and Portrait Displays’ Calman TV-calibration software to take measurements. We also use a Leo Bodnar 4K Input Lag Tester for determining whether it’s one of the <a href="https://www.tomsguide.com/tvs/qled-tvs/i-played-tons-of-games-on-tvs-this-year-heres-the-top-gaming-tvs-worth-buying-for-your-ps5-xbox-switch-and-more"><u>best gaming TVs</u></a>.</p><p><a href="https://www.tomsguide.com/us/how-we-test-tvs,review-2478.html"><u>Read more about our TV testing process here</u></a>.</p><h3 class="article-body__section" id="section-tcl-x11l-4k-sqd-mini-led-tv-test-results"><span>TCL X11L 4K SQD Mini-LED TV: Test Results</span></h3><p>TCL made some bold claims about the X11L’s color and brightness capabilities, and while our testing doesn’t quite meet those claims, it still paints a very positive picture about this TV’s performance.</p><div ><table><tbody><tr><td class="firstcol empty" ></td><td  ><p><strong>TCL X11L</strong></p></td><td  ><p><strong>TCL QM8K (2025)</strong></p></td><td  ><p><strong>Sony Bravia 9</strong></p></td><td  ><p><strong>Samsung QN90F</strong></p></td></tr><tr><td class="firstcol " ><p><strong>SDR Brightness (10%, in nits)</strong></p></td><td  ><p>283</p></td><td  ><p>249</p></td><td  ><p>127</p></td><td  ><p>228</p></td></tr><tr><td class="firstcol " ><p><strong>Delta-E (lower is better)</strong></p></td><td  ><p>1.9</p></td><td  ><p>2.7</p></td><td  ><p>1.8</p></td><td  ><p>1.8</p></td></tr><tr><td class="firstcol " ><p><strong>Rec. 709 Gamut Coverage</strong></p></td><td  ><p>99.52%</p></td><td  ><p>99.03%</p></td><td  ><p>99.17%</p></td><td  ><p>99.15%</p></td></tr><tr><td class="firstcol " ><p><strong>HDR Brightness (10%, in nits)</strong></p></td><td  ><p>2,679</p></td><td  ><p>3,332</p></td><td  ><p>2,713</p></td><td  ><p>2,109</p></td></tr><tr><td class="firstcol " ><p><strong>UHDA-P3 Gamut Coverage</strong></p></td><td  ><p>97.74%</p></td><td  ><p>97.28%</p></td><td  ><p>95.32%</p></td><td  ><p>93.32%</p></td></tr><tr><td class="firstcol " ><p><strong>Rec. 2020 Gamut Coverage</strong></p></td><td  ><p>91.77%</p></td><td  ><p>80.11%</p></td><td  ><p>78.02%</p></td><td  ><p>77.44%</p></td></tr><tr><td class="firstcol " ><p><strong>Input Lag (ms)</strong></p></td><td  ><p>11.7</p></td><td  ><p>13.0</p></td><td  ><p>17.0</p></td><td  ><p>9.5</p></td></tr></tbody></table></div><p>For the most part, the X11L outperforms or at least keeps up with premium Mini-LED TVs from brands like Samsung and Sony. In fact, the X11L is on par with the <a href="https://www.tomsguide.com/tvs/sony-bravia-9-tv-review"><u>Sony Bravia 9</u></a> in terms of HDR brightness in a 10% window, and beats Sony’s flagship on Rec. 2020 coverage with 91.77% vs. 78.02%.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DuWigydK2ptxtPjfbj7TrV" name="TCL X11L SQD Mini-LED TV-08" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/DuWigydK2ptxtPjfbj7TrV.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>TCL did claim 100% coverage of the HDR color guide, but that’s something essentially no consumer TV achieves. Most TVs struggle to exceed the high-70% to low-80% range, so this result shows the effectiveness of TCL’s new color approach even without newer RGB backlight systems. The only other TVs that join the X11L in the over-90% tier are the <a href="https://www.tomsguide.com/tvs/oled-tvs/best-oled-tvs"><u>best OLED TVs</u></a>, further demonstrating the gap closing between <a href="https://www.tomsguide.com/tvs/oled-vs-mini-led"><u>OLED vs. Mini-LED</u></a> picture abilities.</p><h3 class="article-body__section" id="section-tcl-x11l-4k-sqd-mini-led-tv-review-audio"><span>TCL X11L 4K SQD Mini-LED TV review: Audio</span></h3><p>With such a large chassis, TCL has room for powerful built-in speakers, and the result is better than typical TV audio. The Bang & Olufsen-tuned system delivers strong volume and decent clarity, and I rarely say this, but many buyers could easily live without adding one of the <a href="https://www.tomsguide.com/audio/soundbars/best-soundbars"><u>best soundbars</u></a> to their setup.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vQYk5JYbiWtoMaLEWVTK4W" name="TCL X11L SQD Mini-LED TV-07" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/vQYk5JYbiWtoMaLEWVTK4W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Still, if you’re investing this much in a TV, adding external audio usually makes sense. <a href="https://www.tomsguide.com/audio/i-tried-dolby-atmos-flexconnect-with-tcls-new-home-speakers-and-it-makes-surround-sound-stupid-simple"><u>TCL’s Dolby Atmos FlexConnect</u></a> ecosystem offers a relatively easy path to building surround sound without complicated wiring, making it worth considering for larger room setups.</p><h3 class="article-body__section" id="section-tcl-x11l-4k-sqd-mini-led-tv-review-interface"><span>TCL X11L 4K SQD Mini-LED TV review: Interface</span></h3><p>The X11L runs Google TV, which is one of the easiest smart TV platforms to live with for most people. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NCSPbAdY7umgEREUbDDR5W" name="TCL X11L SQD Mini-LED TV-10" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/NCSPbAdY7umgEREUbDDR5W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As long as you have a Google account — yes, the same as your Gmail — setup is quick and you can download the <a href="https://www.tomsguide.com/us/best-streaming-video-services,review-2625.html"><u>best streaming services</u></a> through the app selection. Of course, YouTube is deeply integrated, making this a good choice if you subscribe to YouTube TV’s <a href="https://www.tomsguide.com/us/best-cable-replacements,review-4387.html"><u>live TV streaming service</u></a>.</p><p>Navigation feels responsive, and content recommendations are generally useful rather than intrusive. There’s even screensaver settings if you prefer to <a href="https://www.tomsguide.com/tvs/google-tv-just-got-even-better-with-some-big-upgrades-through-gemini"><u>display photos and art on the TV</u></a> when you’re not watching anything. </p><p>And because you have full HDMI 2.1 support, you can always connect devices like an <a href="https://www.tomsguide.com/reviews/apple-tv-4k-2022"><u>Apple TV 4K</u></a> or game consoles if you prefer a different interface.</p><h3 class="article-body__section" id="section-tcl-x11l-4k-sqd-mini-led-tv-review-remote"><span>TCL X11L 4K SQD Mini-LED TV review: Remote</span></h3><p>TCL’s remote continues to be one of the better ones included with any TV. It feels premium, includes useful shortcut buttons, is rechargeable via USB-C and features a backlight for easier use in dark rooms.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yabwZjyoEHdwzJPGsRWSnV" name="TCL X11L SQD Mini-LED TV-02" alt="Remote for the TCL X11L SQD Mini-LED TV" src="https://cdn.mos.cms.futurecdn.net/yabwZjyoEHdwzJPGsRWSnV.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The standout addition is a dedicated brightness rocker, allowing you to quickly dim or brighten the screen without diving into menus. It’s a small feature, but one that proved surprisingly useful to me for late-night viewing.</p><p>For comparison, Sony’s Bravia remote still sets a high bar with its compact layout and motion-activated backlighting, but TCL’s approach feels equally thoughtful.</p><h3 class="article-body__section" id="section-tcl-x11l-4k-sqd-mini-led-tv-review-verdict"><span>TCL X11L 4K SQD Mini-LED TV review: Verdict</span></h3><p>If you want one of the brightest, cleanest-looking Mini-LED TVs available right now, the TCL X11L SQD Mini-LED TV has a lot of appeal. So long you have the space and budget for it, that is.</p><p>Picture quality is outstanding, blooming is minimal, color is class-leading and features are thoroughly premium. This is the first time in my many years testing TCL TVs that it feels like the brand is pioneering in high-end territory rather than competing on value.</p><p>That said, I’ll be watching TCL’s plans to bring this same SQD technology to cheaper models later this year closely. If you’re after maximum value or don’t need a TV immediately, waiting could make sense. If you can’t wait, and you need a big-screen TV ASAP, TCL’s 98-inch QM8K from 2025 delivers high levels of brightness for half the price ($3,999).</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/4k-tvs/tcl-x11l-sqd-mini-led-tv-review</link>
                                                                            <description>
                            <![CDATA[ The TCL X11L SQD Mini-LED TV is the company’s boldest step into premium territory yet, combining extreme brightness, improved color retention and strong local dimming performance into a flagship set designed to rival Samsung and Sony’s best. While its price and size limit its audience, the new SQD technology shows real promise, especially as TCL plans to bring it to more affordable models later this year. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ADjEBibFiAxqukUVRXjaJ4</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/f3EFaXwbkrGmeKJDfwUmwm-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 20 Feb 2026 06:15:00 +0000</pubDate>                                                                                                                                <updated>Fri, 20 Feb 2026 15:08:26 +0000</updated>
                                                                                                                                            <category><![CDATA[4k TVs]]></category>
                                                    <category><![CDATA[TVs]]></category>
                                                                                                                    <dc:creator><![CDATA[ Kate Kozuch ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/xAVUdx6Qtp3SzugnnfNYsL.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Kate Kozuch is a managing editor of social and video at Tom&#039;s Guide, where she&#039;s been with the team since 2019. She also reviews smartwatches, covers TVs, tests the latest audio products and dabbles in cooking appliances. Of course, that&#039;s not when she&#039;s working on building the &lt;a href=&quot;https://www.tomsguide.com/reference/smart-home-guide&quot;&gt;ultimate DIY smart home&lt;/a&gt;. She has conducted over 100 different product reviews across these categories, turning her findings into buying guides and face-offs. She also manages a number of gift guides on the site. Kate has a strong on-camera presence as well. She has appeared on Cheddar and Fox 5 NY to talk trending tech news. She is also regularly featured on the Tom&#039;s Guide YouTube channel, runs the &lt;a href=&quot;https://www.tiktok.com/@tomsguide?lang=en&quot;&gt;Tom&#039;s Guide TikTok account&lt;/a&gt; with over 350,000 followers, and features all the tech she&#039;s testing &lt;a href=&quot;https://www.instagram.com/katekozuch/&quot;&gt;on her Instagram&lt;/a&gt;. When she’s not filming tech videos, you can find her taking up a new sport, mastering the NYT Crossword or channeling her inner celebrity chef. Speaking of, be sure to ask her about the time Guy Fieri made her a margarita at CES, or when her video of Martha Stewart drinking a margarita went mega-viral. Clearly, Kate has a thing for culinary icons and margaritas.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/f3EFaXwbkrGmeKJDfwUmwm-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[TCL X11L SQD Mini-LED TV on a side table]]></media:description>                                                            <media:text><![CDATA[TCL X11L SQD Mini-LED TV on a side table]]></media:text>
                                <media:title type="plain"><![CDATA[TCL X11L SQD Mini-LED TV on a side table]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/f3EFaXwbkrGmeKJDfwUmwm-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div  class="fancy-box"><div class="fancy_box-title">TCL X11L 4K SQD Mini-LED TV: Specs</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Price: </strong>$7,999<br><strong>Screen size: </strong>85 inches<br><strong>Model: Samsung </strong>85X11L<br><strong>Resolution: </strong>4K (3,840 x 2,160)<br><strong>HDR: </strong>Dolby Vision IQ, HDR10, HDR10+, HLG<br><strong>Refresh rate: </strong>144Hz<br><strong>Ports: </strong>4x HDMI 2.1<br><strong>Smart TV software: </strong>Google TV<br><strong>Size (without stand): </strong>74 x 43.5 x 0.8 inches<br><strong>Weight (without stand): </strong>112.9 pounds</p></div></div><p>The TCL X11L SQD Mini-LED TV is the brand’s most ambitious yet. It’s aimed squarely at premium competitors, bringing major color improvements to LED TVs without jumping to the RGB backlight approach that’s starting to take over the TV market.</p><p>SQD (Super Quantum Dot) Mini-LED is essentially TCL’s way of improving <a href="https://www.tomsguide.com/tvs/tcl-takes-on-oled-tvs-with-qd-mini-led-technology"><u>QD Mini-LED</u></a> performance both in hardware and software. With SQD, you’re getting more local dimming zones, higher brightness potential and an improved color filter designed to maintain richer color even at high luminance levels — all controlled by a new “color purity algorithm.”</p><p>The SQD looks to solve one of Mini-LED’s long-standing challenges: keeping colors looking natural when brightness ramps up. Many of the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html"><u>best TVs</u></a> can hit impressive peak brightness numbers, but colors often wash out in real scenes. Based on a combination of our lab benchmarking and my anecdotal testing for this TCL X11L SQD Mini-LED TV review, this one manages to stay vibrant even in full-screen bright content. No seriously, we’ve officially crowned it <a href="https://www.tomsguide.com/tvs/qled-tvs/tcls-super-qled-tv-is-the-new-king-of-color-heres-what-our-test-results-say"><u>the new king of color</u></a>.</p><p>And perhaps the best part is that TCL isn’t keeping SQD exclusive to this ultra-premium set. The company is bringing the technology to more affordable Google TV models, so buyers who aren’t in a rush might want to wait and compare options. This is a TV that starts at $6,999, after all. Still, my time with the X11L offered a look at what the future of flagship LED TVs is starting to look like.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/aYH6t1eZBhA" allowfullscreen></iframe></div></div><h3 class="article-body__section" id="section-tcl-x11l-4k-sqd-mini-led-tv-price-and-sizes"><span>TCL X11L 4K SQD Mini-LED TV: Price and sizes</span></h3><p>The TCL X11L is among the priciest sets to ever hit the Tom’s Guide testing bench. It starts at $6,999 for the smallest 75-inch size. I tested the 85-inch size priced at $8,000, with the third option being 98 inches for $9,999.</p><ul><li>98-inch TCL X11L SQD Mini-LED TV (98X11L): <a href="https://us.tcl.com/products/tcl-x11l-98"><u>$9,999</u></a></li><li>85-inch TCL X11L SQD Mini-LED TV (85X11L): <a href="https://us.tcl.com/products/tcl-x11l-85"><u>$7,999</u></a></li><li>75-inch TCL X11L SQD Mini-LED TV (75X11L): <a href="https://us.tcl.com/products/tcl-x11l-85"><u>$6,999</u></a></li></ul><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2rbmcgBB47hdxRbp8S6u4W" name="TCL X11L SQD Mini-LED TV-05" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/2rbmcgBB47hdxRbp8S6u4W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>TCL is no stranger to the large TV market, in fact it was the first brand to make the <a href="https://www.tomsguide.com/best-picks/best-85-inch-tv"><u>best 85-inch TVs</u></a> and bigger, somewhat affordable. That said, if these options are not suitable for your budget or space (according to our guide on <a href="https://www.tomsguide.com/us/choose-right-tv-size,news-24708.html"><u>what size TV to buy</u></a>) you may want to consider the upcoming TCL QM8L and QM7L from <a href="https://www.tomsguide.com/tvs/tcl-tv-lineup-2026-new-sqd-mini-led-enhancement-mini-led-tvs-and-an-rgb-mini-led-tv"><u>TCL’s 2026 offerings</u></a> instead. Neither are available yet at the time of this writing, but these SQD Mini-LED configurations are set to offer TCL’s newest tech at lower prices and more sizes.</p><h3 class="article-body__section" id="section-tcl-x11l-4k-sqd-mini-led-tv-review-ports-and-connectivity"><span>TCL X11L 4K SQD Mini-LED TV review: Ports and connectivity</span></h3><p>The TCL X11L’s connectivity is as solid and future-proof as I’d hope for a TV of this caliber. Not only does it feature an <a href="https://www.tomsguide.com/tvs/atsc-30-tuners-do-you-really-need-one-on-your-2024-tv"><u>ATSC 3.0 tuner</u></a> for 4K over-the-air broadcasts, but you also get four HDMI 2.1 ports (4K @ 144Hz,) with one supporting eARC for connecting a soundbar or receiver. That gives you enough bandwidth for multiple next-gen consoles, gaming PCs and streaming devices without constant cable swapping.</p><p>For me, the only physical annoyance comes from the TV’s wide-set feet. They require a very large stand, so many buyers will likely opt for 600 x 400 VESA wall mounting instead. See our guide to the <a href="https://www.tomsguide.com/best-picks/best-tv-mounts"><u>best TV wall mounts</u></a> for recommendations.</p><h3 class="article-body__section" id="section-tcl-x11l-4k-sqd-mini-led-tv-review-performance"><span>TCL X11L 4K SQD Mini-LED TV review: Performance</span></h3><p>In day-to-day viewing, the X11L made an immediate impression with brightness. Whether watching sports during the day or HDR movies at night, the TV punches through ambient light easily while still maintaining strong contrast.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="P4Za4ooiVYVNuvKJEJsa2W" name="TCL X11L SQD Mini-LED TV-03" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/P4Za4ooiVYVNuvKJEJsa2W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>What stood out most is how well the TV holds color in bright scenes. Reds and greens remain saturated rather than bleaching out, and HDR content looks punchy without feeling artificial.  Watching animated films like “Spider-Man: Into the Spider-Verse,” the punch of comic book-inspired colors were a visual treat.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="34ytXWMKv7xBBxBz4cfw5W" name="TCL X11L SQD Mini-LED TV-04" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/34ytXWMKv7xBBxBz4cfw5W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Blooming, or the halo effect sometimes seen around bright objects, was another concern going in, but in real viewing it’s barely noticeable. Blacks also stay impressively clean for an LCD-based display. When the Excelsior launches to confront Galactus in “The Fantastic Four: First Steps,” I enjoy the complex, bright colors of the rocket’s flames without losing the darker details of the cityscape and ship itself. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="EsFbDkStqx2bKXV9mQwR7W" name="TCL X11L SQD Mini-LED TV-06" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/EsFbDkStqx2bKXV9mQwR7W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The only area of performance that felt slightly weaker was motion. Fast action scenes occasionally showed some smearing. Simply put, I found motion handling doesn’t quite match how strong the rest of the picture looks. It’s not a dealbreaker, but it’s the one area where the X11L perhaps feels less dominant<strong>. </strong></p><h3 class="article-body__section" id="section-how-we-test-tvs"><span>How we test TVs</span></h3><p>We follow a standard testing protocol for every TV we review at Tom’s Guide. Our benchmarks include a series of technical and subject tests designed to rate the set’s performance.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fVb4gMFxwMorM3ykPuRp7W" name="TCL X11L SQD Mini-LED TV-09" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/fVb4gMFxwMorM3ykPuRp7W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>For our technical tests, we use a Jeti Spectraval 1501-HiRes spectroradiometer, a Klein K10-A colorimeter, a Murideo 8K-SIX-G Metal pattern generator, and Portrait Displays’ Calman TV-calibration software to take measurements. We also use a Leo Bodnar 4K Input Lag Tester for determining whether it’s one of the <a href="https://www.tomsguide.com/tvs/qled-tvs/i-played-tons-of-games-on-tvs-this-year-heres-the-top-gaming-tvs-worth-buying-for-your-ps5-xbox-switch-and-more"><u>best gaming TVs</u></a>.</p><p><a href="https://www.tomsguide.com/us/how-we-test-tvs,review-2478.html"><u>Read more about our TV testing process here</u></a>.</p><h3 class="article-body__section" id="section-tcl-x11l-4k-sqd-mini-led-tv-test-results"><span>TCL X11L 4K SQD Mini-LED TV: Test Results</span></h3><p>TCL made some bold claims about the X11L’s color and brightness capabilities, and while our testing doesn’t quite meet those claims, it still paints a very positive picture about this TV’s performance.</p><div ><table><tbody><tr><td class="firstcol empty" ></td><td  ><p><strong>TCL X11L</strong></p></td><td  ><p><strong>TCL QM8K (2025)</strong></p></td><td  ><p><strong>Sony Bravia 9</strong></p></td><td  ><p><strong>Samsung QN90F</strong></p></td></tr><tr><td class="firstcol " ><p><strong>SDR Brightness (10%, in nits)</strong></p></td><td  ><p>283</p></td><td  ><p>249</p></td><td  ><p>127</p></td><td  ><p>228</p></td></tr><tr><td class="firstcol " ><p><strong>Delta-E (lower is better)</strong></p></td><td  ><p>1.9</p></td><td  ><p>2.7</p></td><td  ><p>1.8</p></td><td  ><p>1.8</p></td></tr><tr><td class="firstcol " ><p><strong>Rec. 709 Gamut Coverage</strong></p></td><td  ><p>99.52%</p></td><td  ><p>99.03%</p></td><td  ><p>99.17%</p></td><td  ><p>99.15%</p></td></tr><tr><td class="firstcol " ><p><strong>HDR Brightness (10%, in nits)</strong></p></td><td  ><p>2,679</p></td><td  ><p>3,332</p></td><td  ><p>2,713</p></td><td  ><p>2,109</p></td></tr><tr><td class="firstcol " ><p><strong>UHDA-P3 Gamut Coverage</strong></p></td><td  ><p>97.74%</p></td><td  ><p>97.28%</p></td><td  ><p>95.32%</p></td><td  ><p>93.32%</p></td></tr><tr><td class="firstcol " ><p><strong>Rec. 2020 Gamut Coverage</strong></p></td><td  ><p>91.77%</p></td><td  ><p>80.11%</p></td><td  ><p>78.02%</p></td><td  ><p>77.44%</p></td></tr><tr><td class="firstcol " ><p><strong>Input Lag (ms)</strong></p></td><td  ><p>11.7</p></td><td  ><p>13.0</p></td><td  ><p>17.0</p></td><td  ><p>9.5</p></td></tr></tbody></table></div><p>For the most part, the X11L outperforms or at least keeps up with premium Mini-LED TVs from brands like Samsung and Sony. In fact, the X11L is on par with the <a href="https://www.tomsguide.com/tvs/sony-bravia-9-tv-review"><u>Sony Bravia 9</u></a> in terms of HDR brightness in a 10% window, and beats Sony’s flagship on Rec. 2020 coverage with 91.77% vs. 78.02%.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DuWigydK2ptxtPjfbj7TrV" name="TCL X11L SQD Mini-LED TV-08" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/DuWigydK2ptxtPjfbj7TrV.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>TCL did claim 100% coverage of the HDR color guide, but that’s something essentially no consumer TV achieves. Most TVs struggle to exceed the high-70% to low-80% range, so this result shows the effectiveness of TCL’s new color approach even without newer RGB backlight systems. The only other TVs that join the X11L in the over-90% tier are the <a href="https://www.tomsguide.com/tvs/oled-tvs/best-oled-tvs"><u>best OLED TVs</u></a>, further demonstrating the gap closing between <a href="https://www.tomsguide.com/tvs/oled-vs-mini-led"><u>OLED vs. Mini-LED</u></a> picture abilities.</p><h3 class="article-body__section" id="section-tcl-x11l-4k-sqd-mini-led-tv-review-audio"><span>TCL X11L 4K SQD Mini-LED TV review: Audio</span></h3><p>With such a large chassis, TCL has room for powerful built-in speakers, and the result is better than typical TV audio. The Bang & Olufsen-tuned system delivers strong volume and decent clarity, and I rarely say this, but many buyers could easily live without adding one of the <a href="https://www.tomsguide.com/audio/soundbars/best-soundbars"><u>best soundbars</u></a> to their setup.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vQYk5JYbiWtoMaLEWVTK4W" name="TCL X11L SQD Mini-LED TV-07" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/vQYk5JYbiWtoMaLEWVTK4W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Still, if you’re investing this much in a TV, adding external audio usually makes sense. <a href="https://www.tomsguide.com/audio/i-tried-dolby-atmos-flexconnect-with-tcls-new-home-speakers-and-it-makes-surround-sound-stupid-simple"><u>TCL’s Dolby Atmos FlexConnect</u></a> ecosystem offers a relatively easy path to building surround sound without complicated wiring, making it worth considering for larger room setups.</p><h3 class="article-body__section" id="section-tcl-x11l-4k-sqd-mini-led-tv-review-interface"><span>TCL X11L 4K SQD Mini-LED TV review: Interface</span></h3><p>The X11L runs Google TV, which is one of the easiest smart TV platforms to live with for most people. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NCSPbAdY7umgEREUbDDR5W" name="TCL X11L SQD Mini-LED TV-10" alt="TCL X11L SQD Mini-LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/NCSPbAdY7umgEREUbDDR5W.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As long as you have a Google account — yes, the same as your Gmail — setup is quick and you can download the <a href="https://www.tomsguide.com/us/best-streaming-video-services,review-2625.html"><u>best streaming services</u></a> through the app selection. Of course, YouTube is deeply integrated, making this a good choice if you subscribe to YouTube TV’s <a href="https://www.tomsguide.com/us/best-cable-replacements,review-4387.html"><u>live TV streaming service</u></a>.</p><p>Navigation feels responsive, and content recommendations are generally useful rather than intrusive. There’s even screensaver settings if you prefer to <a href="https://www.tomsguide.com/tvs/google-tv-just-got-even-better-with-some-big-upgrades-through-gemini"><u>display photos and art on the TV</u></a> when you’re not watching anything. </p><p>And because you have full HDMI 2.1 support, you can always connect devices like an <a href="https://www.tomsguide.com/reviews/apple-tv-4k-2022"><u>Apple TV 4K</u></a> or game consoles if you prefer a different interface.</p><h3 class="article-body__section" id="section-tcl-x11l-4k-sqd-mini-led-tv-review-remote"><span>TCL X11L 4K SQD Mini-LED TV review: Remote</span></h3><p>TCL’s remote continues to be one of the better ones included with any TV. It feels premium, includes useful shortcut buttons, is rechargeable via USB-C and features a backlight for easier use in dark rooms.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yabwZjyoEHdwzJPGsRWSnV" name="TCL X11L SQD Mini-LED TV-02" alt="Remote for the TCL X11L SQD Mini-LED TV" src="https://cdn.mos.cms.futurecdn.net/yabwZjyoEHdwzJPGsRWSnV.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The standout addition is a dedicated brightness rocker, allowing you to quickly dim or brighten the screen without diving into menus. It’s a small feature, but one that proved surprisingly useful to me for late-night viewing.</p><p>For comparison, Sony’s Bravia remote still sets a high bar with its compact layout and motion-activated backlighting, but TCL’s approach feels equally thoughtful.</p><h3 class="article-body__section" id="section-tcl-x11l-4k-sqd-mini-led-tv-review-verdict"><span>TCL X11L 4K SQD Mini-LED TV review: Verdict</span></h3><p>If you want one of the brightest, cleanest-looking Mini-LED TVs available right now, the TCL X11L SQD Mini-LED TV has a lot of appeal. So long you have the space and budget for it, that is.</p><p>Picture quality is outstanding, blooming is minimal, color is class-leading and features are thoroughly premium. This is the first time in my many years testing TCL TVs that it feels like the brand is pioneering in high-end territory rather than competing on value.</p><p>That said, I’ll be watching TCL’s plans to bring this same SQD technology to cheaper models later this year closely. If you’re after maximum value or don’t need a TV immediately, waiting could make sense. If you can’t wait, and you need a big-screen TV ASAP, TCL’s 98-inch QM8K from 2025 delivers high levels of brightness for half the price ($3,999).</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ This 55-inch Mini-LED TV for $329 is one of the best TV deals I’ve seen this week ]]></title>
                                                                                                <dc:content><![CDATA[ <p>So, you missed all of the weekend’s best Presidents’ Day sales and you’ve got nothing to show for it. Well, if you’re in the market for a new 4K TV, I’ve got some good news: Best Buy has extended a deep discount on one of the most affordable Mini-LED TVs you can buy.</p><p>Today, you can land the <a href="https://www.bestbuy.com/product/tcl-55-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZR" target="_blank" rel="nofollow">55-inch TCL QM5K for just $379 at Best Buy</a>. That’s $320 off its original price, and easily one of the most affordable ways to bring Mini-LED backlighting into your home. (For more deals, check out our guide to this week's best <a href="https://www.tomsguide.com/us/best-tv-deals,news-26008.html">TV deals</a>).</p><div class="product"><a data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label="55" QM5K Mini-LED TV" data-dimension48="55" QM5K Mini-LED TV" data-dimension25="$379" href="https://www.bestbuy.com/product/tcl-55-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZR" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="rRdoCj55QhqPM9wqYhpprE" name="TCL-QM5K-Mini-LED-TV-1-by-1-Deals-Block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/rRdoCj55QhqPM9wqYhpprE.jpg" mos="" align="middle" fullscreen="" width="2000" height="2000" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-55-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZR" target="_blank" rel="nofollow" data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label='55" QM5K Mini-LED TV' data-dimension48='55" QM5K Mini-LED TV' data-dimension25="$379">55" QM5K Mini-LED TV: was $699 now $379</a></strong><br>The QM5K arrives with built-in Google TV features for all of your streaming needs, plus Dolby Vision support. Its handiest feature is its Mini-LED backlighting, which is tough to find at this price point. I recommend going with the QM5K over a super-cheap TV from a brand like Insignia or Onn.<br><a href="https://www.bestbuy.com/product/tcl-65-class-qm5k-series-4k-uhd-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZ4" target="_blank" rel="nofollow">65" for $549</a><br><a href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46" target="_blank" rel="nofollow">75" for $699</a><br><a href="https://www.bestbuy.com/product/tcl-85-class-qm5k-series-4k-uhd-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW4Z" target="_blank" rel="nofollow">85" for $899</a><a class="view-deal button" href="https://www.bestbuy.com/product/tcl-55-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZR" target="_blank" rel="nofollow" data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label="55" QM5K Mini-LED TV" data-dimension48="55" QM5K Mini-LED TV" data-dimension25="$379">View Deal</a></p></div><p>The QM5K is a Best Buy-exclusive model, so you won’t find it anywhere else. If all you’re looking for is an affordable smart TV that doesn’t scrape the bottom of the barrel, the QM5K is a good pick — especially at this price.</p><p>The QM5K's best feature is its hardware. It's not easy to find Mini-LED backlighting at this price point, and it truly makes a difference.</p><p>The QM5K makes use of a more modest array of Mini-LEDs when compared to higher-end Mini-LED TVs (like the <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review">TCL QM7K</a> and the <a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review">TCL QM8K</a>). Still, it's better to have Mini-LEDs than a garden-variety, edge-lit LED display, as it typically results in better contrast and higher brightness.</p><p>If you're hoping to lean on your next TV's built-in smart features for all of your streaming needs, the QM5K is a reliable pick. It arrives with the Google TV software suite right out of the box, which is one of my preferred smart platforms in 2026 due to its relatively straightforward interface and vast library of downloadable apps.</p><p>The QM5K isn't going to blow you away with its performance, but it's a much better option than most 55-inch LED TVs in its price range based on its Mini-LED backlighting alone. It's an especially good pick for people who are upgrading to 4K for the first time.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5rAnO"></div>                            </div>                            <script src="https://kwizly.com/embed/W5rAnO.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/sony-just-handed-its-tv-business-to-tcl-heres-what-it-means-for-you">Sony just handed its TV business to TCL — here’s what it means for you</a></li><li><a href="https://www.tomsguide.com/tvs/tcl-tv-lineup-2026-new-sqd-mini-led-enhancement-mini-led-tvs-and-an-rgb-mini-led-tv">TCL TV lineup 2026: new SQD Mini-LED enhancement, Mini-LED TVs, and an RGB Mini-LED TV</a></li><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-finally-added-this-key-feature-to-its-2025-tvs-heres-why-you-should-use-it">TCL finally added this key feature to its 2025 TVs — here's why you should use it</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/qled-tvs/this-55-inch-mini-led-tv-for-usd329-is-one-of-the-best-tv-deals-ive-seen-this-week</link>
                                                                            <description>
                            <![CDATA[ Did you miss all of the Presidents' Day TV deals? Don't worry — this 55-inch Mini-LED TV is still available at Best Buy for just $329. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ongxDffMCfac2wgF4G3H8F</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/iPZtAXssbDzMU8RfuGPH9b-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 17 Feb 2026 17:55:56 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[QLED TVs]]></category>
                                                    <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/iPZtAXssbDzMU8RfuGPH9b-1280-80.jpg">
                                                            <media:credit><![CDATA[TCL]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The TCL QM5K Mini-LED TV, wall-mounted in a modern living room setting while displaying an NFL football player. There is a blue-colored badge overlaid on the image that reads: &quot;Tom&#039;s Guide. Act Fast!&quot;]]></media:description>                                                            <media:text><![CDATA[The TCL QM5K Mini-LED TV, wall-mounted in a modern living room setting while displaying an NFL football player. There is a blue-colored badge overlaid on the image that reads: &quot;Tom&#039;s Guide. Act Fast!&quot;]]></media:text>
                                <media:title type="plain"><![CDATA[The TCL QM5K Mini-LED TV, wall-mounted in a modern living room setting while displaying an NFL football player. There is a blue-colored badge overlaid on the image that reads: &quot;Tom&#039;s Guide. Act Fast!&quot;]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/iPZtAXssbDzMU8RfuGPH9b-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>So, you missed all of the weekend’s best Presidents’ Day sales and you’ve got nothing to show for it. Well, if you’re in the market for a new 4K TV, I’ve got some good news: Best Buy has extended a deep discount on one of the most affordable Mini-LED TVs you can buy.</p><p>Today, you can land the <a href="https://www.bestbuy.com/product/tcl-55-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZR" target="_blank" rel="nofollow">55-inch TCL QM5K for just $379 at Best Buy</a>. That’s $320 off its original price, and easily one of the most affordable ways to bring Mini-LED backlighting into your home. (For more deals, check out our guide to this week's best <a href="https://www.tomsguide.com/us/best-tv-deals,news-26008.html">TV deals</a>).</p><div class="product"><a data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label="55" QM5K Mini-LED TV" data-dimension48="55" QM5K Mini-LED TV" data-dimension25="$379" href="https://www.bestbuy.com/product/tcl-55-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZR" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="rRdoCj55QhqPM9wqYhpprE" name="TCL-QM5K-Mini-LED-TV-1-by-1-Deals-Block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/rRdoCj55QhqPM9wqYhpprE.jpg" mos="" align="middle" fullscreen="" width="2000" height="2000" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-55-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZR" target="_blank" rel="nofollow" data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label='55" QM5K Mini-LED TV' data-dimension48='55" QM5K Mini-LED TV' data-dimension25="$379">55" QM5K Mini-LED TV: was $699 now $379</a></strong><br>The QM5K arrives with built-in Google TV features for all of your streaming needs, plus Dolby Vision support. Its handiest feature is its Mini-LED backlighting, which is tough to find at this price point. I recommend going with the QM5K over a super-cheap TV from a brand like Insignia or Onn.<br><a href="https://www.bestbuy.com/product/tcl-65-class-qm5k-series-4k-uhd-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZ4" target="_blank" rel="nofollow">65" for $549</a><br><a href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46" target="_blank" rel="nofollow">75" for $699</a><br><a href="https://www.bestbuy.com/product/tcl-85-class-qm5k-series-4k-uhd-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW4Z" target="_blank" rel="nofollow">85" for $899</a><a class="view-deal button" href="https://www.bestbuy.com/product/tcl-55-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWZR" target="_blank" rel="nofollow" data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label="55" QM5K Mini-LED TV" data-dimension48="55" QM5K Mini-LED TV" data-dimension25="$379">View Deal</a></p></div><p>The QM5K is a Best Buy-exclusive model, so you won’t find it anywhere else. If all you’re looking for is an affordable smart TV that doesn’t scrape the bottom of the barrel, the QM5K is a good pick — especially at this price.</p><p>The QM5K's best feature is its hardware. It's not easy to find Mini-LED backlighting at this price point, and it truly makes a difference.</p><p>The QM5K makes use of a more modest array of Mini-LEDs when compared to higher-end Mini-LED TVs (like the <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review">TCL QM7K</a> and the <a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review">TCL QM8K</a>). Still, it's better to have Mini-LEDs than a garden-variety, edge-lit LED display, as it typically results in better contrast and higher brightness.</p><p>If you're hoping to lean on your next TV's built-in smart features for all of your streaming needs, the QM5K is a reliable pick. It arrives with the Google TV software suite right out of the box, which is one of my preferred smart platforms in 2026 due to its relatively straightforward interface and vast library of downloadable apps.</p><p>The QM5K isn't going to blow you away with its performance, but it's a much better option than most 55-inch LED TVs in its price range based on its Mini-LED backlighting alone. It's an especially good pick for people who are upgrading to 4K for the first time.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5rAnO"></div>                            </div>                            <script src="https://kwizly.com/embed/W5rAnO.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/sony-just-handed-its-tv-business-to-tcl-heres-what-it-means-for-you">Sony just handed its TV business to TCL — here’s what it means for you</a></li><li><a href="https://www.tomsguide.com/tvs/tcl-tv-lineup-2026-new-sqd-mini-led-enhancement-mini-led-tvs-and-an-rgb-mini-led-tv">TCL TV lineup 2026: new SQD Mini-LED enhancement, Mini-LED TVs, and an RGB Mini-LED TV</a></li><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-finally-added-this-key-feature-to-its-2025-tvs-heres-why-you-should-use-it">TCL finally added this key feature to its 2025 TVs — here's why you should use it</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Looking for a last-minute deal before the Super Bowl? This is my favorite affordable TV you can still get today in most stores ]]></title>
                                                                                                <dc:content><![CDATA[ <p>So the biggest televised sporting event of the year is mere hours away and you’ve suddenly been struck with the overwhelming desire to upgrade your living room with a flashy new TV. Perhaps you’ve also decided to be a savvy spender rather than to throw a stupendously large amount of cash at a high-end, ultra-premium TV.</p><p>If you’re about to grab your keys and high-tail it out the door to Best Buy, Walmart or any other brick-and-mortar store for a last-minute deal on a brand-new TV, let me bend your ear for a second about one of my favorite affordable TVs on shelves right now: The TCL QM7K is a popular, mid-range Mini-LED TV that I’ve been suggesting to friends, family and acquaintances for months now, and as luck would have it, it’s on sale in every one of its screen sizes.</p><p>You can get the <a href="https://www.bestbuy.com/product/tcl-55-class-qm7k-series-4k-uhd-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCP/sku/6621468">55-inch TCL QM7K for just $599 at Best Buy</a> today, and that’s a full $700 off its original price. This is a TV whose bright, colorful picture will not only do the big game justice, but it’ll serve you well for future games, movie nights and afternoon TV binges. Let me tell you why you should keep your eye out for it when you’re browsing the TV section.</p><div class="product"><a data-dimension112="5beadc80-a99e-4b9d-a2f7-548681f05282" data-action="Deal Block" data-label="55" QM7K Mini-LED TV" data-dimension48="55" QM7K Mini-LED TV" data-dimension25="$599" href="https://www.bestbuy.com/product/tcl-55-class-qm7k-series-4k-uhd-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCP/sku/6621468" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NZFuiZ8YJxwt3TLDFKUiJm" name="TCL-QM7K-Mini-LED-TV-Vanity" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/NZFuiZ8YJxwt3TLDFKUiJm.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-55-class-qm7k-series-4k-uhd-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCP/sku/6621468" target="_blank" rel="nofollow" data-dimension112="5beadc80-a99e-4b9d-a2f7-548681f05282" data-action="Deal Block" data-label='55" QM7K Mini-LED TV' data-dimension48='55" QM7K Mini-LED TV' data-dimension25="$599">55" QM7K Mini-LED TV: was $1299 now $599</a></strong><br>The TCL QM7K is one of the best mid-range Mini-LED TVs that's relatively easy to find at big-box retailers like Best Buy. All of the sizes in the series are on sale ahead of the Super Bowl, too, so you've got plenty of options to choose from. Since its debut, I've been recommending this TV to friends and family on account of its bright, acommodating picture, its built-in Google TV software (which makes streaming a breeze) and its nifty, contrast-enhancing Mini-LED backlighting. This is the one to get if you want to save money on a dependable, impressive-looking TV ahead of the Super Bowl.<br><br><strong>Other sizes in stores:</strong><br>65-inch QM7K: <a href="https://www.bestbuy.com/product/tcl-65-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCT/sku/6621470" target="_blank" rel="nofollow">was $1,499 now $797 @ Best Buy</a><br>75-inch QM7K: <a href="https://www.bestbuy.com/product/tcl-75-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQT2Y/sku/6621474" target="_blank" rel="nofollow">was $1,999 now $999 @ Best Buy</a><br>85-inch QM7K: <a href="https://www.bestbuy.com/product/tcl-85-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQT2H/sku/6621467" target="_blank" rel="nofollow">was $2,499 now $1,497 @ Best Buy</a><br>98-inch QM7K: <a href="https://www.bestbuy.com/product/tcl-98-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQ59L/sku/6621472" target="_blank" rel="nofollow">was $3,999 now $1,999 @ Best Buy</a><a class="view-deal button" href="https://www.bestbuy.com/product/tcl-55-class-qm7k-series-4k-uhd-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCP/sku/6621468" target="_blank" rel="nofollow" data-dimension112="5beadc80-a99e-4b9d-a2f7-548681f05282" data-action="Deal Block" data-label="55" QM7K Mini-LED TV" data-dimension48="55" QM7K Mini-LED TV" data-dimension25="$599">View Deal</a></p></div><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1524px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="5P27hFWCb6BwKLgQtQ8o2i" name="TG_TCL-QM7K-TV-LIST" alt="A TCL QM7K QD-Mini LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/5P27hFWCb6BwKLgQtQ8o2i.jpg" mos="" align="middle" fullscreen="" width="1524" height="857" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>While ultra-affordable, entry-level TVs typically leverage simplistic LED backlighting, the mid-range QM7K makes use of Mini-LEDs. This is its best feature, and one of the reasons I've been recommending it to sports fans for a while now.</p><p>As the name suggests, Mini-LEDs are smaller-sized LEDs that usually deliver better backlight control due to their size. Better backlight control not only allows for better overall contrast, it's the primary reason why the QM7K delivers a bright enough picture for watching daytime sports.</p><p>And when it comes to brightness, it's worth noting that the QM7K has more horsepower under the hood than entry-level LED TVs, as well. According to the tests we carried out for our <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review">TCL QM7K review</a>, this TV is capable of over 1,700 nits of highlight brightness in HDR. </p><p>For context, the QM7K's little sibling — the entry-level <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review">TCL QM6K</a> — tops out at around 700 nits. If you're hosting a Super Bowl watch party and you've got a relatively bright living space, you'll definitely appreciate the QM7K's added brightness.</p><div><blockquote><p>If you're hosting a Super Bowl watch party and you've got a relatively bright living space, you'll definitely appreciate the QM7K's added brightness.</p></blockquote></div><p>If you're streaming the Super Bowl this year, the QM7K will get you there in a smooth, fuss-free style. It comes with Google TV's easy-to-use smart platform pre-installed. It's my second-favorite smart platform behind Roku, and its robust app support and friendly interface makes it a superb daily driver.</p><p>Those planning on doing some gaming in the months and years ahead stand to squeeze even more value out of the QM7K due to its fantastic array of gaming features for this mid-range price point. It comes with a pair of HDMI 2.1 ports that support 4K gaming up to 144Hz. This means the QM7K can take full advantage of the <a href="https://www.tomsguide.com/reviews/xbox-series-x">Xbox Series X</a> and <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-review">PS5 Pro</a>.</p><p>In the last week alone I've recommended the QM7K to two people in my personal life. Neither of them were looking to upgrade <em>specifically</em> for a Super Bowl watch party, but in both cases, the QM7K proved versatile enough to earn my recommendation.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/sports/watch-super-bowl-2026-free">How to watch Super Bowl 2026: free live streams, TV channels for Patriots vs Seahawks</a></li><li><a href="https://www.tomsguide.com/sales-events/i-just-showed-these-6-super-bowl-gadgets-on-tv-heres-how-to-level-up-your-party-without-blowing-your-budget">I just showed these 6 Super Bowl gadgets on TV — here’s how to level up your party without blowing your budget</a></li><li><a href="https://www.tomsguide.com/entertainment/streaming/super-bowl-commercials-2026-all-the-ads-and-teasers-weve-seen-so-far">Every Super Bowl 2026 commercial so far: Full spots and teasers ahead of the big game</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/qled-tvs/looking-for-a-last-minute-deal-before-the-super-bowl-this-is-my-favorite-affordable-tv-you-can-still-get-today-in-most-stores</link>
                                                                            <description>
                            <![CDATA[ If you're heading out the door today to buy a brand-new TV ahead of the Super Bowl, keep an eye out for my favorite mid-range Mini-LED TV in stores right now: the TCL QM7K. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Uh9tc25Q9pByxa88gR4c9M</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/6RMLJdm65N367rWJNWo2JP-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 08 Feb 2026 06:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[QLED TVs]]></category>
                                                    <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/6RMLJdm65N367rWJNWo2JP-1280-80.jpg">
                                                            <media:credit><![CDATA[TCL]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[TCL QM7K lifestyle ]]></media:description>                                                            <media:text><![CDATA[TCL QM7K lifestyle ]]></media:text>
                                <media:title type="plain"><![CDATA[TCL QM7K lifestyle ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/6RMLJdm65N367rWJNWo2JP-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>So the biggest televised sporting event of the year is mere hours away and you’ve suddenly been struck with the overwhelming desire to upgrade your living room with a flashy new TV. Perhaps you’ve also decided to be a savvy spender rather than to throw a stupendously large amount of cash at a high-end, ultra-premium TV.</p><p>If you’re about to grab your keys and high-tail it out the door to Best Buy, Walmart or any other brick-and-mortar store for a last-minute deal on a brand-new TV, let me bend your ear for a second about one of my favorite affordable TVs on shelves right now: The TCL QM7K is a popular, mid-range Mini-LED TV that I’ve been suggesting to friends, family and acquaintances for months now, and as luck would have it, it’s on sale in every one of its screen sizes.</p><p>You can get the <a href="https://www.bestbuy.com/product/tcl-55-class-qm7k-series-4k-uhd-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCP/sku/6621468">55-inch TCL QM7K for just $599 at Best Buy</a> today, and that’s a full $700 off its original price. This is a TV whose bright, colorful picture will not only do the big game justice, but it’ll serve you well for future games, movie nights and afternoon TV binges. Let me tell you why you should keep your eye out for it when you’re browsing the TV section.</p><div class="product"><a data-dimension112="5beadc80-a99e-4b9d-a2f7-548681f05282" data-action="Deal Block" data-label="55" QM7K Mini-LED TV" data-dimension48="55" QM7K Mini-LED TV" data-dimension25="$599" href="https://www.bestbuy.com/product/tcl-55-class-qm7k-series-4k-uhd-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCP/sku/6621468" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NZFuiZ8YJxwt3TLDFKUiJm" name="TCL-QM7K-Mini-LED-TV-Vanity" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/NZFuiZ8YJxwt3TLDFKUiJm.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-55-class-qm7k-series-4k-uhd-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCP/sku/6621468" target="_blank" rel="nofollow" data-dimension112="5beadc80-a99e-4b9d-a2f7-548681f05282" data-action="Deal Block" data-label='55" QM7K Mini-LED TV' data-dimension48='55" QM7K Mini-LED TV' data-dimension25="$599">55" QM7K Mini-LED TV: was $1299 now $599</a></strong><br>The TCL QM7K is one of the best mid-range Mini-LED TVs that's relatively easy to find at big-box retailers like Best Buy. All of the sizes in the series are on sale ahead of the Super Bowl, too, so you've got plenty of options to choose from. Since its debut, I've been recommending this TV to friends and family on account of its bright, acommodating picture, its built-in Google TV software (which makes streaming a breeze) and its nifty, contrast-enhancing Mini-LED backlighting. This is the one to get if you want to save money on a dependable, impressive-looking TV ahead of the Super Bowl.<br><br><strong>Other sizes in stores:</strong><br>65-inch QM7K: <a href="https://www.bestbuy.com/product/tcl-65-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCT/sku/6621470" target="_blank" rel="nofollow">was $1,499 now $797 @ Best Buy</a><br>75-inch QM7K: <a href="https://www.bestbuy.com/product/tcl-75-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQT2Y/sku/6621474" target="_blank" rel="nofollow">was $1,999 now $999 @ Best Buy</a><br>85-inch QM7K: <a href="https://www.bestbuy.com/product/tcl-85-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQT2H/sku/6621467" target="_blank" rel="nofollow">was $2,499 now $1,497 @ Best Buy</a><br>98-inch QM7K: <a href="https://www.bestbuy.com/product/tcl-98-class-qm7k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQ59L/sku/6621472" target="_blank" rel="nofollow">was $3,999 now $1,999 @ Best Buy</a><a class="view-deal button" href="https://www.bestbuy.com/product/tcl-55-class-qm7k-series-4k-uhd-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQTCP/sku/6621468" target="_blank" rel="nofollow" data-dimension112="5beadc80-a99e-4b9d-a2f7-548681f05282" data-action="Deal Block" data-label="55" QM7K Mini-LED TV" data-dimension48="55" QM7K Mini-LED TV" data-dimension25="$599">View Deal</a></p></div><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1524px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="5P27hFWCb6BwKLgQtQ8o2i" name="TG_TCL-QM7K-TV-LIST" alt="A TCL QM7K QD-Mini LED TV on a side table" src="https://cdn.mos.cms.futurecdn.net/5P27hFWCb6BwKLgQtQ8o2i.jpg" mos="" align="middle" fullscreen="" width="1524" height="857" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>While ultra-affordable, entry-level TVs typically leverage simplistic LED backlighting, the mid-range QM7K makes use of Mini-LEDs. This is its best feature, and one of the reasons I've been recommending it to sports fans for a while now.</p><p>As the name suggests, Mini-LEDs are smaller-sized LEDs that usually deliver better backlight control due to their size. Better backlight control not only allows for better overall contrast, it's the primary reason why the QM7K delivers a bright enough picture for watching daytime sports.</p><p>And when it comes to brightness, it's worth noting that the QM7K has more horsepower under the hood than entry-level LED TVs, as well. According to the tests we carried out for our <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review">TCL QM7K review</a>, this TV is capable of over 1,700 nits of highlight brightness in HDR. </p><p>For context, the QM7K's little sibling — the entry-level <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review">TCL QM6K</a> — tops out at around 700 nits. If you're hosting a Super Bowl watch party and you've got a relatively bright living space, you'll definitely appreciate the QM7K's added brightness.</p><div><blockquote><p>If you're hosting a Super Bowl watch party and you've got a relatively bright living space, you'll definitely appreciate the QM7K's added brightness.</p></blockquote></div><p>If you're streaming the Super Bowl this year, the QM7K will get you there in a smooth, fuss-free style. It comes with Google TV's easy-to-use smart platform pre-installed. It's my second-favorite smart platform behind Roku, and its robust app support and friendly interface makes it a superb daily driver.</p><p>Those planning on doing some gaming in the months and years ahead stand to squeeze even more value out of the QM7K due to its fantastic array of gaming features for this mid-range price point. It comes with a pair of HDMI 2.1 ports that support 4K gaming up to 144Hz. This means the QM7K can take full advantage of the <a href="https://www.tomsguide.com/reviews/xbox-series-x">Xbox Series X</a> and <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-review">PS5 Pro</a>.</p><p>In the last week alone I've recommended the QM7K to two people in my personal life. Neither of them were looking to upgrade <em>specifically</em> for a Super Bowl watch party, but in both cases, the QM7K proved versatile enough to earn my recommendation.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/sports/watch-super-bowl-2026-free">How to watch Super Bowl 2026: free live streams, TV channels for Patriots vs Seahawks</a></li><li><a href="https://www.tomsguide.com/sales-events/i-just-showed-these-6-super-bowl-gadgets-on-tv-heres-how-to-level-up-your-party-without-blowing-your-budget">I just showed these 6 Super Bowl gadgets on TV — here’s how to level up your party without blowing your budget</a></li><li><a href="https://www.tomsguide.com/entertainment/streaming/super-bowl-commercials-2026-all-the-ads-and-teasers-weve-seen-so-far">Every Super Bowl 2026 commercial so far: Full spots and teasers ahead of the big game</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ TCL’s “Super QLED” TV is the new king of color — here’s what our test results say ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Last month at CES, while nearly every major TV brand was showcasing tantalizing RGB LED TVs featuring exciting new display technology, TCL was putting the <a href="https://www.tomsguide.com/tvs/i-went-hands-on-with-tcls-first-sqd-mini-led-tv-and-it-made-me-forget-about-rgb-tvs">X11L SQD Mini-LED TV</a> on its highest pedestal. Unlike the parade of RGB LED TVs (which make use of an all-new type of display technology), the X11L — named after TCL’s Super Quantum Dot technology —  is built around a souped-up, refined version of a classic Mini-LED screen.</p><p>We’re still weeks away from getting our grubby paws on an RGB LED TV from Samsung, LG or Hisense, but we <em>have </em>had a chance to test drive the TCL X11L. And, while our official review is still being prepared, I can give you a sneak-peek.</p><p>TCL has boasted about the X11L’s color, and I can see why. The question now is whether or not these incoming RGB LED TVs can give the X11L a run for its money.</p><h2 id="tcl-x11l-color-how-does-it-stack-up">TCL X11L color: how does it stack up?</h2><p>I'll let our upcoming TCL X11L review speak for itself in the coming weeks, but I wanted to highlight one of the TV's color metrics for a few reasons. First, color volume has been an area of performance where Mini-LED TVs (like the X11L) have lagged behind quantum dot-enhanced OLED TVs in recent years.</p><p>Secondly, color is at the heart of what TCL's new TV is all about. This so-called Super QLED leverages TCL's all-new Deep Color System, which I'll explain shortly.</p><p>So, while we don't yet have data from any competing RGB LED TVs, we <em>can</em> see how the X11L stacks up to the <a href="https://www.tomsguide.com/tvs/4k-tvs/hisense-u8qg-mini-led-tv-review">Hisense U8QG</a> (a Mini-LED TV with excellent color volume) and two quantum dot-enhanced OLED TVs that feature some of the best color we've ever measured.</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL X11L</p></th><th  ><p>Hisense U8QG</p></th><th  ><p><strong>Sony Bravia 8 II OLED</strong></p></th><th  ><p><strong>Samsung S95F OLED</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>BT.2020 Gamut Coverage</strong></p></td><td  ><p>91.77%</p></td><td  ><p>83.98%</p></td><td  ><p>90.55%</p></td><td  ><p>90.47%</p></td></tr></tbody></table></div><p>Here's a quick refresher: BT.2020 (also known as Rec.2020) is an international color space standard for newer displays. The percentages describe how much of that color space these TVs are capable of covering.</p><p>As you can see, the <a href="https://www.tomsguide.com/tvs/oled-tvs/sony-bravia-8-ii-review">Sony Bravia 8 II</a> and the <a href="https://www.tomsguide.com/tvs/4k-tvs/samsung-s95f-oled-tv-review">Samsung S95F</a> — two QD-OLEDs that previously put up some of the best BT.2020 measurements we've ever measured — are a hair behind the X11L.</p><p>The X11L is significantly ahead of the Hisense U8QG, another quantum dot-enhanced Mini-LED TV that specializes in bright, punchy color. In other words, the bar for Mini-LED-based color was just raised — all the way <em>above</em> QD-OLED.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/WF2A1fPWs44" allowfullscreen></iframe></div></div><p>To be fair, with the right content and the best picture mode, all of these TVs look absolutely stunning. They're bright, high-contrast screens backed by powerful picture processing algorithms. There's a good chance that, from a color perspective, you wouldn't be able to tell the difference between these sets unless they were set up side by side.</p><div><blockquote><p>TCL just demonstrated that a Mini-LED display can be pushed into the color realms we've come to expect from premium, quantum dot-enhanced OLEDs.</p></blockquote></div><p>Nevertheless, what we have here is a proof of concept. TCL just demonstrated that a Mini-LED display can be pushed into the color realms we've come to expect from premium, quantum dot-enhanced OLEDs, provided you have access to TCL's engineering.</p><p>Now, all we have to do is wait and see how RGB LED TVs from Samsung, LG and Hisense stack up. These brands, too, have promised big performance numbers when it comes to RGB LED's color capabilities.</p><h2 id="super-quantum-dot-vs-rgb-led-what-s-the-difference">Super Quantum Dot vs RGB LED: what's the difference?</h2><p>The TCL X11L's secret sauce is made up of a few ingredients: reformulated quantum dots (now dubbed "Super Quantum Dots"), a new color filter for said quantum dots and some algorithmic tweaking designed to keep colors consistent (which TCL is calling its Advanced Color Purity Algorithm). Together, these elements define TCL's Deep Color System.</p><p>It's all very familiar in the world of traditional Mini-LED displays, albeit upgraded and refined. RGB LED, meanwhile, is a whole different story.</p><p>Like the best Mini-LED TVs, RGB LED displays leverage an array of ultra-small LEDs that can be broken up into dimmable zones. This goes a long way towards enhancing contrast and brightness in TVs like the TCL X11L.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="a23FB8Pw3HmEdrHXAtZgZC" name="Samsung-Micro-RGB-TV-LED-Comparison" alt="A visualization of the difference in size between the following: a traditional LED backlight, a Mini-LED backlight and a Micro RGB backlight. Each example is sitting side by side and arranged from left to right. The Micro RGB LED is the smallest and emitting rainbow-colored light, while the other two LEDs emit a white light." src="https://cdn.mos.cms.futurecdn.net/a23FB8Pw3HmEdrHXAtZgZC.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Samsung)</span></figcaption></figure><p>Unlike the X11L, however, RGB LED TVs have a secret weapon: Their LEDs are red-, green- and blue-tinted. While the white light of Mini-LEDs like the X11L rely on a color filter, RGB LEDs do not.</p><p>Like TCL's Super QLED TV, the primary purported benefit of RGB LED TVs is color, and in some reported cases, brands are reporting that their RGB LED TVs are capable of reaching up to 100% of BT.2020.</p><p>Here's the thing: In a <a href="https://us.tcl.com/blogs/press-releases/tcl-unveils-x11l-series-sqd-mini-led-tv-at-ces-2026-delivering-ultimate-performance-with-an-all-new-level-of-accurate-color?srsltid=AfmBOopP7N6yQAZ2uAQRIHPagV9JW1gjh1nQr_dwopvBeUNyT3bhAXq4" target="_blank" rel="nofollow">TCL X11L press release</a>, TCL <em>also </em>claims that SQD TV can reach "100% of BT.2020 color." We, of course, only measured 91%.</p><p>Crucially, they add the following footnote: <em>"Actual results may vary based on specific units, environmental conditions, source material, and testing equipment."  </em>This qualifier makes sense, too — TV-testing is a finnicky process.</p><h2 id="tcl-2026-tvs-outlook">TCL 2026 TVs: outlook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="a2MtWgRSwFpDn7HFM5fD4d" name="TCL x11L" alt="TCL X11L SQD Mini-LED TV" src="https://cdn.mos.cms.futurecdn.net/a2MtWgRSwFpDn7HFM5fD4d.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The TCL X11L SQD Mini-LED TV will be available in 75-, 85- and 98-inch sizes, so if you were hoping to buy a new 55- or 65-inch TV in 2026, the extra-large nature of the X11L may not be for you.</p><p>The good news is that the 2026 TCL TV lineup will also feature two new TVs that are reported to make use of the brand's SQD technology: the QM7L and the QM8L. They're new versions of the <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review">TCL QM7K</a> and the <a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review">QM8K</a>, two quantum dot-enhanced Mini-LED TVs that have proven quite popular. I'm eager to see how their performance compares to the ultra-premium X11L.</p><p>TCL is also launching an RGB LED TV of its own. Not much is currently known about the TCL RM9L, but so far, it's been announced exclusively in big-screen sizes: 85, 98 and 115 inches.</p><p>It may not be a matter of if these TVs make our list of the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TVs</a>, but a matter of when.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Oz9Z0W"></div>                            </div>                            <script src="https://kwizly.com/embed/Oz9Z0W.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/i-went-hands-on-with-tcls-first-sqd-mini-led-tv-and-it-made-me-forget-about-rgb-tvs">I went hands-on with TCL’s first SQD Mini-LED TV — and it made me forget about RGB TVs</a></li><li><a href="https://www.tomsguide.com/tvs/5-tcl-tv-settings-to-change-for-the-best-possible-picture">5 TCL TV settings to change for the best possible picture</a></li><li><a href="https://www.tomsguide.com/tvs/here-are-all-of-the-tv-terms-you-need-to-know-when-buying-a-tv-in-2026-from-micro-rgb-to-qd-oled">Buying a TV in 2026? Here are the 9 terms you need to know</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/qled-tvs/tcls-super-qled-tv-is-the-new-king-of-color-heres-what-our-test-results-say</link>
                                                                            <description>
                            <![CDATA[ While brands like Hisense, LG and Samsung are gearing up to launch 2026 RGB LED TVs, TCL is releasing a new take on a Mini-LED-powered QLED. The TCL X11L SQD TV is here — and we've already tested it. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">b6wq5ra8e9GZLBz9McjPSS</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/m5qDEb6GJhea7BG8oc3mtm-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 06 Feb 2026 06:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[QLED TVs]]></category>
                                                    <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/m5qDEb6GJhea7BG8oc3mtm-1280-80.jpg">
                                                            <media:credit><![CDATA[TCL]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[TCL X11L on wall in living room]]></media:description>                                                            <media:text><![CDATA[TCL X11L on wall in living room]]></media:text>
                                <media:title type="plain"><![CDATA[TCL X11L on wall in living room]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/m5qDEb6GJhea7BG8oc3mtm-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Last month at CES, while nearly every major TV brand was showcasing tantalizing RGB LED TVs featuring exciting new display technology, TCL was putting the <a href="https://www.tomsguide.com/tvs/i-went-hands-on-with-tcls-first-sqd-mini-led-tv-and-it-made-me-forget-about-rgb-tvs">X11L SQD Mini-LED TV</a> on its highest pedestal. Unlike the parade of RGB LED TVs (which make use of an all-new type of display technology), the X11L — named after TCL’s Super Quantum Dot technology —  is built around a souped-up, refined version of a classic Mini-LED screen.</p><p>We’re still weeks away from getting our grubby paws on an RGB LED TV from Samsung, LG or Hisense, but we <em>have </em>had a chance to test drive the TCL X11L. And, while our official review is still being prepared, I can give you a sneak-peek.</p><p>TCL has boasted about the X11L’s color, and I can see why. The question now is whether or not these incoming RGB LED TVs can give the X11L a run for its money.</p><h2 id="tcl-x11l-color-how-does-it-stack-up">TCL X11L color: how does it stack up?</h2><p>I'll let our upcoming TCL X11L review speak for itself in the coming weeks, but I wanted to highlight one of the TV's color metrics for a few reasons. First, color volume has been an area of performance where Mini-LED TVs (like the X11L) have lagged behind quantum dot-enhanced OLED TVs in recent years.</p><p>Secondly, color is at the heart of what TCL's new TV is all about. This so-called Super QLED leverages TCL's all-new Deep Color System, which I'll explain shortly.</p><p>So, while we don't yet have data from any competing RGB LED TVs, we <em>can</em> see how the X11L stacks up to the <a href="https://www.tomsguide.com/tvs/4k-tvs/hisense-u8qg-mini-led-tv-review">Hisense U8QG</a> (a Mini-LED TV with excellent color volume) and two quantum dot-enhanced OLED TVs that feature some of the best color we've ever measured.</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>TCL X11L</p></th><th  ><p>Hisense U8QG</p></th><th  ><p><strong>Sony Bravia 8 II OLED</strong></p></th><th  ><p><strong>Samsung S95F OLED</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>BT.2020 Gamut Coverage</strong></p></td><td  ><p>91.77%</p></td><td  ><p>83.98%</p></td><td  ><p>90.55%</p></td><td  ><p>90.47%</p></td></tr></tbody></table></div><p>Here's a quick refresher: BT.2020 (also known as Rec.2020) is an international color space standard for newer displays. The percentages describe how much of that color space these TVs are capable of covering.</p><p>As you can see, the <a href="https://www.tomsguide.com/tvs/oled-tvs/sony-bravia-8-ii-review">Sony Bravia 8 II</a> and the <a href="https://www.tomsguide.com/tvs/4k-tvs/samsung-s95f-oled-tv-review">Samsung S95F</a> — two QD-OLEDs that previously put up some of the best BT.2020 measurements we've ever measured — are a hair behind the X11L.</p><p>The X11L is significantly ahead of the Hisense U8QG, another quantum dot-enhanced Mini-LED TV that specializes in bright, punchy color. In other words, the bar for Mini-LED-based color was just raised — all the way <em>above</em> QD-OLED.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/WF2A1fPWs44" allowfullscreen></iframe></div></div><p>To be fair, with the right content and the best picture mode, all of these TVs look absolutely stunning. They're bright, high-contrast screens backed by powerful picture processing algorithms. There's a good chance that, from a color perspective, you wouldn't be able to tell the difference between these sets unless they were set up side by side.</p><div><blockquote><p>TCL just demonstrated that a Mini-LED display can be pushed into the color realms we've come to expect from premium, quantum dot-enhanced OLEDs.</p></blockquote></div><p>Nevertheless, what we have here is a proof of concept. TCL just demonstrated that a Mini-LED display can be pushed into the color realms we've come to expect from premium, quantum dot-enhanced OLEDs, provided you have access to TCL's engineering.</p><p>Now, all we have to do is wait and see how RGB LED TVs from Samsung, LG and Hisense stack up. These brands, too, have promised big performance numbers when it comes to RGB LED's color capabilities.</p><h2 id="super-quantum-dot-vs-rgb-led-what-s-the-difference">Super Quantum Dot vs RGB LED: what's the difference?</h2><p>The TCL X11L's secret sauce is made up of a few ingredients: reformulated quantum dots (now dubbed "Super Quantum Dots"), a new color filter for said quantum dots and some algorithmic tweaking designed to keep colors consistent (which TCL is calling its Advanced Color Purity Algorithm). Together, these elements define TCL's Deep Color System.</p><p>It's all very familiar in the world of traditional Mini-LED displays, albeit upgraded and refined. RGB LED, meanwhile, is a whole different story.</p><p>Like the best Mini-LED TVs, RGB LED displays leverage an array of ultra-small LEDs that can be broken up into dimmable zones. This goes a long way towards enhancing contrast and brightness in TVs like the TCL X11L.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="a23FB8Pw3HmEdrHXAtZgZC" name="Samsung-Micro-RGB-TV-LED-Comparison" alt="A visualization of the difference in size between the following: a traditional LED backlight, a Mini-LED backlight and a Micro RGB backlight. Each example is sitting side by side and arranged from left to right. The Micro RGB LED is the smallest and emitting rainbow-colored light, while the other two LEDs emit a white light." src="https://cdn.mos.cms.futurecdn.net/a23FB8Pw3HmEdrHXAtZgZC.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Samsung)</span></figcaption></figure><p>Unlike the X11L, however, RGB LED TVs have a secret weapon: Their LEDs are red-, green- and blue-tinted. While the white light of Mini-LEDs like the X11L rely on a color filter, RGB LEDs do not.</p><p>Like TCL's Super QLED TV, the primary purported benefit of RGB LED TVs is color, and in some reported cases, brands are reporting that their RGB LED TVs are capable of reaching up to 100% of BT.2020.</p><p>Here's the thing: In a <a href="https://us.tcl.com/blogs/press-releases/tcl-unveils-x11l-series-sqd-mini-led-tv-at-ces-2026-delivering-ultimate-performance-with-an-all-new-level-of-accurate-color?srsltid=AfmBOopP7N6yQAZ2uAQRIHPagV9JW1gjh1nQr_dwopvBeUNyT3bhAXq4" target="_blank" rel="nofollow">TCL X11L press release</a>, TCL <em>also </em>claims that SQD TV can reach "100% of BT.2020 color." We, of course, only measured 91%.</p><p>Crucially, they add the following footnote: <em>"Actual results may vary based on specific units, environmental conditions, source material, and testing equipment."  </em>This qualifier makes sense, too — TV-testing is a finnicky process.</p><h2 id="tcl-2026-tvs-outlook">TCL 2026 TVs: outlook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="a2MtWgRSwFpDn7HFM5fD4d" name="TCL x11L" alt="TCL X11L SQD Mini-LED TV" src="https://cdn.mos.cms.futurecdn.net/a2MtWgRSwFpDn7HFM5fD4d.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The TCL X11L SQD Mini-LED TV will be available in 75-, 85- and 98-inch sizes, so if you were hoping to buy a new 55- or 65-inch TV in 2026, the extra-large nature of the X11L may not be for you.</p><p>The good news is that the 2026 TCL TV lineup will also feature two new TVs that are reported to make use of the brand's SQD technology: the QM7L and the QM8L. They're new versions of the <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review">TCL QM7K</a> and the <a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review">QM8K</a>, two quantum dot-enhanced Mini-LED TVs that have proven quite popular. I'm eager to see how their performance compares to the ultra-premium X11L.</p><p>TCL is also launching an RGB LED TV of its own. Not much is currently known about the TCL RM9L, but so far, it's been announced exclusively in big-screen sizes: 85, 98 and 115 inches.</p><p>It may not be a matter of if these TVs make our list of the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TVs</a>, but a matter of when.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Oz9Z0W"></div>                            </div>                            <script src="https://kwizly.com/embed/Oz9Z0W.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/i-went-hands-on-with-tcls-first-sqd-mini-led-tv-and-it-made-me-forget-about-rgb-tvs">I went hands-on with TCL’s first SQD Mini-LED TV — and it made me forget about RGB TVs</a></li><li><a href="https://www.tomsguide.com/tvs/5-tcl-tv-settings-to-change-for-the-best-possible-picture">5 TCL TV settings to change for the best possible picture</a></li><li><a href="https://www.tomsguide.com/tvs/here-are-all-of-the-tv-terms-you-need-to-know-when-buying-a-tv-in-2026-from-micro-rgb-to-qd-oled">Buying a TV in 2026? Here are the 9 terms you need to know</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ This 75-inch Mini-LED TV for $599 is the best big-screen Super Bowl deal I'd actually buy ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The biggest televised sporting event of the year is less than a week away, and if you’re in the market for a big screen on a budget, listen up: The <a href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow">75-inch TCL QM5K is just $599 at Best Buy</a> right now. It’s the best deal I’ve seen on a 75-inch TV ahead of the Super Bowl.</p><p>As a Best Buy exclusive, you’re not going to find this deal available at any other retailer. The QM5K is a better pick than most ultra-affordable 75-inch TVs, too, thanks to its Mini-LED backlighting. Here's what you need to know. (For more deals, check out our full <a href="https://www.tomsguide.com/tvs/4k-tvs/best-super-bowl-tv-deals-my-top-picks-from-usd59-to-oled-luxury">Super Bowl TV deals</a> guide).</p><div class="product"><a data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label="75" QM5K Mini-LED TV" data-dimension48="75" QM5K Mini-LED TV" data-dimension25="$599" href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="rRdoCj55QhqPM9wqYhpprE" name="TCL-QM5K-Mini-LED-TV-1-by-1-Deals-Block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/rRdoCj55QhqPM9wqYhpprE.jpg" mos="" align="middle" fullscreen="" width="2000" height="2000" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow" data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label='75" QM5K Mini-LED TV' data-dimension48='75" QM5K Mini-LED TV' data-dimension25="$599">75" QM5K Mini-LED TV: was $1199 now $599</a></strong><br>The QM5K arrives with built-in Google TV features for all of your streaming needs, plus Dolby Vision support. Its handiest feature is its Mini-LED backlighting, which is tough to find at this price point. If you're going to shop in this price range ahead of the Super Bowl, I recommend going with the QM5K over a super-cheap TV from a brand like Insignia or Onn.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow" data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label="75" QM5K Mini-LED TV" data-dimension48="75" QM5K Mini-LED TV" data-dimension25="$599">View Deal</a></p></div><p>Take it from someone who's been testing and reviewing TVs for over a decade: At the 75-inch size point, you <em>definitely</em> want Mini-LED backlighting. </p><p>The QM5K taps a more modest array of Mini-LEDs relative to higher-end Mini-LED TVs (like the <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review">TCL QM7K</a> and the <a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review">TCL QM8K</a>), but it still makes a world of difference when compared to a garden-variety, direct- or edge-lit LED display. </p><p>Mini-LED backlighting typically results in better contrast and higher brightness. You'll almost certainly enjoy a richer picture with the QM5K than what you'll see on a cheap, edge-lit TV, and that's a big plus if you're planning on entertaining a room full of people next Sunday.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="vCnRGsdCB3mnCFg3YgsEfh" name="TCL-QM5K-Mini-LED-TV-Google-TV-Home-Screen" alt="The TCL QM5K Mini-LED TV displaying the Google TV home screen" src="https://cdn.mos.cms.futurecdn.net/vCnRGsdCB3mnCFg3YgsEfh.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>The QM5K also comes with the Google TV software suite built right in, which is one of my preferred smart platforms in 2026. I mention this because the QM5K only has three HDMI inputs rather than the typical four. Google TV takes some of the sting out of this situation, as it's easy-to-use interface and terrific app support makes it a viable daily driver.</p><p>Unlike some bottom-of-the-barrel options in this price range, the QM5K delivers decent hardware and software. It's a fantastic fit for folks favoring a bigger screen size over high-end performance. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5rAnO"></div>                            </div>                            <script src="https://kwizly.com/embed/W5rAnO.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/sony-just-handed-its-tv-business-to-tcl-heres-what-it-means-for-you">Sony just handed its TV business to TCL — here’s what it means for you</a></li><li><a href="https://www.tomsguide.com/tvs/tcl-tv-lineup-2026-new-sqd-mini-led-enhancement-mini-led-tvs-and-an-rgb-mini-led-tv">TCL TV lineup 2026: new SQD Mini-LED enhancement, Mini-LED TVs, and an RGB Mini-LED TV</a></li><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-finally-added-this-key-feature-to-its-2025-tvs-heres-why-you-should-use-it">TCL finally added this key feature to its 2025 TVs — here's why you should use it</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/qled-tvs/this-75-inch-mini-led-tv-for-usd599-is-the-best-big-screen-super-bowl-deal-ive-seen-so-far</link>
                                                                            <description>
                            <![CDATA[ Looking for one of the best Super Bowl TV deals available today? This 75-inch Mini-LED TV is one of the best big-screen TV deals you can get right now. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">wb4r7xviMT9ceoQBWg38SW</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/iPZtAXssbDzMU8RfuGPH9b-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 03 Feb 2026 15:30:15 +0000</pubDate>                                                                                                                                <updated>Tue, 03 Feb 2026 15:37:47 +0000</updated>
                                                                                                                                            <category><![CDATA[QLED TVs]]></category>
                                                    <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/iPZtAXssbDzMU8RfuGPH9b-1280-80.jpg">
                                                            <media:credit><![CDATA[TCL]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The TCL QM5K Mini-LED TV, wall-mounted in a modern living room setting while displaying an NFL football player. There is a blue-colored badge overlaid on the image that reads: &quot;Tom&#039;s Guide. Act Fast!&quot;]]></media:description>                                                            <media:text><![CDATA[The TCL QM5K Mini-LED TV, wall-mounted in a modern living room setting while displaying an NFL football player. There is a blue-colored badge overlaid on the image that reads: &quot;Tom&#039;s Guide. Act Fast!&quot;]]></media:text>
                                <media:title type="plain"><![CDATA[The TCL QM5K Mini-LED TV, wall-mounted in a modern living room setting while displaying an NFL football player. There is a blue-colored badge overlaid on the image that reads: &quot;Tom&#039;s Guide. Act Fast!&quot;]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/iPZtAXssbDzMU8RfuGPH9b-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The biggest televised sporting event of the year is less than a week away, and if you’re in the market for a big screen on a budget, listen up: The <a href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow">75-inch TCL QM5K is just $599 at Best Buy</a> right now. It’s the best deal I’ve seen on a 75-inch TV ahead of the Super Bowl.</p><p>As a Best Buy exclusive, you’re not going to find this deal available at any other retailer. The QM5K is a better pick than most ultra-affordable 75-inch TVs, too, thanks to its Mini-LED backlighting. Here's what you need to know. (For more deals, check out our full <a href="https://www.tomsguide.com/tvs/4k-tvs/best-super-bowl-tv-deals-my-top-picks-from-usd59-to-oled-luxury">Super Bowl TV deals</a> guide).</p><div class="product"><a data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label="75" QM5K Mini-LED TV" data-dimension48="75" QM5K Mini-LED TV" data-dimension25="$599" href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="rRdoCj55QhqPM9wqYhpprE" name="TCL-QM5K-Mini-LED-TV-1-by-1-Deals-Block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/rRdoCj55QhqPM9wqYhpprE.jpg" mos="" align="middle" fullscreen="" width="2000" height="2000" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow" data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label='75" QM5K Mini-LED TV' data-dimension48='75" QM5K Mini-LED TV' data-dimension25="$599">75" QM5K Mini-LED TV: was $1199 now $599</a></strong><br>The QM5K arrives with built-in Google TV features for all of your streaming needs, plus Dolby Vision support. Its handiest feature is its Mini-LED backlighting, which is tough to find at this price point. If you're going to shop in this price range ahead of the Super Bowl, I recommend going with the QM5K over a super-cheap TV from a brand like Insignia or Onn.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow" data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label="75" QM5K Mini-LED TV" data-dimension48="75" QM5K Mini-LED TV" data-dimension25="$599">View Deal</a></p></div><p>Take it from someone who's been testing and reviewing TVs for over a decade: At the 75-inch size point, you <em>definitely</em> want Mini-LED backlighting. </p><p>The QM5K taps a more modest array of Mini-LEDs relative to higher-end Mini-LED TVs (like the <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review">TCL QM7K</a> and the <a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review">TCL QM8K</a>), but it still makes a world of difference when compared to a garden-variety, direct- or edge-lit LED display. </p><p>Mini-LED backlighting typically results in better contrast and higher brightness. You'll almost certainly enjoy a richer picture with the QM5K than what you'll see on a cheap, edge-lit TV, and that's a big plus if you're planning on entertaining a room full of people next Sunday.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="vCnRGsdCB3mnCFg3YgsEfh" name="TCL-QM5K-Mini-LED-TV-Google-TV-Home-Screen" alt="The TCL QM5K Mini-LED TV displaying the Google TV home screen" src="https://cdn.mos.cms.futurecdn.net/vCnRGsdCB3mnCFg3YgsEfh.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>The QM5K also comes with the Google TV software suite built right in, which is one of my preferred smart platforms in 2026. I mention this because the QM5K only has three HDMI inputs rather than the typical four. Google TV takes some of the sting out of this situation, as it's easy-to-use interface and terrific app support makes it a viable daily driver.</p><p>Unlike some bottom-of-the-barrel options in this price range, the QM5K delivers decent hardware and software. It's a fantastic fit for folks favoring a bigger screen size over high-end performance. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5rAnO"></div>                            </div>                            <script src="https://kwizly.com/embed/W5rAnO.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/sony-just-handed-its-tv-business-to-tcl-heres-what-it-means-for-you">Sony just handed its TV business to TCL — here’s what it means for you</a></li><li><a href="https://www.tomsguide.com/tvs/tcl-tv-lineup-2026-new-sqd-mini-led-enhancement-mini-led-tvs-and-an-rgb-mini-led-tv">TCL TV lineup 2026: new SQD Mini-LED enhancement, Mini-LED TVs, and an RGB Mini-LED TV</a></li><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-finally-added-this-key-feature-to-its-2025-tvs-heres-why-you-should-use-it">TCL finally added this key feature to its 2025 TVs — here's why you should use it</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I tried the TCL NXTPAPER 11 Plus and this budget tablet is easily my iPad killer — here’s why ]]></title>
                                                                                                <dc:content><![CDATA[ <p>It’s not every day I’m walking through a mall and end up stopping in my tracks to play with a tablet, but that’s exactly what happened last summer in Taiwan.</p><p>After a week of checking out the latest gadgets at <a href="https://www.tomsguide.com/computing/best-of-computex-2025-the-top-15-gadgets-of-the-worlds-biggest-computing-show">Computex</a>, I headed to Taipei’s legendary electronics market, <a href="https://www.tomsguide.com/video/OgRcRb3T/what-can-50-buy-at-taiwan-039-s-craziest-tech-mall">Guang Hua Digital Plaza</a> for some last-minute sightseeing. While I usually prefer smaller tablets like the <a href="https://www.tomsguide.com/tablets/i-spent-two-weeks-with-the-ipad-mini-7-and-it-reignited-my-love-for-smaller-tablets">iPad mini</a> or the <a href="https://www.tomsguide.com/computing/tablets/i-thought-the-ipad-mini-was-the-perfect-small-tablet-until-i-tried-the-lenovo-legion-tab-3-heres-why">Lenovo Legion Tab 3</a>, the TCL NXTPAPER 14 immediately stood out. Maybe it was the massive 14.3-inch screen or the chance to finally see and feel TCL’s innovative <a href="https://www.tomsguide.com/phones/android-phones/im-fascinated-by-tcls-new-e-reader-style-screen-for-smartphones">NXTPAPER</a> tech in person, but I was hooked.</p><p>Late last year, TCL sent over that same tablet along with its smaller, more powerful NXTPAPER 11 Plus and even a smartphone with the same paper-like display for me to test out at home. While its larger sibling hooked me initially, the NXTPAPER 11 Plus quickly became my go-to device. Its 11.5-inch screen makes it easy to slip into a bag and it’s also the perfect size for reading.</p><p>Unlike with other tablets I’ve tried in the past, I didn’t feel compelled to put a screen protector on this one and I’m glad I didn’t, as doing so would ruin my favorite thing about it: the paper-like feel of its matte display. I also didn’t have to worry about finding a case for the NXTPAPER 11 Plus since TCL includes one in the box along with a fully equipped stylus.</p><p>Here’s what it’s been like using TCL’s NXTPAPER tech for the past two months and why the NXTPAPER 11 Plus is easily one of the <a href="https://www.tomsguide.com/best-picks/best-tablet">best tablets</a> on a budget, especially if you’ve flirted with the idea of picking up a <a href="https://www.tomsguide.com/tablets/remarkable-paper-pro">reMarkable Paper Pro</a> over a standard Android tablet.</p><div class="product"><a data-dimension112="4c28c854-7067-4a1b-b1ec-e0eeee043c54" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$269.00" href="https://www.amazon.com/TCL-NXTPAPER-Android-Notebook-Included/dp/B0FLJMFNR7" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1376px;"><p class="vanilla-image-block" style="padding-top:86.70%;"><img id="2rmQkEzhXCeVzcYeLEFNn9" name="NXTPAPER 11 Plus" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/2rmQkEzhXCeVzcYeLEFNn9.jpg" mos="" align="middle" fullscreen="" width="1376" height="1193" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>This 11.5-inch Android tablet boasts a 120Hz, 2.2K display with an 8,000 mAh battery but its TCL's NXTPAPER 4.0 tech that really makes it stand out. You get a paper-like feel when scrolling with your finger or taking notes with the included stylus. The NXTPAPER 11 Plus also comes with a carrying case.<a class="view-deal button" href="https://www.amazon.com/TCL-NXTPAPER-Android-Notebook-Included/dp/B0FLJMFNR7" target="_blank" rel="nofollow" data-dimension112="4c28c854-7067-4a1b-b1ec-e0eeee043c54" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$269.00">View Deal</a></p></div><h2 id="surprisingly-equipped-right-out-of-the-box">Surprisingly equipped right out of the box</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="BDUq3Ybc4UMPhmiTwtgLEn" name="TCL NXTPAPER 11 Plus-8" alt="The TCL NXTPAPER 11 Plus unboxed on a desk" src="https://cdn.mos.cms.futurecdn.net/BDUq3Ybc4UMPhmiTwtgLEn.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>At a time when you’re lucky to get a USB-C cable in the box, I was instantly impressed by everything TCL manages to cram into the box with both the NXTPAPER 14 and the NXTPAPER 14 Plus. </p><p>Unlike with one of the <a href="https://www.tomsguide.com/best-picks/best-ipad">best iPads</a>, it can be hard finding a case or other accessories for some Android tablets. TCL takes the guesswork out with its tablets so instead of shopping for the right case, you can get right to using your new device.</p><p>I really like the included folio case for a couple of reasons. For starters, it’s magnetic and instantly turns off your tablet’s screen when closed. However, there are also plastic feet on the bottom side that, in addition to turning the case into a very sturdy stand, provide you with a place to store the included stylus.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="cbwTk6SN3SzVTCRFYKXCP6" name="TCL NXTPAPER 11 Plus-5" alt="A person using the included stylus to scroll through stories in Google Discover on the TCL NXTPAPER 11 Plus" src="https://cdn.mos.cms.futurecdn.net/cbwTk6SN3SzVTCRFYKXCP6.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I’m no digital artist by any means but I’m quite partial to having a stylus for each of my tablets. I find <a href="https://www.tomsguide.com/opinion/i-finally-got-the-right-stylus-for-my-chromebook-and-its-a-game-changer">using a stylus</a> makes it a lot easier to scroll through the news each morning without accidentally opening stories I wasn’t planning on reading. The same goes for poking around a device’s settings menu and quickly making changes like not having new apps added to my home screen for instance.</p><p>I also really like how this is an active stylus that’s pre-paired with the NXTPAPER 11 Plus. After powering it on, I was able to start using it right away and surprisingly, I haven’t even had to charge it yet, though it does get up to 100 hours of use on a single charge. There are also two up and down keys on the stylus that you can program to do things like instantly take you back to the home screen or open TCL’s Sidebar. </p><p>Speaking of which, the Sidebar is a collection of customizable shortcuts that you can access by swiping with your finger (or the stylus) to go back and holding it there for an extra second or so. You can add actions like taking a screenshot as well as shortcuts to your favorite apps. I found this feature to be both pretty clever and well implemented.</p><p>The included case and stylus are useful extras but it’s the display itself and TCL’s proprietary screen technology that kept me going back to the NXTPAPER 11 Plus again and again.</p><h2 id="an-almost-instant-transformation">An almost instant transformation</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="P5NBEn6vUrPhkjceJqzK9B" name="TCL NXTPAPER 11 Plus-7" alt="A close up shot of the NXTPAPER Key on the TCL NXTPAPER 11 Plus" src="https://cdn.mos.cms.futurecdn.net/P5NBEn6vUrPhkjceJqzK9B.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The NXTPAPER 11 Plus has your standard USB-C port on the side as well as a power button and volume rocker up top. However, across from those two buttons is the device's namesake NXTPAPER Key. This is where the device’s magic happens and on this newer tablet, it’s also equipped with a backlight that you can turn on or off. When enabled, the light “breathes,” perhaps to help you remember that a total display transformation is just a button press away.</p><p>The NXTPAPER Key is also customizable and you can choose what a single press, double press and long press does. By default, a single press lets you switch between its three different modes: <strong>Regular Mode</strong>, <strong>Color Paper Mode</strong> and <strong>Ink Paper Mode</strong>. The animation that accompanies this switch is pretty neat too, especially when going from the black and white Ink Paper Mode back to the full color Regular Mode and vice versa.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LWctSqyEtM7KRX7aiBferE" name="TCL NXTPAPER 11 Plus-6" alt="The TCL NXTPAPER 11 Plus in Ink Paper Mode on a desk" src="https://cdn.mos.cms.futurecdn.net/LWctSqyEtM7KRX7aiBferE.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>After <a href="https://www.tomsguide.com/us/best-e-readers,review-2766.html">owning a Kindle</a> for years now to read ebooks, I was really taken aback by how closely TCL’s NXTPAPER is able to mimic ePaper even though it uses an LCD display. This gives you the best of both worlds since you have that easier to read black and white look but with the much faster refresh rates of LCD over ePaper.</p><p>My favorite part of using either of the non-standard NXTPAPER modes though is that your entire device along with all of the apps you use are instantly transformed. Whether I was scrolling through Google News or browsing Reddit, everything – including pictures – was either in black and white Ink Paper or Color Paper. </p><p>There are plenty of health benefits like reduced eye strain and less blue light when using a tablet equipped with TCL’s NXTPAPER, but I found the matte display — technically nano-matrix lithography etching — was the most useful for me day to day as someone that can’t stand the glare of a glossy display, especially when taking pictures.</p><h2 id="glare-free-versatility">Glare-free versatility</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="6cxTjqkqUxpJzh3kD8guML" name="TCL NXTPAPER 11 Plus-3" alt="The TCL NXTPAPER 11 Plus on a table outside on a sunny day showing off how capable its matte display is" src="https://cdn.mos.cms.futurecdn.net/6cxTjqkqUxpJzh3kD8guML.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Although most of my time testing the NXTPAPER 11 Plus was spent in the comfort of my own home, I decided to bring the tablet with me to a doctor’s appointment followed by <a href="https://www.tomsguide.com/home/home-office/5-ikea-accessories-id-pick-up-for-my-home-office-and-theyre-all-under-usd30">a trip to IKEA</a> to see how it handled the real world. </p><p>Right from the get-go, I was impressed by how usable it remained even in direct sunlight. Most tablets struggle in this situation, but thanks to that matte display, I wasn’t squinting just to make out what was on the screen.</p><p>Even outside on a table, the NXTPAPER 11 Plus was just as functional in the great outdoors as it was at home. This is the kind of device you can comfortably use while sitting in the grass — say, on a college campus — and since the case has a built-in stand, you really don't need to pack anything else.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="raSM43X3VGi2Z9k6dixAxQ" name="TCL NXTPAPER 11 Plus-2" alt="A person reading an eBook on the TCL NXTPAPER 11 Plus at IKEA" src="https://cdn.mos.cms.futurecdn.net/raSM43X3VGi2Z9k6dixAxQ.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Once my appointment was over, I headed to IKEA and, after polishing off some Swedish meatballs, I spent a few minutes using the tablet in the food court. At first glance, you might think I was just reading an ebook on a normal tablet. However, I actually had Ink Paper Mode enabled, which really made the text pop. Since the display isn’t working as hard to render a full spectrum of colors in this mode, switching to black and white is a clever way to stretch its already impressive 8,000 mAh battery even further during long days out.</p><p>Then, when it was time to check out IKEA’s new smart home accessories — namely its <a href="https://www.tomsguide.com/home/smart-home/ikea-just-announced-21-smart-home-gadgets-heres-the-ones-im-buying">Matter-equipped buttons</a> — I just closed the folio case and slid the tablet back into my backpack, knowing it would be perfectly safe without an extra sleeve.</p><p>Although the NXTPAPER 14 wowed me initially, I’ve found that 11.5 inches is the perfect middle ground for both portability and screen real estate. It’s a large enough screen to multitask with two apps side-by-side, yet in portrait mode, it’s ideal for reading both books and news articles.</p><p>Since this tablet is only $370 full price and is often found for under $300 on sale, it’s the kind of device you can take everywhere without constant worry. If I were using an <a href="https://www.tomsguide.com/tablets/ipads/ill-only-read-comics-on-an-ipad-pro-oled-from-now-on-heres-why">iPad Pro</a> or a premium Samsung tablet, I might be tempted to leave it at home to keep it safe. With the NXTPAPER 11 Plus, however, I wouldn’t think twice before throwing it in my bag for a weekend trip or a long flight.</p><h2 id="consider-me-in-matte-uated">Consider me in-matte-uated</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8ub6waqHVABVdMPSrbbDhZ" name="TCL NXTPAPER 11 Plus-4" alt="The TCL NXTPAPER 50 XE, the TCL NXTPAPER 11 Plus and the TCL NXTPAPER 14 side by side on a desk with each device showing a different display mode of TCL's NXTPAPER tech" src="https://cdn.mos.cms.futurecdn.net/8ub6waqHVABVdMPSrbbDhZ.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I have to admit, what initially enticed me about TCL’s NXTPAPER was how photogenic this display tech is. As part of my job, I often have to snap pics of a particular app or service running on a smartphone or tablet. While direct sunlight pretty much always looks great in photos, glare absolutely doesn’t. Back at that mall in Taipei, I wondered what it would be like having a device I could easily photograph even in less than ideal conditions and those few quick pics I took in IKEA prove that TCL’s NXTPAPER is perfect for this.</p><p>Glare-free photos did draw me in at first, but I wasn’t expecting to love the way a matte touchscreen felt on my fingertips. That little bit of resistance you get from a non-glossy screen really makes simple actions like swiping or scrolling feel a whole lot more premium. Add to this how I can instantly switch between full color or black and white system-wide while still running what is essentially stock Android, and I couldn’t be happier with both of the tablets and the smartphone TCL sent over.</p><p>After getting a taste of the all-matte life with these devices, I found myself wondering if TCL would ever bring its NXTPAPER tech to one of the <a href="https://www.tomsguide.com/best-picks/best-monitors">best monitors</a> or even one of the company’s TVs. Swiping my finger up and down or even using the included stylus felt entirely different than it normally does. Not because TCL is also partial to matte screens, but because a display like that is required for the company's NXTPAPER to work its magic.</p><p>I don’t plan on putting down the NXTPAPER 11 Plus anytime soon, but the jury is still out on whether or not I’d be willing to switch to one of TCL’s smartphones to have this same premium-feeling sensation whenever I take my phone out of my pocket. I guess only time will tell.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tablets/android-tablets/i-replaced-my-work-laptop-with-the-biggest-android-tablet-you-can-get-3-lessons-i-learned">I replaced my work laptop with the biggest Android tablet you can get — here's what happened</a></li><li><a href="https://www.tomsguide.com/opinion/i-tried-3-different-styluses-with-the-pixel-tablet-and-this-is-the-one-id-buy">The Pixel Tablet is even better with a stylus and I found the best one</a></li><li><a href="https://www.tomsguide.com/gaming/i-built-the-ultimate-remote-play-setup-with-wi-fi-7-to-say-goodbye-to-stuttery-gameplay-for-good-heres-how">I got tired of having a bad remote play experience so I used Wi-Fi 7 and this powerful gaming tablet to fix it for good</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/tablets/i-tried-the-tcl-nxtpaper-11-plus-and-this-budget-tablet-is-easily-my-ipad-killer-heres-why</link>
                                                                            <description>
                            <![CDATA[ The TCL NXTPAPER 11 Plus may have a budget price but its matte screen and included stylus and case give this eye-friendly tablet a premium feel. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Y7pCe9oV4jttTFdKbKG5Ck</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/EdSGZrcAASZCrzbMZdaWYi-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 25 Jan 2026 10:15:00 +0000</pubDate>                                                                                                                                <updated>Mon, 26 Jan 2026 15:35:28 +0000</updated>
                                                                                                                                            <category><![CDATA[Tablets]]></category>
                                                    <category><![CDATA[Android Tablets]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                                                                <author><![CDATA[ anthony.spadafora@futurenet.com (Anthony Spadafora) ]]></author>                    <dc:creator><![CDATA[ Anthony Spadafora ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/z73LEoj7FkUjNG85GcWHtH.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Anthony Spadafora is the managing editor for security and home office furniture at Tom’s Guide where he covers everything from data breaches and malware to password managers and the best way to cover your whole home or business with a strong Wi-Fi signal.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Before joining the team, he spent three years covering cybersecurity and B2B tech for ITProPortal while living in South Korea. After moving back to the US. Anthony joined the TechRadar Pro team where he covered these topics along with VPNs, web hosting, online collaboration software and video conferencing for four years. Anthony also has his ears to the ground and is on the lookout for the next major cyberattack or data breach.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Based in Houston, Texas, Anthony also handles VPN testing for both Tom’s Guide and TechRadar. As someone who has worked from home exclusively since 2018, he has reviewed dozens of standing desks as well as office chairs and has taken a closer look at other essential remote working accessories. As part of these reviews, Anthony frequently builds intricate desk setups which is why he’s such a big advocate for cable management and keeping things organized. When he’s not writing, he can be found tinkering with PCs and game consoles, managing cables and making upgrades to his smart home.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/EdSGZrcAASZCrzbMZdaWYi-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A person using the TCL NXTPAPER 11 Plus inside IKEA on a bright sunny day]]></media:description>                                                            <media:text><![CDATA[A person using the TCL NXTPAPER 11 Plus inside IKEA on a bright sunny day]]></media:text>
                                <media:title type="plain"><![CDATA[A person using the TCL NXTPAPER 11 Plus inside IKEA on a bright sunny day]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/EdSGZrcAASZCrzbMZdaWYi-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It’s not every day I’m walking through a mall and end up stopping in my tracks to play with a tablet, but that’s exactly what happened last summer in Taiwan.</p><p>After a week of checking out the latest gadgets at <a href="https://www.tomsguide.com/computing/best-of-computex-2025-the-top-15-gadgets-of-the-worlds-biggest-computing-show">Computex</a>, I headed to Taipei’s legendary electronics market, <a href="https://www.tomsguide.com/video/OgRcRb3T/what-can-50-buy-at-taiwan-039-s-craziest-tech-mall">Guang Hua Digital Plaza</a> for some last-minute sightseeing. While I usually prefer smaller tablets like the <a href="https://www.tomsguide.com/tablets/i-spent-two-weeks-with-the-ipad-mini-7-and-it-reignited-my-love-for-smaller-tablets">iPad mini</a> or the <a href="https://www.tomsguide.com/computing/tablets/i-thought-the-ipad-mini-was-the-perfect-small-tablet-until-i-tried-the-lenovo-legion-tab-3-heres-why">Lenovo Legion Tab 3</a>, the TCL NXTPAPER 14 immediately stood out. Maybe it was the massive 14.3-inch screen or the chance to finally see and feel TCL’s innovative <a href="https://www.tomsguide.com/phones/android-phones/im-fascinated-by-tcls-new-e-reader-style-screen-for-smartphones">NXTPAPER</a> tech in person, but I was hooked.</p><p>Late last year, TCL sent over that same tablet along with its smaller, more powerful NXTPAPER 11 Plus and even a smartphone with the same paper-like display for me to test out at home. While its larger sibling hooked me initially, the NXTPAPER 11 Plus quickly became my go-to device. Its 11.5-inch screen makes it easy to slip into a bag and it’s also the perfect size for reading.</p><p>Unlike with other tablets I’ve tried in the past, I didn’t feel compelled to put a screen protector on this one and I’m glad I didn’t, as doing so would ruin my favorite thing about it: the paper-like feel of its matte display. I also didn’t have to worry about finding a case for the NXTPAPER 11 Plus since TCL includes one in the box along with a fully equipped stylus.</p><p>Here’s what it’s been like using TCL’s NXTPAPER tech for the past two months and why the NXTPAPER 11 Plus is easily one of the <a href="https://www.tomsguide.com/best-picks/best-tablet">best tablets</a> on a budget, especially if you’ve flirted with the idea of picking up a <a href="https://www.tomsguide.com/tablets/remarkable-paper-pro">reMarkable Paper Pro</a> over a standard Android tablet.</p><div class="product"><a data-dimension112="4c28c854-7067-4a1b-b1ec-e0eeee043c54" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$269.00" href="https://www.amazon.com/TCL-NXTPAPER-Android-Notebook-Included/dp/B0FLJMFNR7" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1376px;"><p class="vanilla-image-block" style="padding-top:86.70%;"><img id="2rmQkEzhXCeVzcYeLEFNn9" name="NXTPAPER 11 Plus" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/2rmQkEzhXCeVzcYeLEFNn9.jpg" mos="" align="middle" fullscreen="" width="1376" height="1193" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>This 11.5-inch Android tablet boasts a 120Hz, 2.2K display with an 8,000 mAh battery but its TCL's NXTPAPER 4.0 tech that really makes it stand out. You get a paper-like feel when scrolling with your finger or taking notes with the included stylus. The NXTPAPER 11 Plus also comes with a carrying case.<a class="view-deal button" href="https://www.amazon.com/TCL-NXTPAPER-Android-Notebook-Included/dp/B0FLJMFNR7" target="_blank" rel="nofollow" data-dimension112="4c28c854-7067-4a1b-b1ec-e0eeee043c54" data-action="Deal Block" data-label="NXTPAPER 11 Plus" data-dimension48="NXTPAPER 11 Plus" data-dimension25="$269.00">View Deal</a></p></div><h2 id="surprisingly-equipped-right-out-of-the-box">Surprisingly equipped right out of the box</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="BDUq3Ybc4UMPhmiTwtgLEn" name="TCL NXTPAPER 11 Plus-8" alt="The TCL NXTPAPER 11 Plus unboxed on a desk" src="https://cdn.mos.cms.futurecdn.net/BDUq3Ybc4UMPhmiTwtgLEn.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>At a time when you’re lucky to get a USB-C cable in the box, I was instantly impressed by everything TCL manages to cram into the box with both the NXTPAPER 14 and the NXTPAPER 14 Plus. </p><p>Unlike with one of the <a href="https://www.tomsguide.com/best-picks/best-ipad">best iPads</a>, it can be hard finding a case or other accessories for some Android tablets. TCL takes the guesswork out with its tablets so instead of shopping for the right case, you can get right to using your new device.</p><p>I really like the included folio case for a couple of reasons. For starters, it’s magnetic and instantly turns off your tablet’s screen when closed. However, there are also plastic feet on the bottom side that, in addition to turning the case into a very sturdy stand, provide you with a place to store the included stylus.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="cbwTk6SN3SzVTCRFYKXCP6" name="TCL NXTPAPER 11 Plus-5" alt="A person using the included stylus to scroll through stories in Google Discover on the TCL NXTPAPER 11 Plus" src="https://cdn.mos.cms.futurecdn.net/cbwTk6SN3SzVTCRFYKXCP6.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I’m no digital artist by any means but I’m quite partial to having a stylus for each of my tablets. I find <a href="https://www.tomsguide.com/opinion/i-finally-got-the-right-stylus-for-my-chromebook-and-its-a-game-changer">using a stylus</a> makes it a lot easier to scroll through the news each morning without accidentally opening stories I wasn’t planning on reading. The same goes for poking around a device’s settings menu and quickly making changes like not having new apps added to my home screen for instance.</p><p>I also really like how this is an active stylus that’s pre-paired with the NXTPAPER 11 Plus. After powering it on, I was able to start using it right away and surprisingly, I haven’t even had to charge it yet, though it does get up to 100 hours of use on a single charge. There are also two up and down keys on the stylus that you can program to do things like instantly take you back to the home screen or open TCL’s Sidebar. </p><p>Speaking of which, the Sidebar is a collection of customizable shortcuts that you can access by swiping with your finger (or the stylus) to go back and holding it there for an extra second or so. You can add actions like taking a screenshot as well as shortcuts to your favorite apps. I found this feature to be both pretty clever and well implemented.</p><p>The included case and stylus are useful extras but it’s the display itself and TCL’s proprietary screen technology that kept me going back to the NXTPAPER 11 Plus again and again.</p><h2 id="an-almost-instant-transformation">An almost instant transformation</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="P5NBEn6vUrPhkjceJqzK9B" name="TCL NXTPAPER 11 Plus-7" alt="A close up shot of the NXTPAPER Key on the TCL NXTPAPER 11 Plus" src="https://cdn.mos.cms.futurecdn.net/P5NBEn6vUrPhkjceJqzK9B.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The NXTPAPER 11 Plus has your standard USB-C port on the side as well as a power button and volume rocker up top. However, across from those two buttons is the device's namesake NXTPAPER Key. This is where the device’s magic happens and on this newer tablet, it’s also equipped with a backlight that you can turn on or off. When enabled, the light “breathes,” perhaps to help you remember that a total display transformation is just a button press away.</p><p>The NXTPAPER Key is also customizable and you can choose what a single press, double press and long press does. By default, a single press lets you switch between its three different modes: <strong>Regular Mode</strong>, <strong>Color Paper Mode</strong> and <strong>Ink Paper Mode</strong>. The animation that accompanies this switch is pretty neat too, especially when going from the black and white Ink Paper Mode back to the full color Regular Mode and vice versa.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LWctSqyEtM7KRX7aiBferE" name="TCL NXTPAPER 11 Plus-6" alt="The TCL NXTPAPER 11 Plus in Ink Paper Mode on a desk" src="https://cdn.mos.cms.futurecdn.net/LWctSqyEtM7KRX7aiBferE.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>After <a href="https://www.tomsguide.com/us/best-e-readers,review-2766.html">owning a Kindle</a> for years now to read ebooks, I was really taken aback by how closely TCL’s NXTPAPER is able to mimic ePaper even though it uses an LCD display. This gives you the best of both worlds since you have that easier to read black and white look but with the much faster refresh rates of LCD over ePaper.</p><p>My favorite part of using either of the non-standard NXTPAPER modes though is that your entire device along with all of the apps you use are instantly transformed. Whether I was scrolling through Google News or browsing Reddit, everything – including pictures – was either in black and white Ink Paper or Color Paper. </p><p>There are plenty of health benefits like reduced eye strain and less blue light when using a tablet equipped with TCL’s NXTPAPER, but I found the matte display — technically nano-matrix lithography etching — was the most useful for me day to day as someone that can’t stand the glare of a glossy display, especially when taking pictures.</p><h2 id="glare-free-versatility">Glare-free versatility</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="6cxTjqkqUxpJzh3kD8guML" name="TCL NXTPAPER 11 Plus-3" alt="The TCL NXTPAPER 11 Plus on a table outside on a sunny day showing off how capable its matte display is" src="https://cdn.mos.cms.futurecdn.net/6cxTjqkqUxpJzh3kD8guML.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Although most of my time testing the NXTPAPER 11 Plus was spent in the comfort of my own home, I decided to bring the tablet with me to a doctor’s appointment followed by <a href="https://www.tomsguide.com/home/home-office/5-ikea-accessories-id-pick-up-for-my-home-office-and-theyre-all-under-usd30">a trip to IKEA</a> to see how it handled the real world. </p><p>Right from the get-go, I was impressed by how usable it remained even in direct sunlight. Most tablets struggle in this situation, but thanks to that matte display, I wasn’t squinting just to make out what was on the screen.</p><p>Even outside on a table, the NXTPAPER 11 Plus was just as functional in the great outdoors as it was at home. This is the kind of device you can comfortably use while sitting in the grass — say, on a college campus — and since the case has a built-in stand, you really don't need to pack anything else.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="raSM43X3VGi2Z9k6dixAxQ" name="TCL NXTPAPER 11 Plus-2" alt="A person reading an eBook on the TCL NXTPAPER 11 Plus at IKEA" src="https://cdn.mos.cms.futurecdn.net/raSM43X3VGi2Z9k6dixAxQ.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Once my appointment was over, I headed to IKEA and, after polishing off some Swedish meatballs, I spent a few minutes using the tablet in the food court. At first glance, you might think I was just reading an ebook on a normal tablet. However, I actually had Ink Paper Mode enabled, which really made the text pop. Since the display isn’t working as hard to render a full spectrum of colors in this mode, switching to black and white is a clever way to stretch its already impressive 8,000 mAh battery even further during long days out.</p><p>Then, when it was time to check out IKEA’s new smart home accessories — namely its <a href="https://www.tomsguide.com/home/smart-home/ikea-just-announced-21-smart-home-gadgets-heres-the-ones-im-buying">Matter-equipped buttons</a> — I just closed the folio case and slid the tablet back into my backpack, knowing it would be perfectly safe without an extra sleeve.</p><p>Although the NXTPAPER 14 wowed me initially, I’ve found that 11.5 inches is the perfect middle ground for both portability and screen real estate. It’s a large enough screen to multitask with two apps side-by-side, yet in portrait mode, it’s ideal for reading both books and news articles.</p><p>Since this tablet is only $370 full price and is often found for under $300 on sale, it’s the kind of device you can take everywhere without constant worry. If I were using an <a href="https://www.tomsguide.com/tablets/ipads/ill-only-read-comics-on-an-ipad-pro-oled-from-now-on-heres-why">iPad Pro</a> or a premium Samsung tablet, I might be tempted to leave it at home to keep it safe. With the NXTPAPER 11 Plus, however, I wouldn’t think twice before throwing it in my bag for a weekend trip or a long flight.</p><h2 id="consider-me-in-matte-uated">Consider me in-matte-uated</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8ub6waqHVABVdMPSrbbDhZ" name="TCL NXTPAPER 11 Plus-4" alt="The TCL NXTPAPER 50 XE, the TCL NXTPAPER 11 Plus and the TCL NXTPAPER 14 side by side on a desk with each device showing a different display mode of TCL's NXTPAPER tech" src="https://cdn.mos.cms.futurecdn.net/8ub6waqHVABVdMPSrbbDhZ.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I have to admit, what initially enticed me about TCL’s NXTPAPER was how photogenic this display tech is. As part of my job, I often have to snap pics of a particular app or service running on a smartphone or tablet. While direct sunlight pretty much always looks great in photos, glare absolutely doesn’t. Back at that mall in Taipei, I wondered what it would be like having a device I could easily photograph even in less than ideal conditions and those few quick pics I took in IKEA prove that TCL’s NXTPAPER is perfect for this.</p><p>Glare-free photos did draw me in at first, but I wasn’t expecting to love the way a matte touchscreen felt on my fingertips. That little bit of resistance you get from a non-glossy screen really makes simple actions like swiping or scrolling feel a whole lot more premium. Add to this how I can instantly switch between full color or black and white system-wide while still running what is essentially stock Android, and I couldn’t be happier with both of the tablets and the smartphone TCL sent over.</p><p>After getting a taste of the all-matte life with these devices, I found myself wondering if TCL would ever bring its NXTPAPER tech to one of the <a href="https://www.tomsguide.com/best-picks/best-monitors">best monitors</a> or even one of the company’s TVs. Swiping my finger up and down or even using the included stylus felt entirely different than it normally does. Not because TCL is also partial to matte screens, but because a display like that is required for the company's NXTPAPER to work its magic.</p><p>I don’t plan on putting down the NXTPAPER 11 Plus anytime soon, but the jury is still out on whether or not I’d be willing to switch to one of TCL’s smartphones to have this same premium-feeling sensation whenever I take my phone out of my pocket. I guess only time will tell.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tablets/android-tablets/i-replaced-my-work-laptop-with-the-biggest-android-tablet-you-can-get-3-lessons-i-learned">I replaced my work laptop with the biggest Android tablet you can get — here's what happened</a></li><li><a href="https://www.tomsguide.com/opinion/i-tried-3-different-styluses-with-the-pixel-tablet-and-this-is-the-one-id-buy">The Pixel Tablet is even better with a stylus and I found the best one</a></li><li><a href="https://www.tomsguide.com/gaming/i-built-the-ultimate-remote-play-setup-with-wi-fi-7-to-say-goodbye-to-stuttery-gameplay-for-good-heres-how">I got tired of having a bad remote play experience so I used Wi-Fi 7 and this powerful gaming tablet to fix it for good</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ TCL and Sony are joining forces to sell more TVs — but is that bad news for shoppers? ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Earlier this week, news broke that rocked the TV industry. Sony is spinning out its TV business and TCL  — once a major competitor — will take on a 51% interest in the new company. The details of the deal are still being worked out, with the company eyeing April 2027 as its target operational date.</p><p>The <a href="https://www.tomsguide.com/tvs/sony-just-handed-its-tv-business-to-tcl-heres-what-it-means-for-you">Sony and TCL news</a> comes at a time when competition in the TV industry is heating up. Both brands (as well as Hisense, LG and Samsung) are on the cusp of launching RGB LED TVs that are among the first of their kind. Separately, they’re the makers of some of the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TVs</a> you can buy — but for mostly different reasons.</p><p>While all TV-makers share the goal of selling TVs, they operate with different philosophies. These differences between Sony and TCL are apparent in their hardware, software, pricing — the sum of their strengths and weaknesses. The question now is this: With a majority of the stake, will TCL squeeze the “Sony” out of Sony TVs?</p><h2 id="a-tale-of-two-tv-makers">A tale of two TV-makers</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3008px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LpifwEvPHLE3gisyuowv4d" name="Setting 2 BRAVIA family-FNL" alt="The Sony 2025 lineup of TVs and soundbars" src="https://cdn.mos.cms.futurecdn.net/LpifwEvPHLE3gisyuowv4d.jpg" mos="" align="middle" fullscreen="" width="3008" height="1692" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony)</span></figcaption></figure><p>Sony’s primary Bravia TV lineup is typically composed of an array of finely designed, thoughtfully engineered TVs. Even lower-end Sony TVs that make use of simplistic display hardware often make up for their expected, performance-related shortcomings with excellent picture processing.</p><p>The brand’s higher-end TVs — like the incredible <a href="https://www.tomsguide.com/tvs/sony-bravia-9-tv-review">Sony Bravia 9</a> — blend this savvy attention to detail with premium hardware, like Mini-LEDs and OLED displays. Mid-range offerings split the difference in performance, but like the company’s entry-level and flagship models, mid-range Sony TVs also deliver superb picture processing and a ton of software-based features.</p><div class="product"><a data-dimension112="d2a9e917-aee4-4f7e-aa82-7fd9ac8b7779" data-action="Deal Block" data-label="65" Bravia 9 4K Mini-LED TV" data-dimension48="65" Bravia 9 4K Mini-LED TV" data-dimension25="$1999" href="https://www.bestbuy.com/product/sony-65-class-bravia-9-mini-led-qled-4k-uhd-smart-google-tv-2024/J7XSRH59ZQ" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1316px;"><p class="vanilla-image-block" style="padding-top:57.75%;"><img id="Bg7zJh6YEyTuEiBpGX3e6H" name="6578575_sd.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/Bg7zJh6YEyTuEiBpGX3e6H.jpg" mos="" align="middle" fullscreen="" width="1316" height="760" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/sony-65-class-bravia-9-mini-led-qled-4k-uhd-smart-google-tv-2024/J7XSRH59ZQ" target="_blank" rel="nofollow" data-dimension112="d2a9e917-aee4-4f7e-aa82-7fd9ac8b7779" data-action="Deal Block" data-label='65" Bravia 9 4K Mini-LED TV' data-dimension48='65" Bravia 9 4K Mini-LED TV' data-dimension25="$1999">65" Bravia 9 4K Mini-LED TV: was $2999 now $1999</a></strong><br>Sony's superb Bravia 9 is one of the best Mini-LEDs I've ever laid eyes on, and right now, the 65-inch version is $1,000 off just in time for the Super Bowl. The brand's attention to detail is on full display, as the Bravia 9 offers exceptional brightness and contrast control in addition to Sony's lauded picture processing.<a class="view-deal button" href="https://www.bestbuy.com/product/sony-65-class-bravia-9-mini-led-qled-4k-uhd-smart-google-tv-2024/J7XSRH59ZQ" target="_blank" rel="nofollow" data-dimension112="d2a9e917-aee4-4f7e-aa82-7fd9ac8b7779" data-action="Deal Block" data-label="65" Bravia 9 4K Mini-LED TV" data-dimension48="65" Bravia 9 4K Mini-LED TV" data-dimension25="$1999">View Deal</a></p></div><p>But an excellent attention to detail, a long list of enhancements and thoughtful engineering isn’t the only constant across Sony’s main TV lineup. These TVs are priced higher than just about everything else in their respective class, something that has historically saddled Sony with a pricey reputation.</p><h2 id="how-will-tcl-affect-the-sony-tax">How will TCL affect the 'Sony tax'?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MdvZKk33HCGnW2cTzqHUHc" name="TCL X11 SQD Mini-LED TV" alt="TCL X11 SQD Mini-LED TV" src="https://cdn.mos.cms.futurecdn.net/MdvZKk33HCGnW2cTzqHUHc.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>TCL is the maker of some of the most value-forward Mini-LED TVs on the market. From a performance and price standpoint, its mid-range Mini-LED TVs in particular are fiercely competitive — they frequently deliver a terrific performance-to-cost ratio.</p><p>The brand’s top-shelf TVs are nothing to sneeze at, either. The recently released <a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review">TCL QM8K</a> is one of the brightest Mini-LED TVs we’ve ever tested, and in 2026, the company is launching the <a href="https://www.tomsguide.com/tvs/i-went-hands-on-with-tcls-first-sqd-mini-led-tv-and-it-made-me-forget-about-rgb-tvs">X11L SQD Mini-LED TV</a>, the only TV to leverage something TCL is calling Super Quantum Dot technology.</p><div><blockquote><p>TCL is the maker of some of the most value-forward Mini-LED TVs on the market.</p></blockquote></div><p>Crucially, TCL’s main TV lineup is chock full of sets that are cheaper than their Sony-branded counterparts. The 65-inch version of the QM8K — which is, for all intents and purposes, a direct competitor of the Sony Bravia 9  — is currently about $1,000 less than its rival.</p><p>In this TV expert’s opinion, however, the Bravia 9 offers better picture processing (and overall performance) than TCL’s most recent flagship. The QM8K doesn’t come with as many customizable settings, nor do I find its overall design as pleasing as the Bravia 9’s, either.</p><p>I’m sure you can see where I’m going with this. When the time comes — likely in 2027 — for the first batch of Sony and TCL TVs to hit shelves, will there be room for <em>both</em> Sony's attention to detail and TCL's competitive pricing?</p><h2 id="there-are-only-so-many-ways-this-can-go">There are only so many ways this can go</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xZWwdnviyP6Np78X9TiVpn" name="QM8K_Lifestyle-2" alt="TCL QM8K Mini-LED TV" src="https://cdn.mos.cms.futurecdn.net/xZWwdnviyP6Np78X9TiVpn.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>One way this could play out is that Sony’s Bravia branding is eventually tied to this joint company’s top-of-the-line models. TCL-branded models, meanwhile, could continue to compete with the more budget-friendly TVs from Hisense, Roku and Amazon.</p><p>In this scenario, I imagine that everything a Sony Bravia TV has come to represent — the exacting processing, the premium hardware and the professional-grade calibration — would be reserved for high-end sets.</p><p>That said, it would be massively disappointing (and ultimately bad for shoppers) if TCL’s 51% interest in this joint company eventually results in the flattening-out of Sony’s identity.</p><div><blockquote><p>Sony TVs are my go-to recommendation for A/V enthusiasts.</p></blockquote></div><p>Sony TVs may be pricier than their competitors, but they’re also my go-to recommendation for A/V enthusiasts and folks building dedicated home theaters. They’re the brand that prioritizes reference accuracy above all else, and the TV-maker that shoves the most amount of picture- and audio-related settings into their TVs. (Seriously, though — have you seen the amount of options in a Sony TV?)</p><p>We've a long way to go before we have a clearer understanding of the joint company's business strategy in the coming years. My hope is that there's room for both of these brand identities to exist alongside one another, with TCL's panel-manufacturing capabilities ultimately leading to more affordable TVs across the board.</p><p>One thing is certain: New TVs from both of these brands are on their way in 2026, and it's likely the last time they'll compete with one another.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Ww3g9W"></div>                            </div>                            <script src="https://kwizly.com/embed/Ww3g9W.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/sony-true-rgb-tvs-explained-and-why-its-newest-tv-tech-could-be-an-oled-killer">Sony 'True RGB' TVs are coming — and they could be an OLED-killer</a></li><li><a href="https://www.tomsguide.com/tvs/4k-tvs/tvs-are-getting-more-expensive-in-2026-but-its-not-because-of-improvements-in-picture-quality">TVs are getting more expensive in 2026 — but it's not because of improvements in picture quality</a></li><li><a href="https://www.tomsguide.com/tvs/tcl-tv-lineup-2026-new-sqd-mini-led-enhancement-mini-led-tvs-and-an-rgb-mini-led-tv">TCL TV lineup 2026: new SQD Mini-LED enhancement, Mini-LED TVs, and an RGB Mini-LED TV</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/tcl-and-sony-are-joining-forces-to-sell-more-tvs-but-is-that-bad-news-for-shoppers</link>
                                                                            <description>
                            <![CDATA[ Now that Sony and TCL have announced a joint TV business, will one brand identity win out over the other? ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">bCsDcSrDDkyCW5Wif9s3XE</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/DeHDFdvSEHvZigN47gprvR-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 23 Jan 2026 06:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/DeHDFdvSEHvZigN47gprvR-1280-80.jpg">
                                                            <media:credit><![CDATA[Sony]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Sony Bravia 8 II]]></media:description>                                                            <media:text><![CDATA[Sony Bravia 8 II]]></media:text>
                                <media:title type="plain"><![CDATA[Sony Bravia 8 II]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/DeHDFdvSEHvZigN47gprvR-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Earlier this week, news broke that rocked the TV industry. Sony is spinning out its TV business and TCL  — once a major competitor — will take on a 51% interest in the new company. The details of the deal are still being worked out, with the company eyeing April 2027 as its target operational date.</p><p>The <a href="https://www.tomsguide.com/tvs/sony-just-handed-its-tv-business-to-tcl-heres-what-it-means-for-you">Sony and TCL news</a> comes at a time when competition in the TV industry is heating up. Both brands (as well as Hisense, LG and Samsung) are on the cusp of launching RGB LED TVs that are among the first of their kind. Separately, they’re the makers of some of the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TVs</a> you can buy — but for mostly different reasons.</p><p>While all TV-makers share the goal of selling TVs, they operate with different philosophies. These differences between Sony and TCL are apparent in their hardware, software, pricing — the sum of their strengths and weaknesses. The question now is this: With a majority of the stake, will TCL squeeze the “Sony” out of Sony TVs?</p><h2 id="a-tale-of-two-tv-makers">A tale of two TV-makers</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3008px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LpifwEvPHLE3gisyuowv4d" name="Setting 2 BRAVIA family-FNL" alt="The Sony 2025 lineup of TVs and soundbars" src="https://cdn.mos.cms.futurecdn.net/LpifwEvPHLE3gisyuowv4d.jpg" mos="" align="middle" fullscreen="" width="3008" height="1692" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony)</span></figcaption></figure><p>Sony’s primary Bravia TV lineup is typically composed of an array of finely designed, thoughtfully engineered TVs. Even lower-end Sony TVs that make use of simplistic display hardware often make up for their expected, performance-related shortcomings with excellent picture processing.</p><p>The brand’s higher-end TVs — like the incredible <a href="https://www.tomsguide.com/tvs/sony-bravia-9-tv-review">Sony Bravia 9</a> — blend this savvy attention to detail with premium hardware, like Mini-LEDs and OLED displays. Mid-range offerings split the difference in performance, but like the company’s entry-level and flagship models, mid-range Sony TVs also deliver superb picture processing and a ton of software-based features.</p><div class="product"><a data-dimension112="d2a9e917-aee4-4f7e-aa82-7fd9ac8b7779" data-action="Deal Block" data-label="65" Bravia 9 4K Mini-LED TV" data-dimension48="65" Bravia 9 4K Mini-LED TV" data-dimension25="$1999" href="https://www.bestbuy.com/product/sony-65-class-bravia-9-mini-led-qled-4k-uhd-smart-google-tv-2024/J7XSRH59ZQ" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1316px;"><p class="vanilla-image-block" style="padding-top:57.75%;"><img id="Bg7zJh6YEyTuEiBpGX3e6H" name="6578575_sd.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/Bg7zJh6YEyTuEiBpGX3e6H.jpg" mos="" align="middle" fullscreen="" width="1316" height="760" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/sony-65-class-bravia-9-mini-led-qled-4k-uhd-smart-google-tv-2024/J7XSRH59ZQ" target="_blank" rel="nofollow" data-dimension112="d2a9e917-aee4-4f7e-aa82-7fd9ac8b7779" data-action="Deal Block" data-label='65" Bravia 9 4K Mini-LED TV' data-dimension48='65" Bravia 9 4K Mini-LED TV' data-dimension25="$1999">65" Bravia 9 4K Mini-LED TV: was $2999 now $1999</a></strong><br>Sony's superb Bravia 9 is one of the best Mini-LEDs I've ever laid eyes on, and right now, the 65-inch version is $1,000 off just in time for the Super Bowl. The brand's attention to detail is on full display, as the Bravia 9 offers exceptional brightness and contrast control in addition to Sony's lauded picture processing.<a class="view-deal button" href="https://www.bestbuy.com/product/sony-65-class-bravia-9-mini-led-qled-4k-uhd-smart-google-tv-2024/J7XSRH59ZQ" target="_blank" rel="nofollow" data-dimension112="d2a9e917-aee4-4f7e-aa82-7fd9ac8b7779" data-action="Deal Block" data-label="65" Bravia 9 4K Mini-LED TV" data-dimension48="65" Bravia 9 4K Mini-LED TV" data-dimension25="$1999">View Deal</a></p></div><p>But an excellent attention to detail, a long list of enhancements and thoughtful engineering isn’t the only constant across Sony’s main TV lineup. These TVs are priced higher than just about everything else in their respective class, something that has historically saddled Sony with a pricey reputation.</p><h2 id="how-will-tcl-affect-the-sony-tax">How will TCL affect the 'Sony tax'?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MdvZKk33HCGnW2cTzqHUHc" name="TCL X11 SQD Mini-LED TV" alt="TCL X11 SQD Mini-LED TV" src="https://cdn.mos.cms.futurecdn.net/MdvZKk33HCGnW2cTzqHUHc.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>TCL is the maker of some of the most value-forward Mini-LED TVs on the market. From a performance and price standpoint, its mid-range Mini-LED TVs in particular are fiercely competitive — they frequently deliver a terrific performance-to-cost ratio.</p><p>The brand’s top-shelf TVs are nothing to sneeze at, either. The recently released <a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review">TCL QM8K</a> is one of the brightest Mini-LED TVs we’ve ever tested, and in 2026, the company is launching the <a href="https://www.tomsguide.com/tvs/i-went-hands-on-with-tcls-first-sqd-mini-led-tv-and-it-made-me-forget-about-rgb-tvs">X11L SQD Mini-LED TV</a>, the only TV to leverage something TCL is calling Super Quantum Dot technology.</p><div><blockquote><p>TCL is the maker of some of the most value-forward Mini-LED TVs on the market.</p></blockquote></div><p>Crucially, TCL’s main TV lineup is chock full of sets that are cheaper than their Sony-branded counterparts. The 65-inch version of the QM8K — which is, for all intents and purposes, a direct competitor of the Sony Bravia 9  — is currently about $1,000 less than its rival.</p><p>In this TV expert’s opinion, however, the Bravia 9 offers better picture processing (and overall performance) than TCL’s most recent flagship. The QM8K doesn’t come with as many customizable settings, nor do I find its overall design as pleasing as the Bravia 9’s, either.</p><p>I’m sure you can see where I’m going with this. When the time comes — likely in 2027 — for the first batch of Sony and TCL TVs to hit shelves, will there be room for <em>both</em> Sony's attention to detail and TCL's competitive pricing?</p><h2 id="there-are-only-so-many-ways-this-can-go">There are only so many ways this can go</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xZWwdnviyP6Np78X9TiVpn" name="QM8K_Lifestyle-2" alt="TCL QM8K Mini-LED TV" src="https://cdn.mos.cms.futurecdn.net/xZWwdnviyP6Np78X9TiVpn.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>One way this could play out is that Sony’s Bravia branding is eventually tied to this joint company’s top-of-the-line models. TCL-branded models, meanwhile, could continue to compete with the more budget-friendly TVs from Hisense, Roku and Amazon.</p><p>In this scenario, I imagine that everything a Sony Bravia TV has come to represent — the exacting processing, the premium hardware and the professional-grade calibration — would be reserved for high-end sets.</p><p>That said, it would be massively disappointing (and ultimately bad for shoppers) if TCL’s 51% interest in this joint company eventually results in the flattening-out of Sony’s identity.</p><div><blockquote><p>Sony TVs are my go-to recommendation for A/V enthusiasts.</p></blockquote></div><p>Sony TVs may be pricier than their competitors, but they’re also my go-to recommendation for A/V enthusiasts and folks building dedicated home theaters. They’re the brand that prioritizes reference accuracy above all else, and the TV-maker that shoves the most amount of picture- and audio-related settings into their TVs. (Seriously, though — have you seen the amount of options in a Sony TV?)</p><p>We've a long way to go before we have a clearer understanding of the joint company's business strategy in the coming years. My hope is that there's room for both of these brand identities to exist alongside one another, with TCL's panel-manufacturing capabilities ultimately leading to more affordable TVs across the board.</p><p>One thing is certain: New TVs from both of these brands are on their way in 2026, and it's likely the last time they'll compete with one another.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Ww3g9W"></div>                            </div>                            <script src="https://kwizly.com/embed/Ww3g9W.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/sony-true-rgb-tvs-explained-and-why-its-newest-tv-tech-could-be-an-oled-killer">Sony 'True RGB' TVs are coming — and they could be an OLED-killer</a></li><li><a href="https://www.tomsguide.com/tvs/4k-tvs/tvs-are-getting-more-expensive-in-2026-but-its-not-because-of-improvements-in-picture-quality">TVs are getting more expensive in 2026 — but it's not because of improvements in picture quality</a></li><li><a href="https://www.tomsguide.com/tvs/tcl-tv-lineup-2026-new-sqd-mini-led-enhancement-mini-led-tvs-and-an-rgb-mini-led-tv">TCL TV lineup 2026: new SQD Mini-LED enhancement, Mini-LED TVs, and an RGB Mini-LED TV</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I found one of the best Super Bowl TV deals you’ll see this year — a 75-inch Mini-LED screen for just $599 ]]></title>
                                                                                                <dc:content><![CDATA[ <p>If you’ve been toying with the idea of upgrading to a bigger screen ahead of the Super Bowl, you won’t hear me trying to talk you out of it. That’s because the slice of time between the holidays and spring is a great time to find TV sales. Brands are gearing up to launch their latest models, but until they arrive, many of their best sets are deeply discounted.</p><p>Case in point: The <a href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow">75-inch TCL QM5K fell to just $599 at Best Buy</a>. It was already one of the most affordable Mini-LED TVs on shelves ahead of this 50% price drop, but now it’s one of the best deals around on a 75-inch TV. It's a Best Buy exclusive, so you won't see it anywhere else.</p><div class="product"><a data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label="75" QM5K Mini-LED TV" data-dimension48="75" QM5K Mini-LED TV" data-dimension25="$599" href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="rRdoCj55QhqPM9wqYhpprE" name="TCL-QM5K-Mini-LED-TV-1-by-1-Deals-Block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/rRdoCj55QhqPM9wqYhpprE.jpg" mos="" align="middle" fullscreen="" width="2000" height="2000" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow" data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label='75" QM5K Mini-LED TV' data-dimension48='75" QM5K Mini-LED TV' data-dimension25="$599">75" QM5K Mini-LED TV: was $1199 now $599</a></strong><br>The QM5K arrives with built-in Google TV features for all of your streaming needs, plus Dolby Vision support. Its handiest feature is its Mini-LED backlighting, which is tough to find at this price point. If you're going to shop in this price range, I recommend going with the QM5K over a super-cheap TV from a brand like Insignia or Onn.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow" data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label="75" QM5K Mini-LED TV" data-dimension48="75" QM5K Mini-LED TV" data-dimension25="$599">View Deal</a></p></div><p>While the QM5K isn’t one of the best-performing 75-inch TVs on shelves, it comes with one key feature that sets it apart from ultra-cheap 75-inch TVs: Mini-LED backlighting.</p><p>The QM5K leverages a more modest array of Mini-LEDs relative to higher-end TVs, but trust me: This is a feature you definitely want, especially at this extra-large screen size. This type of backlighting typically results in better contrast when compared to TVs that tap garden-variety, edge-lit panels. (Though I’d still hesitate to recommend the QM5K to folks with sun-soaked living rooms.)</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="vCnRGsdCB3mnCFg3YgsEfh" name="TCL-QM5K-Mini-LED-TV-Google-TV-Home-Screen" alt="The TCL QM5K Mini-LED TV displaying the Google TV home screen" src="https://cdn.mos.cms.futurecdn.net/vCnRGsdCB3mnCFg3YgsEfh.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>It’s worth noting that the QM5K is outfitted with just three HDMI inputs — one fewer than what most TVs offer. Fortunately, the QM5K comes with Google TV built right in, and the software is good enough for daily use. The interface is easy to navigate, and the app support is robust.</p><p>If you’re looking to prioritize screen size over performance ahead of the Super Bowl, but you still want to avoid buying a TV that scrapes the bottom of the barrel, the QM5K is currently one of the best options available.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5rAnO"></div>                            </div>                            <script src="https://kwizly.com/embed/W5rAnO.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/sony-just-handed-its-tv-business-to-tcl-heres-what-it-means-for-you">Sony just handed its TV business to TCL — here’s what it means for you</a></li><li><a href="https://www.tomsguide.com/tvs/tcl-tv-lineup-2026-new-sqd-mini-led-enhancement-mini-led-tvs-and-an-rgb-mini-led-tv">TCL TV lineup 2026: new SQD Mini-LED enhancement, Mini-LED TVs, and an RGB Mini-LED TV</a></li><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-finally-added-this-key-feature-to-its-2025-tvs-heres-why-you-should-use-it">TCL finally added this key feature to its 2025 TVs — here's why you should use it</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/qled-tvs/i-found-one-of-the-best-super-bowl-tv-deals-youll-see-this-year-a-75-inch-mini-led-screen-for-just-usd599</link>
                                                                            <description>
                            <![CDATA[ Looking for one of the best Super Bowl TV deals? This 75-inch Mini-LED TV is on sale today for just $599. It's one of the best big-screen TV deals right now. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">5Bmvp2TAuUfP3cHVQ2oPNL</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/jCHNQaVVmWKnQxqh5C7UUV-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 21 Jan 2026 19:54:39 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[QLED TVs]]></category>
                                                    <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/jCHNQaVVmWKnQxqh5C7UUV-1280-80.jpg">
                                                            <media:credit><![CDATA[TCL]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The TCL QM5K Mini-LED TV displaying an NFL player in front of a colorful background. To the right of the TV is a blue badge that reads: Tom&#039;s Guide Price Drop]]></media:description>                                                            <media:text><![CDATA[The TCL QM5K Mini-LED TV displaying an NFL player in front of a colorful background. To the right of the TV is a blue badge that reads: Tom&#039;s Guide Price Drop]]></media:text>
                                <media:title type="plain"><![CDATA[The TCL QM5K Mini-LED TV displaying an NFL player in front of a colorful background. To the right of the TV is a blue badge that reads: Tom&#039;s Guide Price Drop]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/jCHNQaVVmWKnQxqh5C7UUV-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If you’ve been toying with the idea of upgrading to a bigger screen ahead of the Super Bowl, you won’t hear me trying to talk you out of it. That’s because the slice of time between the holidays and spring is a great time to find TV sales. Brands are gearing up to launch their latest models, but until they arrive, many of their best sets are deeply discounted.</p><p>Case in point: The <a href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow">75-inch TCL QM5K fell to just $599 at Best Buy</a>. It was already one of the most affordable Mini-LED TVs on shelves ahead of this 50% price drop, but now it’s one of the best deals around on a 75-inch TV. It's a Best Buy exclusive, so you won't see it anywhere else.</p><div class="product"><a data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label="75" QM5K Mini-LED TV" data-dimension48="75" QM5K Mini-LED TV" data-dimension25="$599" href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="rRdoCj55QhqPM9wqYhpprE" name="TCL-QM5K-Mini-LED-TV-1-by-1-Deals-Block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/rRdoCj55QhqPM9wqYhpprE.jpg" mos="" align="middle" fullscreen="" width="2000" height="2000" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow" data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label='75" QM5K Mini-LED TV' data-dimension48='75" QM5K Mini-LED TV' data-dimension25="$599">75" QM5K Mini-LED TV: was $1199 now $599</a></strong><br>The QM5K arrives with built-in Google TV features for all of your streaming needs, plus Dolby Vision support. Its handiest feature is its Mini-LED backlighting, which is tough to find at this price point. If you're going to shop in this price range, I recommend going with the QM5K over a super-cheap TV from a brand like Insignia or Onn.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow" data-dimension112="aee914a2-66de-4db2-84c2-4d38915279c6" data-action="Deal Block" data-label="75" QM5K Mini-LED TV" data-dimension48="75" QM5K Mini-LED TV" data-dimension25="$599">View Deal</a></p></div><p>While the QM5K isn’t one of the best-performing 75-inch TVs on shelves, it comes with one key feature that sets it apart from ultra-cheap 75-inch TVs: Mini-LED backlighting.</p><p>The QM5K leverages a more modest array of Mini-LEDs relative to higher-end TVs, but trust me: This is a feature you definitely want, especially at this extra-large screen size. This type of backlighting typically results in better contrast when compared to TVs that tap garden-variety, edge-lit panels. (Though I’d still hesitate to recommend the QM5K to folks with sun-soaked living rooms.)</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="vCnRGsdCB3mnCFg3YgsEfh" name="TCL-QM5K-Mini-LED-TV-Google-TV-Home-Screen" alt="The TCL QM5K Mini-LED TV displaying the Google TV home screen" src="https://cdn.mos.cms.futurecdn.net/vCnRGsdCB3mnCFg3YgsEfh.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>It’s worth noting that the QM5K is outfitted with just three HDMI inputs — one fewer than what most TVs offer. Fortunately, the QM5K comes with Google TV built right in, and the software is good enough for daily use. The interface is easy to navigate, and the app support is robust.</p><p>If you’re looking to prioritize screen size over performance ahead of the Super Bowl, but you still want to avoid buying a TV that scrapes the bottom of the barrel, the QM5K is currently one of the best options available.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5rAnO"></div>                            </div>                            <script src="https://kwizly.com/embed/W5rAnO.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/sony-just-handed-its-tv-business-to-tcl-heres-what-it-means-for-you">Sony just handed its TV business to TCL — here’s what it means for you</a></li><li><a href="https://www.tomsguide.com/tvs/tcl-tv-lineup-2026-new-sqd-mini-led-enhancement-mini-led-tvs-and-an-rgb-mini-led-tv">TCL TV lineup 2026: new SQD Mini-LED enhancement, Mini-LED TVs, and an RGB Mini-LED TV</a></li><li><a href="https://www.tomsguide.com/tvs/qled-tvs/tcl-finally-added-this-key-feature-to-its-2025-tvs-heres-why-you-should-use-it">TCL finally added this key feature to its 2025 TVs — here's why you should use it</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ These are my 5 favorite 75-inch TVs under $1,000 ahead of the NFL playoffs ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The holiday season is behind us, and while you might think that TV discounts have dried up along with the needles on a Christmas tree, there are still plenty of savings to be had on some affordable sets that are actually worth buying.</p><p>If you’re looking to upgrade to a big screen ahead of the NFL postseason, I’ve got good news: Five of my favorite budget-friendly TVs are available in 75-inch options for under $1,000.</p><p>There are three elements that make these 75-inch sets worth buying:  dependable hardware, useful features and, of course, a price tag that won't make you throw a yellow flag on the play. (For more discounts, check out our roundup of today's best <a href="https://www.tomsguide.com/us/best-tv-deals,news-26008.html">TV deals</a>). </p><h2 id="1-samsung-q7f">1. Samsung Q7F</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="qriFw6fj3uGnPST9ywUHMM" name="Samsung-Q7F-QLED-TV" alt="The Samsung Q7F QLED TV" src="https://cdn.mos.cms.futurecdn.net/qriFw6fj3uGnPST9ywUHMM.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Samsung)</span></figcaption></figure><p>Samsung's entry-level QLED TV for 2025 doesn't deliver the contrast and color brightness you'll find on some of the Mini-LED options listed below, but the 75-inch version is worth spotlighting for folks who are dead-set on shopping for an affordable, Samsung-branded TV.</p><p>The 75-inch Q7F comes with some essential streaming features and  decent out-of-the-box performance (though I recommend that picture purists take a gander at some of the Mini-LED TVs on this list before committing to the Q7F).</p><p>I'm still in the process of reviewing the Q7F formally, but I <em>can</em> confirm that its accurate picture and basic, direct-LED display is a notch above what you'll find on bottom-of-the-barrel sets. That makes it worth a look if you're trying to save as much money as possible, and it's an especially noteworthy option for football fans shopping for a Samsung TV.</p><div class="product"><a data-dimension112="2e7760a4-4a63-4824-adaf-6e15444c005b" data-action="Deal Block" data-label="75” Q7F 4K QLED TV" data-dimension48="75” Q7F 4K QLED TV" data-dimension25="$697" href="https://www.amazon.com/Samsung-75-Inch-Tracking-Processor-upscaling/dp/B0DXMT5L8D" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="9hLjpsVtitBw9GpBx9KAgT" name="Samsung-Q7F-QLED-TV-16-by-9-deal-block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/9hLjpsVtitBw9GpBx9KAgT.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Samsung-75-Inch-Tracking-Processor-upscaling/dp/B0DXMT5L8D" target="_blank" rel="nofollow" data-dimension112="2e7760a4-4a63-4824-adaf-6e15444c005b" data-action="Deal Block" data-label="75” Q7F 4K QLED TV" data-dimension48="75” Q7F 4K QLED TV" data-dimension25="$697">75” Q7F 4K QLED TV: $697</a></strong><br>Samsung's entry-level QLED TV improves upon its predecessors from previous years with a direct-LED display rather than a garden-variety, edge-lit panel. This means it has better overall contrast than previous Samsung QLEDs at this price range. I still recommend one of the Mini-LED TVs on this list over the Q7F, but if the name of the game is "Save Money," this one might be the ticket.<a class="view-deal button" href="https://www.amazon.com/Samsung-75-Inch-Tracking-Processor-upscaling/dp/B0DXMT5L8D" target="_blank" rel="nofollow" data-dimension112="2e7760a4-4a63-4824-adaf-6e15444c005b" data-action="Deal Block" data-label="75” Q7F 4K QLED TV" data-dimension48="75” Q7F 4K QLED TV" data-dimension25="$697">View Deal</a></p></div><h2 id="2-tcl-qm5k-2">2. TCL QM5K</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="vCnRGsdCB3mnCFg3YgsEfh" name="TCL-QM5K-Mini-LED-TV-Google-TV-Home-Screen" alt="The TCL QM5K Mini-LED TV displaying the Google TV home screen" src="https://cdn.mos.cms.futurecdn.net/vCnRGsdCB3mnCFg3YgsEfh.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>The TCL QM5K is one of the cheapest Mini-LED TVs that debuted in 2025, and it’s a great fit for football fans who want to save money but would rather not scrape the bottom of the barrel for an ultra-cheap TV that won't look good on game day.</p><p>Most cheap TVs at or around the QM5K's low price point don't come with smaller, brighter Mini-LEDs, opting instead for garden-variety LEDs. This is the biggest difference between the QM5K and the aforementioned Samsung Q7F.</p><p>It's worth highlighting that the QM5K features three HDMI inputs rather than the usual four, but thankfully, the inclusion of Google TV somewhat makes up for its missing port. Google TV is one of my preferred smart platforms due to its easy-to-navigate interface and it's huge library of downloadable apps.</p><div class="product"><a data-dimension112="c3840c64-9ce8-4435-85a3-000c15073102" data-action="Deal Block" data-label="75” QM5K 4K Mini-LED TV" data-dimension48="75” QM5K 4K Mini-LED TV" data-dimension25="$699" href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="a7hfeCnr9iXywQGB8VRvA9" name="TCL-QM5K-Mini-LED-TV-16-by-9-Deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/a7hfeCnr9iXywQGB8VRvA9.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow" data-dimension112="c3840c64-9ce8-4435-85a3-000c15073102" data-action="Deal Block" data-label="75” QM5K 4K Mini-LED TV" data-dimension48="75” QM5K 4K Mini-LED TV" data-dimension25="$699">75” QM5K 4K Mini-LED TV: was $1199 now $699</a></strong><br>The QM5K has built-in Google TV features for all of your streaming needs, plus Dolby Vision support. Its handiest feature is its Mini-LED backlighting, which is difficult to find at this price point. If you're going to shop in this price range, I recommend going with the QM5K over a super-cheap TV from a brand like Insignia or Onn.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow" data-dimension112="c3840c64-9ce8-4435-85a3-000c15073102" data-action="Deal Block" data-label="75” QM5K 4K Mini-LED TV" data-dimension48="75” QM5K 4K Mini-LED TV" data-dimension25="$699">View Deal</a></p></div><h2 id="3-tcl-qm6k-2">3. TCL QM6K</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WMbz8hEMG7sHStsEMLS2CW" name="TCL QM6K--1" alt="TCL QM6K QD-Mini LED TV" src="https://cdn.mos.cms.futurecdn.net/WMbz8hEMG7sHStsEMLS2CW.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future/Malcolm McMillan)</span></figcaption></figure><p>If you want something brighter and more colorful than the 75-inch QM5K, consider its higher-end sibling, the TCL QM6K. Like the QM5K, the QM6K offers Mini-LED backlighting, but crucially, it also offers a punchier picture than the QM5K.</p><p>Its modest array of Mini-LEDs is why the QM6K delivers higher brightness and better overall contrast than TVs with more rudimentary display types (like the aforementioned Samsung Q7F). The added cost over the more-affordable QM5K nets you a brighter picture with better overall contrast. If you do most of your sports-watching during the day, I'd say that the bump in price is entirely worth it.</p><p>Right now, the 75-inch QM6K is just a hundred bucks more than the QM5K. That's a tantalizing proposition for savvy football fans looking to maximize their dollar.</p><div class="product"><a data-dimension112="1e062289-b00b-4ece-a871-fe785d4b6b24" data-action="Deal Block" data-label="75” QM6K 4K Mini-LED TV" data-dimension48="75” QM6K 4K Mini-LED TV" data-dimension25="$799" href="https://www.bestbuy.com/product/tcl-75-class-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWFJ" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:61.93%;"><img id="sLXAogfAqKCUoj8BruTYZm" name="712IORjS-gL._AC_SL1500_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/sLXAogfAqKCUoj8BruTYZm.jpg" mos="" align="middle" fullscreen="" width="1500" height="929" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-75-class-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWFJ" target="_blank" rel="nofollow" data-dimension112="1e062289-b00b-4ece-a871-fe785d4b6b24" data-action="Deal Block" data-label="75” QM6K 4K Mini-LED TV" data-dimension48="75” QM6K 4K Mini-LED TV" data-dimension25="$799">75” QM6K 4K Mini-LED TV: was $1299 now $799</a></strong><br>Throughout 2025, the TCL QM6K was one of my go-to recommendations for folks looking for a big screen on a budget. The 75-inch version is perfect for folks who want to upgrade to a big, dependable and good-looking TV without spending too much. If you watch a fair amount of daytime sports, it's worth spending more on the QM6K than you would on the 75-inch QM5K.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-75-class-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWFJ" target="_blank" rel="nofollow" data-dimension112="1e062289-b00b-4ece-a871-fe785d4b6b24" data-action="Deal Block" data-label="75” QM6K 4K Mini-LED TV" data-dimension48="75” QM6K 4K Mini-LED TV" data-dimension25="$799">View Deal</a></p></div><h2 id="4-sony-bravia-2-ii">4. Sony Bravia 2 II</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="CRCqokwq7D6TTYfAVkVfEY" name="Sony-Bravia-2-ii-lifestyle" alt="The Bravia 2 II QLED TV displaying a colorful picture of bubbles on a credenza in a modern living room" src="https://cdn.mos.cms.futurecdn.net/CRCqokwq7D6TTYfAVkVfEY.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony)</span></figcaption></figure><p>Sony's most affordable QLED TV is pricier than most options in its class, but the 75-inch version is currently on sale for around $799. I recommend the Bravia 2 II for sports fans who seek a clean, accurate presentation, as Sony's excellent picture processing is this Bravia TV's best feature.</p><p>The compromise here is that the Bravia 2 II (which we're still in the process of reviewing) doesn't get as bright as some of the Mini-LED based options I've included in this list, particularly when compared with the soon-to-be-mentioned Hisense U65QF.</p><p>Nevertheless, Sony's superb engineering and thorough attention to detail make the 75-inch Bravia 2 II an interesting candidate for viewers who want a decent viewing experience once game day is over and movie night begins. It's an especially good choice for viewers who watch movies, shows and sports in a controlled, home theater-like environment, since it shines more with the lights dimmed.</p><div class="product"><a data-dimension112="9594d646-5bf9-42fb-9bf4-f8029b616df4" data-action="Deal Block" data-label="75" Bravia 2 II 4K LED TV" data-dimension48="75" Bravia 2 II 4K LED TV" data-dimension25="$799" href="https://www.bestbuy.com/product/sony-75-class-bravia-2-ii-led-4k-uhd-smart-google-tv-2025/J7XSRH5TP2/sku/6623765" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="2sjLwWSC8EMaRDG9Qc7hiW" name="Sony-Bravia-2-ii-16-by-9-deal-block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/2sjLwWSC8EMaRDG9Qc7hiW.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/sony-75-class-bravia-2-ii-led-4k-uhd-smart-google-tv-2025/J7XSRH5TP2/sku/6623765" target="_blank" rel="nofollow" data-dimension112="9594d646-5bf9-42fb-9bf4-f8029b616df4" data-action="Deal Block" data-label='75" Bravia 2 II 4K LED TV' data-dimension48='75" Bravia 2 II 4K LED TV' data-dimension25="$799">75" Bravia 2 II 4K LED TV: was $899 now $799</a></strong><br>Sony's Bravia 2 II (read as "mark two") launched in 2025, offering budget pricing on an LED screen. While it may not boast sophisticated display technology, it is equipped with special PS5 features that enhance visuals for gamers, and it's kitted with Google TV, so you have access to all your favorite content, plus tons of free channels.<a class="view-deal button" href="https://www.bestbuy.com/product/sony-75-class-bravia-2-ii-led-4k-uhd-smart-google-tv-2025/J7XSRH5TP2/sku/6623765" target="_blank" rel="nofollow" data-dimension112="9594d646-5bf9-42fb-9bf4-f8029b616df4" data-action="Deal Block" data-label="75" Bravia 2 II 4K LED TV" data-dimension48="75" Bravia 2 II 4K LED TV" data-dimension25="$799">View Deal</a></p></div><h2 id="5-hisense-u65qf">5. Hisense U65QF</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1260px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="tCws4PKcLJgbXiswHMKMTi" name="Hisense-U65QF-01-LIST" alt="Hisense U65QF in an apartment" src="https://cdn.mos.cms.futurecdn.net/tCws4PKcLJgbXiswHMKMTi.jpg" mos="" align="middle" fullscreen="" width="1260" height="709" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Hisense)</span></figcaption></figure><p>If you're looking for the brightest possible picture on a 75-inch TV for under $1,000, Hisense's latest entry-level Mini-LED TV ought to be close to the top of your list of options. Of the five TVs on this list, the Hisense U65QF is the one I'd recommend to football fans with brighter-than-average living spaces.</p><p>In our <a href="https://www.tomsguide.com/tvs/4k-tvs/hisense-u65qf-mini-led-tv-review">U65QF review</a>, we noted that this TV nearly doubles the brightness you'll find on its direct competitors, including the QM6K. This is why the U65QF is a great choice for budget-conscious shoppers with sunny living rooms.</p><p>Just remember: This TV is built around Amazon's Fire TV smart platform, which isn't the best software suite on the market. Hopefully, you'll appreciate its Alexa integration more than we appreciated the software's clunky interface, but it's also worth noting that Amazon recently announced major <a href="https://www.tomsguide.com/tvs/qled-tvs/amazons-new-ember-artline-tv-is-a-samsung-the-frame-rival-thats-usd200-cheaper">upgrades to Fire TV OS</a> in the coming months.</p><div class="product"><a data-dimension112="94795364-324c-4d06-a1b6-f63cd5fe13d0" data-action="Deal Block" data-label="75” U65QF 4K Mini-LED TV" data-dimension48="75” U65QF 4K Mini-LED TV" data-dimension25="$895" href="https://www.amazon.com/Hisense-Class-Mini-LED-75U65QF-Built/dp/B0DYWNQMQJ" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:900px;"><p class="vanilla-image-block" style="padding-top:60.89%;"><img id="xMqoTz79rH7r2QjMaxD4AV" name="Hisense U65QF" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/xMqoTz79rH7r2QjMaxD4AV.jpg" mos="" align="middle" fullscreen="" width="900" height="548" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Hisense-Class-Mini-LED-75U65QF-Built/dp/B0DYWNQMQJ" target="_blank" rel="nofollow" data-dimension112="94795364-324c-4d06-a1b6-f63cd5fe13d0" data-action="Deal Block" data-label="75” U65QF 4K Mini-LED TV" data-dimension48="75” U65QF 4K Mini-LED TV" data-dimension25="$895">75” U65QF 4K Mini-LED TV: was $1016 now $895</a></strong><br>Hisense's most-affordable Mini-LED TV is one of the most cheapest ways to secure Mini-LED backlighting. Its class-leading brightness make it a great pick for daytime sports, but its Fire TV-based software might not be everyone's cup of tea.<a class="view-deal button" href="https://www.amazon.com/Hisense-Class-Mini-LED-75U65QF-Built/dp/B0DYWNQMQJ" target="_blank" rel="nofollow" data-dimension112="94795364-324c-4d06-a1b6-f63cd5fe13d0" data-action="Deal Block" data-label="75” U65QF 4K Mini-LED TV" data-dimension48="75” U65QF 4K Mini-LED TV" data-dimension25="$895">View Deal</a></p></div><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/motion-smoothing-for-sports-should-you-enable-it-on-your-tv">Motion smoothing for sports — should you enable it on your TV?</a></li><li><a href="https://www.tomsguide.com/entertainment/streaming-devices/best-streaming-devices">These are the 3 best streaming devices we've tested for your TV</a></li><li><a href="https://www.tomsguide.com/tvs/im-a-tv-expert-and-this-is-the-one-picture-mode-you-should-avoid-at-all-costs">I'm a TV expert and this is the one picture mode you should avoid at all costs</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/these-are-my-5-favorite-75-inch-tvs-under-usd1-000-ahead-of-the-nfl-playoffs</link>
                                                                            <description>
                            <![CDATA[ As Senior TV Editor, I'm familiar with just about every popular TV on the market. Thanks to post-holiday sale prices, it's a terrific time to buy a 75-inch TV on a budget. Here are my five favorite 75-inch TVs under $1,000 from brands like Hisense, Samsung, Sony and TCL. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">WrbmQ33vqezGCbgQdJ929e</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/HXzV37kKUxAE27CAjPDKU5-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 10 Jan 2026 06:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/HXzV37kKUxAE27CAjPDKU5-1280-80.jpg">
                                                            <media:credit><![CDATA[TCL]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[TCL QM6K ]]></media:description>                                                            <media:text><![CDATA[TCL QM6K ]]></media:text>
                                <media:title type="plain"><![CDATA[TCL QM6K ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/HXzV37kKUxAE27CAjPDKU5-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The holiday season is behind us, and while you might think that TV discounts have dried up along with the needles on a Christmas tree, there are still plenty of savings to be had on some affordable sets that are actually worth buying.</p><p>If you’re looking to upgrade to a big screen ahead of the NFL postseason, I’ve got good news: Five of my favorite budget-friendly TVs are available in 75-inch options for under $1,000.</p><p>There are three elements that make these 75-inch sets worth buying:  dependable hardware, useful features and, of course, a price tag that won't make you throw a yellow flag on the play. (For more discounts, check out our roundup of today's best <a href="https://www.tomsguide.com/us/best-tv-deals,news-26008.html">TV deals</a>). </p><h2 id="1-samsung-q7f">1. Samsung Q7F</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="qriFw6fj3uGnPST9ywUHMM" name="Samsung-Q7F-QLED-TV" alt="The Samsung Q7F QLED TV" src="https://cdn.mos.cms.futurecdn.net/qriFw6fj3uGnPST9ywUHMM.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Samsung)</span></figcaption></figure><p>Samsung's entry-level QLED TV for 2025 doesn't deliver the contrast and color brightness you'll find on some of the Mini-LED options listed below, but the 75-inch version is worth spotlighting for folks who are dead-set on shopping for an affordable, Samsung-branded TV.</p><p>The 75-inch Q7F comes with some essential streaming features and  decent out-of-the-box performance (though I recommend that picture purists take a gander at some of the Mini-LED TVs on this list before committing to the Q7F).</p><p>I'm still in the process of reviewing the Q7F formally, but I <em>can</em> confirm that its accurate picture and basic, direct-LED display is a notch above what you'll find on bottom-of-the-barrel sets. That makes it worth a look if you're trying to save as much money as possible, and it's an especially noteworthy option for football fans shopping for a Samsung TV.</p><div class="product"><a data-dimension112="2e7760a4-4a63-4824-adaf-6e15444c005b" data-action="Deal Block" data-label="75” Q7F 4K QLED TV" data-dimension48="75” Q7F 4K QLED TV" data-dimension25="$697" href="https://www.amazon.com/Samsung-75-Inch-Tracking-Processor-upscaling/dp/B0DXMT5L8D" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="9hLjpsVtitBw9GpBx9KAgT" name="Samsung-Q7F-QLED-TV-16-by-9-deal-block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/9hLjpsVtitBw9GpBx9KAgT.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Samsung-75-Inch-Tracking-Processor-upscaling/dp/B0DXMT5L8D" target="_blank" rel="nofollow" data-dimension112="2e7760a4-4a63-4824-adaf-6e15444c005b" data-action="Deal Block" data-label="75” Q7F 4K QLED TV" data-dimension48="75” Q7F 4K QLED TV" data-dimension25="$697">75” Q7F 4K QLED TV: $697</a></strong><br>Samsung's entry-level QLED TV improves upon its predecessors from previous years with a direct-LED display rather than a garden-variety, edge-lit panel. This means it has better overall contrast than previous Samsung QLEDs at this price range. I still recommend one of the Mini-LED TVs on this list over the Q7F, but if the name of the game is "Save Money," this one might be the ticket.<a class="view-deal button" href="https://www.amazon.com/Samsung-75-Inch-Tracking-Processor-upscaling/dp/B0DXMT5L8D" target="_blank" rel="nofollow" data-dimension112="2e7760a4-4a63-4824-adaf-6e15444c005b" data-action="Deal Block" data-label="75” Q7F 4K QLED TV" data-dimension48="75” Q7F 4K QLED TV" data-dimension25="$697">View Deal</a></p></div><h2 id="2-tcl-qm5k-2">2. TCL QM5K</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="vCnRGsdCB3mnCFg3YgsEfh" name="TCL-QM5K-Mini-LED-TV-Google-TV-Home-Screen" alt="The TCL QM5K Mini-LED TV displaying the Google TV home screen" src="https://cdn.mos.cms.futurecdn.net/vCnRGsdCB3mnCFg3YgsEfh.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>The TCL QM5K is one of the cheapest Mini-LED TVs that debuted in 2025, and it’s a great fit for football fans who want to save money but would rather not scrape the bottom of the barrel for an ultra-cheap TV that won't look good on game day.</p><p>Most cheap TVs at or around the QM5K's low price point don't come with smaller, brighter Mini-LEDs, opting instead for garden-variety LEDs. This is the biggest difference between the QM5K and the aforementioned Samsung Q7F.</p><p>It's worth highlighting that the QM5K features three HDMI inputs rather than the usual four, but thankfully, the inclusion of Google TV somewhat makes up for its missing port. Google TV is one of my preferred smart platforms due to its easy-to-navigate interface and it's huge library of downloadable apps.</p><div class="product"><a data-dimension112="c3840c64-9ce8-4435-85a3-000c15073102" data-action="Deal Block" data-label="75” QM5K 4K Mini-LED TV" data-dimension48="75” QM5K 4K Mini-LED TV" data-dimension25="$699" href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="a7hfeCnr9iXywQGB8VRvA9" name="TCL-QM5K-Mini-LED-TV-16-by-9-Deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/a7hfeCnr9iXywQGB8VRvA9.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow" data-dimension112="c3840c64-9ce8-4435-85a3-000c15073102" data-action="Deal Block" data-label="75” QM5K 4K Mini-LED TV" data-dimension48="75” QM5K 4K Mini-LED TV" data-dimension25="$699">75” QM5K 4K Mini-LED TV: was $1199 now $699</a></strong><br>The QM5K has built-in Google TV features for all of your streaming needs, plus Dolby Vision support. Its handiest feature is its Mini-LED backlighting, which is difficult to find at this price point. If you're going to shop in this price range, I recommend going with the QM5K over a super-cheap TV from a brand like Insignia or Onn.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-75-class-qm5k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQW46/sku/6625834" target="_blank" rel="nofollow" data-dimension112="c3840c64-9ce8-4435-85a3-000c15073102" data-action="Deal Block" data-label="75” QM5K 4K Mini-LED TV" data-dimension48="75” QM5K 4K Mini-LED TV" data-dimension25="$699">View Deal</a></p></div><h2 id="3-tcl-qm6k-2">3. TCL QM6K</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WMbz8hEMG7sHStsEMLS2CW" name="TCL QM6K--1" alt="TCL QM6K QD-Mini LED TV" src="https://cdn.mos.cms.futurecdn.net/WMbz8hEMG7sHStsEMLS2CW.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future/Malcolm McMillan)</span></figcaption></figure><p>If you want something brighter and more colorful than the 75-inch QM5K, consider its higher-end sibling, the TCL QM6K. Like the QM5K, the QM6K offers Mini-LED backlighting, but crucially, it also offers a punchier picture than the QM5K.</p><p>Its modest array of Mini-LEDs is why the QM6K delivers higher brightness and better overall contrast than TVs with more rudimentary display types (like the aforementioned Samsung Q7F). The added cost over the more-affordable QM5K nets you a brighter picture with better overall contrast. If you do most of your sports-watching during the day, I'd say that the bump in price is entirely worth it.</p><p>Right now, the 75-inch QM6K is just a hundred bucks more than the QM5K. That's a tantalizing proposition for savvy football fans looking to maximize their dollar.</p><div class="product"><a data-dimension112="1e062289-b00b-4ece-a871-fe785d4b6b24" data-action="Deal Block" data-label="75” QM6K 4K Mini-LED TV" data-dimension48="75” QM6K 4K Mini-LED TV" data-dimension25="$799" href="https://www.bestbuy.com/product/tcl-75-class-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWFJ" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:61.93%;"><img id="sLXAogfAqKCUoj8BruTYZm" name="712IORjS-gL._AC_SL1500_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/sLXAogfAqKCUoj8BruTYZm.jpg" mos="" align="middle" fullscreen="" width="1500" height="929" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/tcl-75-class-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWFJ" target="_blank" rel="nofollow" data-dimension112="1e062289-b00b-4ece-a871-fe785d4b6b24" data-action="Deal Block" data-label="75” QM6K 4K Mini-LED TV" data-dimension48="75” QM6K 4K Mini-LED TV" data-dimension25="$799">75” QM6K 4K Mini-LED TV: was $1299 now $799</a></strong><br>Throughout 2025, the TCL QM6K was one of my go-to recommendations for folks looking for a big screen on a budget. The 75-inch version is perfect for folks who want to upgrade to a big, dependable and good-looking TV without spending too much. If you watch a fair amount of daytime sports, it's worth spending more on the QM6K than you would on the 75-inch QM5K.<a class="view-deal button" href="https://www.bestbuy.com/product/tcl-75-class-qm6k-series-4k-uhd-hdr-qd-mini-led-smart-tv-with-google-tv-2025/J36QYTQWFJ" target="_blank" rel="nofollow" data-dimension112="1e062289-b00b-4ece-a871-fe785d4b6b24" data-action="Deal Block" data-label="75” QM6K 4K Mini-LED TV" data-dimension48="75” QM6K 4K Mini-LED TV" data-dimension25="$799">View Deal</a></p></div><h2 id="4-sony-bravia-2-ii">4. Sony Bravia 2 II</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="CRCqokwq7D6TTYfAVkVfEY" name="Sony-Bravia-2-ii-lifestyle" alt="The Bravia 2 II QLED TV displaying a colorful picture of bubbles on a credenza in a modern living room" src="https://cdn.mos.cms.futurecdn.net/CRCqokwq7D6TTYfAVkVfEY.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony)</span></figcaption></figure><p>Sony's most affordable QLED TV is pricier than most options in its class, but the 75-inch version is currently on sale for around $799. I recommend the Bravia 2 II for sports fans who seek a clean, accurate presentation, as Sony's excellent picture processing is this Bravia TV's best feature.</p><p>The compromise here is that the Bravia 2 II (which we're still in the process of reviewing) doesn't get as bright as some of the Mini-LED based options I've included in this list, particularly when compared with the soon-to-be-mentioned Hisense U65QF.</p><p>Nevertheless, Sony's superb engineering and thorough attention to detail make the 75-inch Bravia 2 II an interesting candidate for viewers who want a decent viewing experience once game day is over and movie night begins. It's an especially good choice for viewers who watch movies, shows and sports in a controlled, home theater-like environment, since it shines more with the lights dimmed.</p><div class="product"><a data-dimension112="9594d646-5bf9-42fb-9bf4-f8029b616df4" data-action="Deal Block" data-label="75" Bravia 2 II 4K LED TV" data-dimension48="75" Bravia 2 II 4K LED TV" data-dimension25="$799" href="https://www.bestbuy.com/product/sony-75-class-bravia-2-ii-led-4k-uhd-smart-google-tv-2025/J7XSRH5TP2/sku/6623765" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="2sjLwWSC8EMaRDG9Qc7hiW" name="Sony-Bravia-2-ii-16-by-9-deal-block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/2sjLwWSC8EMaRDG9Qc7hiW.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/sony-75-class-bravia-2-ii-led-4k-uhd-smart-google-tv-2025/J7XSRH5TP2/sku/6623765" target="_blank" rel="nofollow" data-dimension112="9594d646-5bf9-42fb-9bf4-f8029b616df4" data-action="Deal Block" data-label='75" Bravia 2 II 4K LED TV' data-dimension48='75" Bravia 2 II 4K LED TV' data-dimension25="$799">75" Bravia 2 II 4K LED TV: was $899 now $799</a></strong><br>Sony's Bravia 2 II (read as "mark two") launched in 2025, offering budget pricing on an LED screen. While it may not boast sophisticated display technology, it is equipped with special PS5 features that enhance visuals for gamers, and it's kitted with Google TV, so you have access to all your favorite content, plus tons of free channels.<a class="view-deal button" href="https://www.bestbuy.com/product/sony-75-class-bravia-2-ii-led-4k-uhd-smart-google-tv-2025/J7XSRH5TP2/sku/6623765" target="_blank" rel="nofollow" data-dimension112="9594d646-5bf9-42fb-9bf4-f8029b616df4" data-action="Deal Block" data-label="75" Bravia 2 II 4K LED TV" data-dimension48="75" Bravia 2 II 4K LED TV" data-dimension25="$799">View Deal</a></p></div><h2 id="5-hisense-u65qf">5. Hisense U65QF</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1260px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="tCws4PKcLJgbXiswHMKMTi" name="Hisense-U65QF-01-LIST" alt="Hisense U65QF in an apartment" src="https://cdn.mos.cms.futurecdn.net/tCws4PKcLJgbXiswHMKMTi.jpg" mos="" align="middle" fullscreen="" width="1260" height="709" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Hisense)</span></figcaption></figure><p>If you're looking for the brightest possible picture on a 75-inch TV for under $1,000, Hisense's latest entry-level Mini-LED TV ought to be close to the top of your list of options. Of the five TVs on this list, the Hisense U65QF is the one I'd recommend to football fans with brighter-than-average living spaces.</p><p>In our <a href="https://www.tomsguide.com/tvs/4k-tvs/hisense-u65qf-mini-led-tv-review">U65QF review</a>, we noted that this TV nearly doubles the brightness you'll find on its direct competitors, including the QM6K. This is why the U65QF is a great choice for budget-conscious shoppers with sunny living rooms.</p><p>Just remember: This TV is built around Amazon's Fire TV smart platform, which isn't the best software suite on the market. Hopefully, you'll appreciate its Alexa integration more than we appreciated the software's clunky interface, but it's also worth noting that Amazon recently announced major <a href="https://www.tomsguide.com/tvs/qled-tvs/amazons-new-ember-artline-tv-is-a-samsung-the-frame-rival-thats-usd200-cheaper">upgrades to Fire TV OS</a> in the coming months.</p><div class="product"><a data-dimension112="94795364-324c-4d06-a1b6-f63cd5fe13d0" data-action="Deal Block" data-label="75” U65QF 4K Mini-LED TV" data-dimension48="75” U65QF 4K Mini-LED TV" data-dimension25="$895" href="https://www.amazon.com/Hisense-Class-Mini-LED-75U65QF-Built/dp/B0DYWNQMQJ" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:900px;"><p class="vanilla-image-block" style="padding-top:60.89%;"><img id="xMqoTz79rH7r2QjMaxD4AV" name="Hisense U65QF" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/xMqoTz79rH7r2QjMaxD4AV.jpg" mos="" align="middle" fullscreen="" width="900" height="548" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Hisense-Class-Mini-LED-75U65QF-Built/dp/B0DYWNQMQJ" target="_blank" rel="nofollow" data-dimension112="94795364-324c-4d06-a1b6-f63cd5fe13d0" data-action="Deal Block" data-label="75” U65QF 4K Mini-LED TV" data-dimension48="75” U65QF 4K Mini-LED TV" data-dimension25="$895">75” U65QF 4K Mini-LED TV: was $1016 now $895</a></strong><br>Hisense's most-affordable Mini-LED TV is one of the most cheapest ways to secure Mini-LED backlighting. Its class-leading brightness make it a great pick for daytime sports, but its Fire TV-based software might not be everyone's cup of tea.<a class="view-deal button" href="https://www.amazon.com/Hisense-Class-Mini-LED-75U65QF-Built/dp/B0DYWNQMQJ" target="_blank" rel="nofollow" data-dimension112="94795364-324c-4d06-a1b6-f63cd5fe13d0" data-action="Deal Block" data-label="75” U65QF 4K Mini-LED TV" data-dimension48="75” U65QF 4K Mini-LED TV" data-dimension25="$895">View Deal</a></p></div><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/motion-smoothing-for-sports-should-you-enable-it-on-your-tv">Motion smoothing for sports — should you enable it on your TV?</a></li><li><a href="https://www.tomsguide.com/entertainment/streaming-devices/best-streaming-devices">These are the 3 best streaming devices we've tested for your TV</a></li><li><a href="https://www.tomsguide.com/tvs/im-a-tv-expert-and-this-is-the-one-picture-mode-you-should-avoid-at-all-costs">I'm a TV expert and this is the one picture mode you should avoid at all costs</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ TCL TV lineup 2026: new SQD Mini-LED enhancement, Mini-LED TVs, and an RGB Mini-LED TV ]]></title>
                                                                                                <dc:content><![CDATA[ <div  class="fancy-box"><div class="fancy_box-title">Tom's Guide at CES</div><div class="fancy_box_body"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' ><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ta3dXY62nkc8pUxn65nRLY" name="CES 2025" caption="" alt="CES 2025" src="https://cdn.mos.cms.futurecdn.net/ta3dXY62nkc8pUxn65nRLY.jpg" mos="" link="" align="" fullscreen="" width="" height="" attribution="" endorsement="" class="pinterest-pin-exclude"></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p class="fancy-box__body-text">Follow all of our <a data-analytics-id="inline-link" href="https://www.tomsguide.com/news/live/ces-2026-live-latest-news">CES 2026 live coverage </a>for the biggest gadget news straight from Las Vegas. And be sure to follow <a data-analytics-id="inline-link" href="https://www.tiktok.com/@tomsguide" target="_blank">Tom's Guide on TikTok</a> for the coolest videos from the show.</p></div></div><p><a href="https://www.tomsguide.com/news/live/ces-2026-live-latest-news">CES 2026</a> is well underway, and the talk of the show for TV fans has been RGB Mini-LED TVs. TCL is taking things a bit differently with a new subset of Mini-LED models called its SQD (Super Quantum Dot) Mini-LED series, which offer enhanced dimming zones and broader color coverage for superior picture performance. </p><p>At the forefront of its 2026 TV lineup is the <a href="https://www.tomsguide.com/tvs/i-went-hands-on-with-tcls-first-sqd-mini-led-tv-and-it-made-me-forget-about-rgb-tvs">TCL X11L SQD Mini-LED TV</a>, one of its most advanced sets of the year and the first of its kind. It's equipped with up to 20,000 dimming zones and a purported 10,000 nits of peak brightness, according to TCL.  The X11 isn't alone, as TCL will also be launching the QM8L and QM7L SQD Mini-LED TVs. </p><p>TCL also announced a new RM9L RGB Mini-LED TV that will use similar technology to other models in the market with the X11L's UltraColor filter. Pricing and an official release date are still to be determined. </p><h2 id="tcl-2026-tvs-x11l-sqd-mini-led-tv">TCL 2026 TVs: X11L SQD Mini-LED TV</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/WF2A1fPWs44" allowfullscreen></iframe></div></div><p>The TCL X11L SQD Mini-LED is a jaw-dropping display that boasts serious upgrades over its primary competition, including Mini-LED and QLED models. Think of the X11L as a step above Mini-LED TVs, offering 20,000 local dimming zones, up to 10,000 nits of peak brightness, and 100% coverage of the BT.2020 gamut. </p><p>We'll have to wait and see just how accurate those numbers are once we get the X11L in our labs, but the star of the show is the so-called "Super QLED Crystals," for which Super Quantum Dots (SQD) gets its name. Essentially, the X11L uses highly advanced quantum dots to deliver superior color. </p><p>Here are the prices and available sizes for the TCL X11L SQD Mini-LED series:</p><ul><li><strong>TCL X11L 75-inch: $6,999</strong></li><li><strong>TCL X11L 85-inch: $7,999</strong></li><li><strong>TCL X11L 98-inch: $9,999</strong></li></ul><p>Note that the 75-inch model will be introduced at a later date, while the 85-inch and 98-inch models launch in January. You can already pre-order the TCL X11L SQD Mini-LED TV at <a href="https://us.tcl.com/products/tcl-x11" target="_blank" rel="nofollow">TCL's web store</a>. </p><p>Several standout features also make the cut on the X11L, unlike several of its competitors, including <a href="https://www.tomsguide.com/tvs/dolby-vision-2-is-going-to-make-your-next-usd300-tv-look-like-a-usd1-000-model-heres-how">Dolby Vision 2 Max</a>. This is thanks to the advanced TSR AI processor, which supports Super Resolution, which also gives the X11L access to HDR10, HDR10+, and HLG. </p><p>Any concerns about blooming are also put to bed as the X11L features TCL's Deep Color System that combines its UltraColor Filter and Advanced Color Purity algorithm to get as close to life-like accuracy as is possible. It also aims to diminish color crosstalk, otherwise known as blooming, so the image keeps its fullness even with bright whites and darker scenes take up the screen.  </p><p>There's a lot to love about the new TCL X11L. It's a promising look at the future of Mini-LED TV technology, but it's still too early to tell how well it fares against the more premium RGB Mini-LED sets also debuting at CES. The X11L isn't the only SQD Mini-LED TV set to launch this year, as it is also bringing to market the QM8L and QM7L. </p><h2 id="tcl-2026-tvs-qm8l-qm7l-sqd-mini-led-tvs">TCL 2026 TVs: QM8L & QM7L SQD Mini-LED TVs</h2><p>TCL is launching two additional SQD Mini-LED TVs in 2026, which include the QM8L and QM7L, which will also act as successors to the TCL QM8K and TCL QM7K from last year's lineup. It will also be debuting a budget Mini-LED model in the QM6L that takes up from the 2025 TCL QM6K, one of our favorite budget Mini-LED TVs. </p><p>There's precious little extra information available about these sets at this time, as TCL has focused primarily on the X11L for CES 2026. We can expect more details, including release dates and pricing, to be unveiled later this year, potentially in March or April.</p><h2 id="tcl-2026-tvs-rm9l-rgb-mini-led-tv">TCL 2026 TVs: RM9L RGB Mini-LED TV</h2><p>Like many of its counterparts, TCL is also bringing to markets its own RGB Mini-LED TV, but decided against showing it at CES. Called the TCL RM9L RGB Mini-LED TV, the advanced display is riddled with mystery. TCL has thus far only announced the name of its new RGB Mini-LED TV, offering minimal additional details about pricing, sizes, and specs. </p><p>However, TCL did note that the RM9L features the same UltraColor Filter found on the TCL X11L, which should give it a hefty leg up with enhanced accuracy and contrast, as well as diminished blooming. That's about all we know about the RM9L at this time, but keep your eyes peeled for more information as it's unveiled later this year. </p><h2 id="tcl-2026-tvs-outlook-2">TCL 2026 TVs: outlook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="m5qDEb6GJhea7BG8oc3mtm" name="X11L-Lifestyle-1" alt="TCL X11L on wall in living room" src="https://cdn.mos.cms.futurecdn.net/m5qDEb6GJhea7BG8oc3mtm.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>As others tout their advanced technologies, noting the enhanced colors and picture performance available in RGB Mini-LED TVs, TCL decided to take a step back for CES this year. The TCL X11L is an excellent starting point for TCL's 2026 strategy, offering a small glimpse into what can be expected from the brand beyond where the industry as a whole is moving. </p><p>However, we still know very little about its main Mini-LED lineup, which could be some of the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TVs</a> to come out in 2026. The <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review">TCL QM6K Mini-LED TV</a> remains one of our favorite budget models, and the QM6L could be yet another go-to budget gaming set that offers enhanced features over its predecessor. </p><p>Similarly, the TCL QM8L and TCL QM7L could give Hisense a run for its money. This is where the real battle will take place for TCL, noting the leaps and bounds its SQD Mini-LED TVs offer against prime competition, particularly against Hisense's U8 and U7 series TVs.</p><p>It's challenging to delineate where the new RM9L RGB Mini-LED TV lands in the ever-growing pool of similar models, as information about the model is currently sparse. We'll have to wait and see what else TCL is cooking up for the rest of 2026. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/news/live/ces-2026-live-latest-news">CES 2026 LIVE: All the biggest tech and gadget news as it happens</a></li><li><a href="https://www.tomsguide.com/tvs/samsung-tv-lineup-2026-new-oleds-micro-rgb-tvs-and-neo-qleds-announced-at-ces">Samsung TV lineup 2026: new OLEDs, Micro RGB TVs and Neo QLEDs announced at CES</a></li><li><a href="https://www.tomsguide.com/tvs/i-went-hands-on-with-tcls-first-sqd-mini-led-tv-and-it-made-me-forget-about-rgb-tvs">I went hands-on with TCL’s first SQD Mini-LED TV — and it made me forget about RGB TVs</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/tcl-tv-lineup-2026-new-sqd-mini-led-enhancement-mini-led-tvs-and-an-rgb-mini-led-tv</link>
                                                                            <description>
                            <![CDATA[ TCL is taking a backseat to all the RGB Mini-LED talk with its own SQD Mini-LED TV that aims to be even better than its competition. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">UH9M3xRqcExFpHW959b5bZ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/MdvZKk33HCGnW2cTzqHUHc-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 07 Jan 2026 11:14:20 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ ryan.epps@futurenet.com (Ryan Epps) ]]></author>                    <dc:creator><![CDATA[ Ryan Epps ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/E7gBpwcDTqxaUzjHb6y7c4.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Ryan Epps is a Staff Writer at Tom&#039;s Guide, covering TVs, projectors, and other tech news. During off hours, he&#039;s either working on his next YouTube video, playing Dark Souls, or enjoying some strange 90&#039;s anime without really knowing what&#039;s going on. Ryan has covered tech for two years at Tech Times, as well as entertainment and gaming at Digital Trends, International Business Times, and TheGamer. He&#039;s a passionate writer who has loads of short stories and poems in tiny notebooks written since the age of six. Ryan joined Tom&#039;s Guide as a Staff Writer at the end of 2023. He graduated from Seton Hall University in 2016 with a BA in English and Creative Writing.&amp;nbsp;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/MdvZKk33HCGnW2cTzqHUHc-1280-80.jpg">
                                                            <media:credit><![CDATA[TCL]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[TCL X11 SQD Mini-LED TV]]></media:description>                                                            <media:text><![CDATA[TCL X11 SQD Mini-LED TV]]></media:text>
                                <media:title type="plain"><![CDATA[TCL X11 SQD Mini-LED TV]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/MdvZKk33HCGnW2cTzqHUHc-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div  class="fancy-box"><div class="fancy_box-title">Tom's Guide at CES</div><div class="fancy_box_body"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' ><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ta3dXY62nkc8pUxn65nRLY" name="CES 2025" caption="" alt="CES 2025" src="https://cdn.mos.cms.futurecdn.net/ta3dXY62nkc8pUxn65nRLY.jpg" mos="" link="" align="" fullscreen="" width="" height="" attribution="" endorsement="" class="pinterest-pin-exclude"></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p class="fancy-box__body-text">Follow all of our <a data-analytics-id="inline-link" href="https://www.tomsguide.com/news/live/ces-2026-live-latest-news">CES 2026 live coverage </a>for the biggest gadget news straight from Las Vegas. And be sure to follow <a data-analytics-id="inline-link" href="https://www.tiktok.com/@tomsguide" target="_blank">Tom's Guide on TikTok</a> for the coolest videos from the show.</p></div></div><p><a href="https://www.tomsguide.com/news/live/ces-2026-live-latest-news">CES 2026</a> is well underway, and the talk of the show for TV fans has been RGB Mini-LED TVs. TCL is taking things a bit differently with a new subset of Mini-LED models called its SQD (Super Quantum Dot) Mini-LED series, which offer enhanced dimming zones and broader color coverage for superior picture performance. </p><p>At the forefront of its 2026 TV lineup is the <a href="https://www.tomsguide.com/tvs/i-went-hands-on-with-tcls-first-sqd-mini-led-tv-and-it-made-me-forget-about-rgb-tvs">TCL X11L SQD Mini-LED TV</a>, one of its most advanced sets of the year and the first of its kind. It's equipped with up to 20,000 dimming zones and a purported 10,000 nits of peak brightness, according to TCL.  The X11 isn't alone, as TCL will also be launching the QM8L and QM7L SQD Mini-LED TVs. </p><p>TCL also announced a new RM9L RGB Mini-LED TV that will use similar technology to other models in the market with the X11L's UltraColor filter. Pricing and an official release date are still to be determined. </p><h2 id="tcl-2026-tvs-x11l-sqd-mini-led-tv">TCL 2026 TVs: X11L SQD Mini-LED TV</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/WF2A1fPWs44" allowfullscreen></iframe></div></div><p>The TCL X11L SQD Mini-LED is a jaw-dropping display that boasts serious upgrades over its primary competition, including Mini-LED and QLED models. Think of the X11L as a step above Mini-LED TVs, offering 20,000 local dimming zones, up to 10,000 nits of peak brightness, and 100% coverage of the BT.2020 gamut. </p><p>We'll have to wait and see just how accurate those numbers are once we get the X11L in our labs, but the star of the show is the so-called "Super QLED Crystals," for which Super Quantum Dots (SQD) gets its name. Essentially, the X11L uses highly advanced quantum dots to deliver superior color. </p><p>Here are the prices and available sizes for the TCL X11L SQD Mini-LED series:</p><ul><li><strong>TCL X11L 75-inch: $6,999</strong></li><li><strong>TCL X11L 85-inch: $7,999</strong></li><li><strong>TCL X11L 98-inch: $9,999</strong></li></ul><p>Note that the 75-inch model will be introduced at a later date, while the 85-inch and 98-inch models launch in January. You can already pre-order the TCL X11L SQD Mini-LED TV at <a href="https://us.tcl.com/products/tcl-x11" target="_blank" rel="nofollow">TCL's web store</a>. </p><p>Several standout features also make the cut on the X11L, unlike several of its competitors, including <a href="https://www.tomsguide.com/tvs/dolby-vision-2-is-going-to-make-your-next-usd300-tv-look-like-a-usd1-000-model-heres-how">Dolby Vision 2 Max</a>. This is thanks to the advanced TSR AI processor, which supports Super Resolution, which also gives the X11L access to HDR10, HDR10+, and HLG. </p><p>Any concerns about blooming are also put to bed as the X11L features TCL's Deep Color System that combines its UltraColor Filter and Advanced Color Purity algorithm to get as close to life-like accuracy as is possible. It also aims to diminish color crosstalk, otherwise known as blooming, so the image keeps its fullness even with bright whites and darker scenes take up the screen.  </p><p>There's a lot to love about the new TCL X11L. It's a promising look at the future of Mini-LED TV technology, but it's still too early to tell how well it fares against the more premium RGB Mini-LED sets also debuting at CES. The X11L isn't the only SQD Mini-LED TV set to launch this year, as it is also bringing to market the QM8L and QM7L. </p><h2 id="tcl-2026-tvs-qm8l-qm7l-sqd-mini-led-tvs">TCL 2026 TVs: QM8L & QM7L SQD Mini-LED TVs</h2><p>TCL is launching two additional SQD Mini-LED TVs in 2026, which include the QM8L and QM7L, which will also act as successors to the TCL QM8K and TCL QM7K from last year's lineup. It will also be debuting a budget Mini-LED model in the QM6L that takes up from the 2025 TCL QM6K, one of our favorite budget Mini-LED TVs. </p><p>There's precious little extra information available about these sets at this time, as TCL has focused primarily on the X11L for CES 2026. We can expect more details, including release dates and pricing, to be unveiled later this year, potentially in March or April.</p><h2 id="tcl-2026-tvs-rm9l-rgb-mini-led-tv">TCL 2026 TVs: RM9L RGB Mini-LED TV</h2><p>Like many of its counterparts, TCL is also bringing to markets its own RGB Mini-LED TV, but decided against showing it at CES. Called the TCL RM9L RGB Mini-LED TV, the advanced display is riddled with mystery. TCL has thus far only announced the name of its new RGB Mini-LED TV, offering minimal additional details about pricing, sizes, and specs. </p><p>However, TCL did note that the RM9L features the same UltraColor Filter found on the TCL X11L, which should give it a hefty leg up with enhanced accuracy and contrast, as well as diminished blooming. That's about all we know about the RM9L at this time, but keep your eyes peeled for more information as it's unveiled later this year. </p><h2 id="tcl-2026-tvs-outlook-2">TCL 2026 TVs: outlook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="m5qDEb6GJhea7BG8oc3mtm" name="X11L-Lifestyle-1" alt="TCL X11L on wall in living room" src="https://cdn.mos.cms.futurecdn.net/m5qDEb6GJhea7BG8oc3mtm.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TCL)</span></figcaption></figure><p>As others tout their advanced technologies, noting the enhanced colors and picture performance available in RGB Mini-LED TVs, TCL decided to take a step back for CES this year. The TCL X11L is an excellent starting point for TCL's 2026 strategy, offering a small glimpse into what can be expected from the brand beyond where the industry as a whole is moving. </p><p>However, we still know very little about its main Mini-LED lineup, which could be some of the <a href="https://www.tomsguide.com/us/best-tvs,review-2224.html">best TVs</a> to come out in 2026. The <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review">TCL QM6K Mini-LED TV</a> remains one of our favorite budget models, and the QM6L could be yet another go-to budget gaming set that offers enhanced features over its predecessor. </p><p>Similarly, the TCL QM8L and TCL QM7L could give Hisense a run for its money. This is where the real battle will take place for TCL, noting the leaps and bounds its SQD Mini-LED TVs offer against prime competition, particularly against Hisense's U8 and U7 series TVs.</p><p>It's challenging to delineate where the new RM9L RGB Mini-LED TV lands in the ever-growing pool of similar models, as information about the model is currently sparse. We'll have to wait and see what else TCL is cooking up for the rest of 2026. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/news/live/ces-2026-live-latest-news">CES 2026 LIVE: All the biggest tech and gadget news as it happens</a></li><li><a href="https://www.tomsguide.com/tvs/samsung-tv-lineup-2026-new-oleds-micro-rgb-tvs-and-neo-qleds-announced-at-ces">Samsung TV lineup 2026: new OLEDs, Micro RGB TVs and Neo QLEDs announced at CES</a></li><li><a href="https://www.tomsguide.com/tvs/i-went-hands-on-with-tcls-first-sqd-mini-led-tv-and-it-made-me-forget-about-rgb-tvs">I went hands-on with TCL’s first SQD Mini-LED TV — and it made me forget about RGB TVs</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ These are the 7 best TVs we’ve seen at CES 2026, from OLEDs to Micro RGBs ]]></title>
                                                                                                <dc:content><![CDATA[ <div  class="fancy-box"><div class="fancy_box-title">Tom's Guide at CES</div><div class="fancy_box_body"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' ><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ta3dXY62nkc8pUxn65nRLY" name="CES 2025" caption="" alt="CES 2025" src="https://cdn.mos.cms.futurecdn.net/ta3dXY62nkc8pUxn65nRLY.jpg" mos="" link="" align="" fullscreen="" width="" height="" attribution="" endorsement="" class="pinterest-pin-exclude"></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p class="fancy-box__body-text">Follow all of our <a data-analytics-id="inline-link" href="https://www.tomsguide.com/news/live/ces-2026-live-latest-news">CES 2026 live coverage </a>for the biggest gadget news straight from Las Vegas. And be sure to follow <a data-analytics-id="inline-link" href="https://www.tiktok.com/@tomsguide" target="_blank">Tom's Guide on TikTok</a> for the coolest videos from the show.</p></div></div><p>We’re live on the scene from <a href="https://www.tomsguide.com/news/live/ces-2026-live-latest-news">CES 2026</a> this week, where the biggest brands in the TV industry have been busy spotlighting their newest screens and innovations. Yes, there are <em>tons</em> of TVs on display, but there are a handful in particular that have caught our eye.</p><p>From upgraded OLEDs to all-new Micro RGB TVs, here’s a round-up of the best sets we’ve seen so far — the TVs that are poised to make a big splash in the coming months.</p><h2 id="samsung-r95h">Samsung R95H</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="URdKN5fEH6akRP9eETbAri" name="IMG_0046.JPG" alt="The Samsung R95H Micro RGB TV" src="https://cdn.mos.cms.futurecdn.net/URdKN5fEH6akRP9eETbAri.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div><blockquote><p>The Samsung R95H is the brand’s latest flagship to flaunt Micro RGB technology.</p></blockquote></div><p>For most of the major TV-makers, CES 2026 has been all about one thing: RGB-based backlighting.</p><p>These teeny-tiny LEDs are smaller than garden-variety Mini-LEDs and create their own red-, green- and blue-colored light instead of relying on a color filter. The result is gobsmackingly gorgeous color — hues that are much brighter and purer than what we’ve come to expect from even the best Mini-LED TVs on the market.</p><p>Samsung has dubbed its take on the technology <em>RGB Micro LED</em>, and the Samsung R95H is the brand’s latest flagship to flaunt it. Nick Pino, managing editor of TV and AV for Tom’s Guide, was lucky enough to go <a href="https://www.tomsguide.com/tvs/i-saw-samsungs-2026-flagship-oled-and-micro-rgb-tvs-side-by-side-heres-the-one-i-like-more">hands-on with the Samsung R95H</a> and walked away impressed.</p><p>“Samsung's R95H is as bright as any Mini-LED TV I’ve seen,” Nick says, noting that the R95H features “a slightly larger color volume” than those Mini-LED-based TVs. He added: “Scenes from ‘The Lord of the Rings: The Rings of Power’ I watched on my <a href="https://www.tomsguide.com/tvs/oled-tvs/samsung-s95d-oled-review">Samsung S95D OLED</a> looked significantly brighter and richer on the R95H.”</p>                    <div class= "tiktok-wrapper" style="min-height: 750px;"><blockquote class="tiktok-embed" cite="https://www.tiktok.com/@tomsguide/video/7591724859332365582" data-video-id="7591724859332365582" style="max-width: 605px; min-width: 325px;">                        <section>                            <a target="_blank" title="@tomsguide" href="https://www.tiktok.com/@tomsguide">@tomsguide</a>                            <p></p><a target="_blank" title="♬ r&b loop - Official Sound Studio" href="https://www.tiktok.com/music/rb-loop-6723099489072057095">♬ r&b loop - Official Sound Studio</a></section>                    </blockquote></div>                <p>As mentioned, the R95H is far from the only TV tapping this tantalizing tech on the showroom floor, but given Samsung's pedigree (including its superb track record for picture processing), it's quickly becoming one of our most-anticipated.</p><h2 id="hisense-ur9-and-ur8">Hisense UR9 and UR8</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mmLVmGnkNV8S3ggacpBvnB" name="Hisense-UR9-RGB-Mini-LED-evo-TV-CES-2026" alt="The Hisense UR9 RGB Mini-LED TV displaying colorful, abstract imagery in a modern living room-like setting." src="https://cdn.mos.cms.futurecdn.net/mmLVmGnkNV8S3ggacpBvnB.jpg" mos="" align="middle" fullscreen="" width="4000" height="2250" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Hisense)</span></figcaption></figure><p>Hisense ain’t messing around this year. After another successful year of selling some of the most competitively priced and value-packed TVs on shelves, the TV-maker has spent the week showcasing its own RGB-based sets — except Hisense is calling its version <em>RGB Mini-LED.</em></p><p>Enter the UR9 and UR8. We don’t know much about these sets just yet (and trust me: I’ve been dying to learn more), but if Hisense’s track record is any indication, there’s a good chance that they’ll be aggressively priced. That’s potentially very good news for shoppers who might be flirting with this cutting-edge display type at some point in 2026.</p><p>While showing off the <a href="https://www.tomsguide.com/tvs/hisense-tv-lineup-2026-new-rgb-mini-led-tvs-and-a-huge-micro-led-upgrade">Hisense 2026 TV lineup</a>, the brand confirmed that, between the UR9 and UR8, screen sizes between 55 and 100 inches will be represented. Given the razzle-dazzle prevalence of RGB-based TVs above 110 inches, it’s reassuring to hear that there’s a roadmap to popular size points for these exciting new TVs.</p><h2 id="lg-c6">LG C6</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="v8y3iiMbX3mddCd4rGCLPT" name="IMG_0078.JPG" alt="The LG C6 OLED on a wall at LG's demo suite at CES 2026." src="https://cdn.mos.cms.futurecdn.net/v8y3iiMbX3mddCd4rGCLPT.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>It oughtn’t come as a surprise that LG’s latest C Series OLED is on our most-anticipated TV list as we spring into 2026. After all, its predecessor — the LG C5 OLED — was the only TV we bestowed a five-star rating on last year. </p><p>LG's C Series sets have been a perennial pick for parsimonious people seeking high-level performance, and the LG C6 is shaping up to play the same role.</p><div class="product"><a data-dimension112="8d47548a-6271-45e5-ac62-4aa24ea404b3" data-action="Deal Block" data-label="55" C5 4K OLED TV" data-dimension48="55" C5 4K OLED TV" data-dimension25="$1196" href="https://www.bestbuy.com/product/lg-55-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTR8R/sku/6621828" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="PCeNGBKtXCHCv434H6zB2g" name="LG-C5-Vanity-16-by-9" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/PCeNGBKtXCHCv434H6zB2g.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/lg-55-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTR8R/sku/6621828" target="_blank" rel="nofollow" data-dimension112="8d47548a-6271-45e5-ac62-4aa24ea404b3" data-action="Deal Block" data-label='55" C5 4K OLED TV' data-dimension48='55" C5 4K OLED TV' data-dimension25="$1196">55" C5 4K OLED TV: was $1999 now $1196</a></strong><br>We showered this OLED TV with praise for its sensational performance, its class-leading selection of features and its approachable price point. The LG C5 delivers all of the benefits we've come to expect from OLED displays, but its design, software and overall experience is the result of LG's excellent engineering.<a class="view-deal button" href="https://www.bestbuy.com/product/lg-55-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTR8R/sku/6621828" target="_blank" rel="nofollow" data-dimension112="8d47548a-6271-45e5-ac62-4aa24ea404b3" data-action="Deal Block" data-label="55" C5 4K OLED TV" data-dimension48="55" C5 4K OLED TV" data-dimension25="$1196">View Deal</a></p></div><p>Despite its years of success, I’ve longed for a major shake-up to the C Series formula, and this year, we’re getting one — at least for some of the sizes in the series.</p><p>The 77- and 83-inch versions of the LG C6 feature LG Display’s marvelous Tandem OLED panel featuring Hyper Radiant Color technology. That’s a heaping helping of technical jargon that essentially means that the two largest sizes in the series will offer better brightness and color volume than the rest of the sizes in the series.</p><p>In Nick Pino’s hands-on <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c6-oled">LG C6 review</a>, he notes the impact of this upgrade, reporting that the 77-inch C6 features color “as deep here as on any TV [he’s] seen so far at CES.”</p><p>Color me excited.</p>                    <div class= "tiktok-wrapper" style="min-height: 750px;"><blockquote class="tiktok-embed" cite="https://www.tiktok.com/@tomsguide/video/7591939312065760567" data-video-id="7591939312065760567" style="max-width: 605px; min-width: 325px;">                        <section>                            <a target="_blank" title="@tomsguide" href="https://www.tiktok.com/@tomsguide">@tomsguide</a>                            <p></p><a target="_blank" title="♬ original sound - Tom’s Guide" href="https://www.tiktok.com/music/original-sound-7591939500004150030">♬ original sound - Tom’s Guide</a></section>                    </blockquote></div>                <h2 id="samsung-s95h">Samsung S95H</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="cr3Ecxmssgs9ZSYgRwthbH" name="IMG_0036.JPG" alt="The Samsung S95H OLED on right with its new metal bezel." src="https://cdn.mos.cms.futurecdn.net/cr3Ecxmssgs9ZSYgRwthbH.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The S95H is the follow-up to the best OLED TV Samsung has ever made: the <a href="https://www.tomsguide.com/tvs/4k-tvs/samsung-s95f-oled-tv-review">Samsung S95F</a>. This alone makes it one of the most exciting TVs of 2026.</p><p>Like its predecessor, the S95H is sporting a matte screen that nearly eliminates direct glare. It’s certainly not for everyone as the finish can’t help but lift black levels in well-lit rooms, but it’s hard not to go ga-ga over it when viewed in a controlled, home theater-like setting.</p><p>New this year is a swanky, metal bezel and custom wall-mount. This gives the S95H a unique look compared to many of the other wall-mountable OLEDs we’ve come across on the showroom floor this year.</p><h2 id="lg-wallpaper-tv-w6">LG Wallpaper TV (W6)</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4032px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rUtWRhengUu6j9BMsAz2mQ" name="IMG_0052.JPG" alt="The LG Wallpaper OLED at CES 2026" src="https://cdn.mos.cms.futurecdn.net/rUtWRhengUu6j9BMsAz2mQ.jpg" mos="" align="middle" fullscreen="" width="4032" height="2268" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>LG’s ultra-thin, artful OLED TV is back after a several-year hiatus, and we couldn’t be happier to see it return. In his <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-is-bringing-back-an-iconic-oled-tv-design-from-2017-meet-the-lg-oled-evo-w6">LG Wallpaper TV hands-on review</a>, Nick Pino got up close and personal with one of LG’s thinnest OLED TVs to date, noting the set’s surprisingly affordable, yet-to-be-confirmed price.</p><p>Also known as the W6, LG's Wallpaper TV is set to take on the lifestyle TV competitors with the not-so-secret weapon of OLED display technology — something we've not seen much of in this popular subcategory of TV.</p><p>If the W6 proves successful, we could be seeing a new wave of artful, design-forward TVs with OLED-based displays.</p><h2 id="tcl-x11l">TCL X11L</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/WF2A1fPWs44" allowfullscreen></iframe></div></div><p>While brands like Hisense and Samsung are zigging toward an RGB-based future, TCL has chosen to zag. The TCL X11L is a complete reimagining of what it means to be a quantum dot-equipped Mini-LED TV, and my colleague Kate Kozuch is already sold.</p><p>In her <a href="https://www.tomsguide.com/tvs/i-went-hands-on-with-tcls-first-sqd-mini-led-tv-and-it-made-me-forget-about-rgb-tvs">TCL X11L hands-on review</a>, Kate reported that this set features incredible clarity. "Bright whites popped hard against deep blacks without washing out surrounding colors," she said. "Greens, yellows and neon reds looked intensely saturated but controlled, not smeared or glowing past their edges."</p><p>According to its engineers, TCL has reformulated quantum dots entirely and slapped a new color filter and processing algorithm onto the X11L, resulting in its sensational highlights and deep, realistic color.</p><p>TCL claims that this TV reaches an eye-popping 10,000 nits of brightness and covers 100% of the BT.2020 color space. That's <em>nuts</em>.</p><p>You'll have to shell out a good amount of dough for this one, though. The smallest version of the X11L — a 77-inch version — will reportedly start at $6,999. The 85- and 98-inch versions will be even pricier.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/news/live/ces-2026-live-latest-news">CES 2026 LIVE: All the biggest gadget and tech news as it happens</a></li><li><a href="https://www.tomsguide.com/tvs/i-saw-samsungs-2026-flagship-oled-and-micro-rgb-tvs-side-by-side-heres-the-one-i-like-more">I saw Samsung’s 2026 flagship OLED and Micro RGB TVs side by side — here's the one I like more</a></li><li><a href="https://www.tomsguide.com/tvs/oled-tvs/lg-is-bringing-back-an-iconic-oled-tv-design-from-2017-meet-the-lg-oled-evo-w6">We just went hands on with the LG Wallpaper OLED TV — and it's amazingly thin, wireless and actually affordable</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/these-are-the-7-best-tvs-weve-seen-at-ces-2026-from-oleds-to-micro-rgbs</link>
                                                                            <description>
                            <![CDATA[ From new OLEDs to eye-popping Micro RGB TVs, these are the best new TVs we've seen at CES 2026 from brands like Hisense, LG, Samsung and TCL. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">BUUGkvE6zD8orFxixcGbdR</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/RzHADcmaqAnDPmcckHq5xT-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 06 Jan 2026 18:42:19 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[TVs]]></category>
                                                                                                <author><![CDATA[ michael.desjardin@futurenet.com (Michael Desjardin) ]]></author>                    <dc:creator><![CDATA[ Michael Desjardin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/esytxRqW9GNVZNVCf7BFyV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael Desjardin is a Senior Editor for TVs at Tom&#039;s Guide. He&#039;s been testing and tinkering with TVs professionally for over a decade, previously for Reviewed and USA Today. Michael studied media production and screenwriting at Emerson College. He loves cooking, zoning out to ambient music, and getting way too invested in the Red Sox. He considers himself living proof that TV doesn&#039;t necessarily rot your brain.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/RzHADcmaqAnDPmcckHq5xT-1280-80.jpg">
                                                            <media:credit><![CDATA[Samsung]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Samsung R95H displaying colorful, abstract imagery against a neutral-toned, monochromatic background. There is a badge on the top-left corner of the image that reads: &quot;Tom&#039;s Guide CES 2026.&quot;]]></media:description>                                                            <media:text><![CDATA[The Samsung R95H displaying colorful, abstract imagery against a neutral-toned, monochromatic background. There is a badge on the top-left corner of the image that reads: &quot;Tom&#039;s Guide CES 2026.&quot;]]></media:text>
                                <media:title type="plain"><![CDATA[The Samsung R95H displaying colorful, abstract imagery against a neutral-toned, monochromatic background. There is a badge on the top-left corner of the image that reads: &quot;Tom&#039;s Guide CES 2026.&quot;]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/RzHADcmaqAnDPmcckHq5xT-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div  class="fancy-box"><div class="fancy_box-title">Tom's Guide at CES</div><div class="fancy_box_body"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' ><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ta3dXY62nkc8pUxn65nRLY" name="CES 2025" caption="" alt="CES 2025" src="https://cdn.mos.cms.futurecdn.net/ta3dXY62nkc8pUxn65nRLY.jpg" mos="" link="" align="" fullscreen="" width="" height="" attribution="" endorsement="" class="pinterest-pin-exclude"></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p class="fancy-box__body-text">Follow all of our <a data-analytics-id="inline-link" href="https://www.tomsguide.com/news/live/ces-2026-live-latest-news">CES 2026 live coverage </a>for the biggest gadget news straight from Las Vegas. And be sure to follow <a data-analytics-id="inline-link" href="https://www.tiktok.com/@tomsguide" target="_blank">Tom's Guide on TikTok</a> for the coolest videos from the show.</p></div></div><p>We’re live on the scene from <a href="https://www.tomsguide.com/news/live/ces-2026-live-latest-news">CES 2026</a> this week, where the biggest brands in the TV industry have been busy spotlighting their newest screens and innovations. Yes, there are <em>tons</em> of TVs on display, but there are a handful in particular that have caught our eye.</p><p>From upgraded OLEDs to all-new Micro RGB TVs, here’s a round-up of the best sets we’ve seen so far — the TVs that are poised to make a big splash in the coming months.</p><h2 id="samsung-r95h">Samsung R95H</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="URdKN5fEH6akRP9eETbAri" name="IMG_0046.JPG" alt="The Samsung R95H Micro RGB TV" src="https://cdn.mos.cms.futurecdn.net/URdKN5fEH6akRP9eETbAri.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div><blockquote><p>The Samsung R95H is the brand’s latest flagship to flaunt Micro RGB technology.</p></blockquote></div><p>For most of the major TV-makers, CES 2026 has been all about one thing: RGB-based backlighting.</p><p>These teeny-tiny LEDs are smaller than garden-variety Mini-LEDs and create their own red-, green- and blue-colored light instead of relying on a color filter. The result is gobsmackingly gorgeous color — hues that are much brighter and purer than what we’ve come to expect from even the best Mini-LED TVs on the market.</p><p>Samsung has dubbed its take on the technology <em>RGB Micro LED</em>, and the Samsung R95H is the brand’s latest flagship to flaunt it. Nick Pino, managing editor of TV and AV for Tom’s Guide, was lucky enough to go <a href="https://www.tomsguide.com/tvs/i-saw-samsungs-2026-flagship-oled-and-micro-rgb-tvs-side-by-side-heres-the-one-i-like-more">hands-on with the Samsung R95H</a> and walked away impressed.</p><p>“Samsung's R95H is as bright as any Mini-LED TV I’ve seen,” Nick says, noting that the R95H features “a slightly larger color volume” than those Mini-LED-based TVs. He added: “Scenes from ‘The Lord of the Rings: The Rings of Power’ I watched on my <a href="https://www.tomsguide.com/tvs/oled-tvs/samsung-s95d-oled-review">Samsung S95D OLED</a> looked significantly brighter and richer on the R95H.”</p>                    <div class= "tiktok-wrapper" style="min-height: 750px;"><blockquote class="tiktok-embed" cite="https://www.tiktok.com/@tomsguide/video/7591724859332365582" data-video-id="7591724859332365582" style="max-width: 605px; min-width: 325px;">                        <section>                            <a target="_blank" title="@tomsguide" href="https://www.tiktok.com/@tomsguide">@tomsguide</a>                            <p></p><a target="_blank" title="♬ r&b loop - Official Sound Studio" href="https://www.tiktok.com/music/rb-loop-6723099489072057095">♬ r&b loop - Official Sound Studio</a></section>                    </blockquote></div>                <p>As mentioned, the R95H is far from the only TV tapping this tantalizing tech on the showroom floor, but given Samsung's pedigree (including its superb track record for picture processing), it's quickly becoming one of our most-anticipated.</p><h2 id="hisense-ur9-and-ur8">Hisense UR9 and UR8</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mmLVmGnkNV8S3ggacpBvnB" name="Hisense-UR9-RGB-Mini-LED-evo-TV-CES-2026" alt="The Hisense UR9 RGB Mini-LED TV displaying colorful, abstract imagery in a modern living room-like setting." src="https://cdn.mos.cms.futurecdn.net/mmLVmGnkNV8S3ggacpBvnB.jpg" mos="" align="middle" fullscreen="" width="4000" height="2250" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Hisense)</span></figcaption></figure><p>Hisense ain’t messing around this year. After another successful year of selling some of the most competitively priced and value-packed TVs on shelves, the TV-maker has spent the week showcasing its own RGB-based sets — except Hisense is calling its version <em>RGB Mini-LED.</em></p><p>Enter the UR9 and UR8. We don’t know much about these sets just yet (and trust me: I’ve been dying to learn more), but if Hisense’s track record is any indication, there’s a good chance that they’ll be aggressively priced. That’s potentially very good news for shoppers who might be flirting with this cutting-edge display type at some point in 2026.</p><p>While showing off the <a href="https://www.tomsguide.com/tvs/hisense-tv-lineup-2026-new-rgb-mini-led-tvs-and-a-huge-micro-led-upgrade">Hisense 2026 TV lineup</a>, the brand confirmed that, between the UR9 and UR8, screen sizes between 55 and 100 inches will be represented. Given the razzle-dazzle prevalence of RGB-based TVs above 110 inches, it’s reassuring to hear that there’s a roadmap to popular size points for these exciting new TVs.</p><h2 id="lg-c6">LG C6</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="v8y3iiMbX3mddCd4rGCLPT" name="IMG_0078.JPG" alt="The LG C6 OLED on a wall at LG's demo suite at CES 2026." src="https://cdn.mos.cms.futurecdn.net/v8y3iiMbX3mddCd4rGCLPT.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>It oughtn’t come as a surprise that LG’s latest C Series OLED is on our most-anticipated TV list as we spring into 2026. After all, its predecessor — the LG C5 OLED — was the only TV we bestowed a five-star rating on last year. </p><p>LG's C Series sets have been a perennial pick for parsimonious people seeking high-level performance, and the LG C6 is shaping up to play the same role.</p><div class="product"><a data-dimension112="8d47548a-6271-45e5-ac62-4aa24ea404b3" data-action="Deal Block" data-label="55" C5 4K OLED TV" data-dimension48="55" C5 4K OLED TV" data-dimension25="$1196" href="https://www.bestbuy.com/product/lg-55-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTR8R/sku/6621828" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="PCeNGBKtXCHCv434H6zB2g" name="LG-C5-Vanity-16-by-9" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/PCeNGBKtXCHCv434H6zB2g.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/lg-55-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTR8R/sku/6621828" target="_blank" rel="nofollow" data-dimension112="8d47548a-6271-45e5-ac62-4aa24ea404b3" data-action="Deal Block" data-label='55" C5 4K OLED TV' data-dimension48='55" C5 4K OLED TV' data-dimension25="$1196">55" C5 4K OLED TV: was $1999 now $1196</a></strong><br>We showered this OLED TV with praise for its sensational performance, its class-leading selection of features and its approachable price point. The LG C5 delivers all of the benefits we've come to expect from OLED displays, but its design, software and overall experience is the result of LG's excellent engineering.<a class="view-deal button" href="https://www.bestbuy.com/product/lg-55-class-c5-series-oled-evo-ai-4k-uhd-smart-webos-tv-2025/JJ8VPZTR8R/sku/6621828" target="_blank" rel="nofollow" data-dimension112="8d47548a-6271-45e5-ac62-4aa24ea404b3" data-action="Deal Block" data-label="55" C5 4K OLED TV" data-dimension48="55" C5 4K OLED TV" data-dimension25="$1196">View Deal</a></p></div><p>Despite its years of success, I’ve longed for a major shake-up to the C Series formula, and this year, we’re getting one — at least for some of the sizes in the series.</p><p>The 77- and 83-inch versions of the LG C6 feature LG Display’s marvelous Tandem OLED panel featuring Hyper Radiant Color technology. That’s a heaping helping of technical jargon that essentially means that the two largest sizes in the series will offer better brightness and color volume than the rest of the sizes in the series.</p><p>In Nick Pino’s hands-on <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c6-oled">LG C6 review</a>, he notes the impact of this upgrade, reporting that the 77-inch C6 features color “as deep here as on any TV [he’s] seen so far at CES.”</p><p>Color me excited.</p>                    <div class= "tiktok-wrapper" style="min-height: 750px;"><blockquote class="tiktok-embed" cite="https://www.tiktok.com/@tomsguide/video/7591939312065760567" data-video-id="7591939312065760567" style="max-width: 605px; min-width: 325px;">                        <section>                            <a target="_blank" title="@tomsguide" href="https://www.tiktok.com/@tomsguide">@tomsguide</a>                            <p></p><a target="_blank" title="♬ original sound - Tom’s Guide" href="https://www.tiktok.com/music/original-sound-7591939500004150030">♬ original sound - Tom’s Guide</a></section>                    </blockquote></div>                <h2 id="samsung-s95h">Samsung S95H</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="cr3Ecxmssgs9ZSYgRwthbH" name="IMG_0036.JPG" alt="The Samsung S95H OLED on right with its new metal bezel." src="https://cdn.mos.cms.futurecdn.net/cr3Ecxmssgs9ZSYgRwthbH.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The S95H is the follow-up to the best OLED TV Samsung has ever made: the <a href="https://www.tomsguide.com/tvs/4k-tvs/samsung-s95f-oled-tv-review">Samsung S95F</a>. This alone makes it one of the most exciting TVs of 2026.</p><p>Like its predecessor, the S95H is sporting a matte screen that nearly eliminates direct glare. It’s certainly not for everyone as the finish can’t help but lift black levels in well-lit rooms, but it’s hard not to go ga-ga over it when viewed in a controlled, home theater-like setting.</p><p>New this year is a swanky, metal bezel and custom wall-mount. This gives the S95H a unique look compared to many of the other wall-mountable OLEDs we’ve come across on the showroom floor this year.</p><h2 id="lg-wallpaper-tv-w6">LG Wallpaper TV (W6)</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4032px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rUtWRhengUu6j9BMsAz2mQ" name="IMG_0052.JPG" alt="The LG Wallpaper OLED at CES 2026" src="https://cdn.mos.cms.futurecdn.net/rUtWRhengUu6j9BMsAz2mQ.jpg" mos="" align="middle" fullscreen="" width="4032" height="2268" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>LG’s ultra-thin, artful OLED TV is back after a several-year hiatus, and we couldn’t be happier to see it return. In his <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-is-bringing-back-an-iconic-oled-tv-design-from-2017-meet-the-lg-oled-evo-w6">LG Wallpaper TV hands-on review</a>, Nick Pino got up close and personal with one of LG’s thinnest OLED TVs to date, noting the set’s surprisingly affordable, yet-to-be-confirmed price.</p><p>Also known as the W6, LG's Wallpaper TV is set to take on the lifestyle TV competitors with the not-so-secret weapon of OLED display technology — something we've not seen much of in this popular subcategory of TV.</p><p>If the W6 proves successful, we could be seeing a new wave of artful, design-forward TVs with OLED-based displays.</p><h2 id="tcl-x11l">TCL X11L</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/WF2A1fPWs44" allowfullscreen></iframe></div></div><p>While brands like Hisense and Samsung are zigging toward an RGB-based future, TCL has chosen to zag. The TCL X11L is a complete reimagining of what it means to be a quantum dot-equipped Mini-LED TV, and my colleague Kate Kozuch is already sold.</p><p>In her <a href="https://www.tomsguide.com/tvs/i-went-hands-on-with-tcls-first-sqd-mini-led-tv-and-it-made-me-forget-about-rgb-tvs">TCL X11L hands-on review</a>, Kate reported that this set features incredible clarity. "Bright whites popped hard against deep blacks without washing out surrounding colors," she said. "Greens, yellows and neon reds looked intensely saturated but controlled, not smeared or glowing past their edges."</p><p>According to its engineers, TCL has reformulated quantum dots entirely and slapped a new color filter and processing algorithm onto the X11L, resulting in its sensational highlights and deep, realistic color.</p><p>TCL claims that this TV reaches an eye-popping 10,000 nits of brightness and covers 100% of the BT.2020 color space. That's <em>nuts</em>.</p><p>You'll have to shell out a good amount of dough for this one, though. The smallest version of the X11L — a 77-inch version — will reportedly start at $6,999. The 85- and 98-inch versions will be even pricier.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/news/live/ces-2026-live-latest-news">CES 2026 LIVE: All the biggest gadget and tech news as it happens</a></li><li><a href="https://www.tomsguide.com/tvs/i-saw-samsungs-2026-flagship-oled-and-micro-rgb-tvs-side-by-side-heres-the-one-i-like-more">I saw Samsung’s 2026 flagship OLED and Micro RGB TVs side by side — here's the one I like more</a></li><li><a href="https://www.tomsguide.com/tvs/oled-tvs/lg-is-bringing-back-an-iconic-oled-tv-design-from-2017-meet-the-lg-oled-evo-w6">We just went hands on with the LG Wallpaper OLED TV — and it's amazingly thin, wireless and actually affordable</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Does your TV's processor actually matter? Here's what it really does ]]></title>
                                                                                                <dc:content><![CDATA[ <p>TV processors are basically the brain of your TV. They're similar in nature to your computer's CPU, and they handle speed, multitasking, and overall performance. </p><p>While TV manufacturers have been better about advertising the processor, most people don't know what a TV's processor is actually <em>for</em>. There are plenty of tasks that TV processors take care of, but not all of those tasks will have much of an impact on your day-to-day experience with your TV. Here's why you need to pay attention to them when shopping for a new TV.</p><h2 id="what-does-a-processor-do-exactly">What does a processor do exactly?</h2><p>Whether you're buying the <a href="https://www.tomsguide.com/tvs/oled-tvs/best-oled-tvs">best OLED</a> or a <a href="https://www.tomsguide.com/best-picks/best-budget-tvs">budget TV</a>, a TV's processor is the microchip that handles all computational tasks on your smart TV. It runs the TV's operating system, processes commands from your remote or voice assistant, runs streaming apps, upscales and improves content to look better on the screen, and coordinates all the smart features you'd expect from a modern TV.</p><p>The processor also manages energy efficiency. More advanced processors often deliver better performance while using less power, which means a lower energy bill at the end of the month. High-end processors are designed to balance processing power with energy efficiency, preventing overheating during intensive tasks like 4K streaming or gaming while keeping everything responsive.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:900px;"><p class="vanilla-image-block" style="padding-top:56.22%;"><img id="bZVJf6RuXBkCxv4CP3KX6i" name="LG a9 Processor AI.jpg" alt="The LG Alpha a9 AI Processor Gen 7" src="https://cdn.mos.cms.futurecdn.net/bZVJf6RuXBkCxv4CP3KX6i.jpg" mos="" align="middle" fullscreen="" width="900" height="506" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: LG)</span></figcaption></figure><p>Perhaps the most obvious use for a TV's processor is in its handling of built-in software. A TV's processor has a huge impact on software performance — and if it's doing its job well, you won't notice it at all. </p><p>When you open Netflix, YouTube, or any other streaming app, the processor determines how quickly it loads and how smoothly it runs. A more powerful processor can shave several seconds off load times and make navigation feel more responsive. If your TV feels slow right out of the box, that means that it probably has an underperforming processor.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uitP29WyfaomHeLZ2RpQf9" name="TG_LG-G5-TV-18" alt="The LG G5 OLED at Tom's Guide's Labs." src="https://cdn.mos.cms.futurecdn.net/uitP29WyfaomHeLZ2RpQf9.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Voice control features put additional demands on processors. Features like Google's Gemini or Alexa integration require significant processing power to quickly recognize, interpret, and act on voice commands. Lower-end processors may result in delayed responses or reduced accuracy.</p><p>The difference between budget and premium processors is most apparent during multitasking — when your TV is running background processes while you navigate menus, or when you're switching between multiple apps. Budget processors might struggle, causing noticeable stuttering. Premium chips handle these tasks smoothly. </p><h2 id="how-do-processors-affect-picture-performance">How do processors affect picture performance?</h2><p>Perhaps even more important than how a TV's processor handles software is how it handles <em>image</em> processing. </p><div><blockquote><p>When you're watching content at a lower resolution than your TV's native display, like watching 1080p content on a 4K screen, the processor has to intelligently add pixels to fill the screen.</p></blockquote></div><p>Upscaling is one of the more important jobs of a modern high-end TV processor. When you're watching content at a lower resolution than your TV's native display, like watching 1080p content on a 4K screen, the processor has to intelligently add pixels to fill the screen. </p><p>Premium processors can analyze content in real-time, enhancing details while minimizing artifacts, resulting in sharper, more natural-looking images that look like they were actually shot in 4K. That's especially important when watching older broadcasts, DVDs, or non-4K streaming content. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1645px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="5U9beSaGUy529i6hVHtFWC" name="TG_Sony-Bravia-9-7.jpg" alt="Sony Bravia 9 in living room" src="https://cdn.mos.cms.futurecdn.net/5U9beSaGUy529i6hVHtFWC.jpg" mos="" align="middle" fullscreen="" width="1645" height="925" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If you primarily watch 4K content, that doesn't mean your TV's processor is inactive though. Motion processing is another area where processor capabilities directly impact viewing quality. During fast-moving scenes in sports or action movies, less capable processors may produce motion blur or judder. </p><p>Advanced processors use sophisticated algorithms to analyze movement and insert additional frames where needed, resulting in smoother motion without the artificial "soap opera effect" that plagued earlier motion-smoothing technologies.</p><p>Processors also handle color management, contrast enhancement, and noise reduction — all of which contribute to the perceived sharpness and clarity of the image. The panel technology (OLED, QLED, etc.) establishes the baseline capabilities of a display, but it's the processor that determines how effectively those capabilities are utilized.</p><h2 id="gamers-also-have-a-reason-to-care-about-the-processor">Gamers also have a reason to care about the processor</h2><p>For gamers, a TV's processor has a significant impact on the overall gaming experience. </p><div><blockquote><p>Premium processors can reduce this lag to under 10 milliseconds in game mode on some top TVs.</p></blockquote></div><p>Input lag, for example, can be a concern. Input lag is the delay between pressing a button on your controller and seeing the action on screen. That lag is directly influenced by how quickly the processor can handle incoming signals. Premium processors can reduce this lag to under 10 milliseconds in game mode on some top TVs.</p><p>Modern gaming-focused processors also support advanced features like 120Hz refresh rates and Variable Refresh Rate (VRR) technology. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="ciAFumyJ9rJtKDsEydf2X3" name="Samsung QN90F TV--03" alt="Samsung QN90F Neo QLED TV in a living room" src="https://cdn.mos.cms.futurecdn.net/ciAFumyJ9rJtKDsEydf2X3.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>These features ensure smooth gameplay by syncing the TV's refresh rate with the game console's output, preventing screen tearing and stuttering during graphically intense sequences. Samsung's Quantum Processor 4K that's used by the <a href="https://www.tomsguide.com/tvs/4k-tvs/samsung-s95f-oled-tv-review">S95F OLED</a>, for example, has been specifically optimized to support these gaming-centric features.</p><p>And, advanced processors can also better handle HDR gaming content, which requires real-time tone mapping to display the extended brightness range correctly. This ensures that games with HDR support display with appropriate contrast and color accuracy, revealing details in both shadows and highlights that might otherwise be lost.</p><h2 id="so-which-tvs-have-the-best-processors">So which TVs have the best processors?</h2><p>Modern TV processors range from dual-core chips in budget models to octa-core (eight-core) processors in premium displays. More cores generally allow for better multitasking, with different cores handling separate functions simultaneously — for example, one core might manage the user interface while another handles video processing and a third monitors network connectivity.</p><p>Several TV manufacturers have developed proprietary processors that showcase their particular strengths. Sony's X1 processors on its <a href="https://www.tomsguide.com/tvs/oled-tvs/sony-bravia-8-ii-review">Bravia 8 II OLED</a> and <a href="https://www.tomsguide.com/tvs/sony-bravia-9-tv-review">Bravia 9 TV</a> use AI to process content the way humans see and hear, focusing on the focal points that naturally draw human attention. </p><p>LG's Alpha 11 AI processor on the new <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-g5-oled-tv-review">LG G5 OLED</a> excels at upscaling and HDR tone mapping, while TCL's AiPQ processor found on the <a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review">TCL QM8K</a> and <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review">QM7K</a> delivers impressive AI-driven picture enhancements at more accessible price points.</p><p>In general, budget TVs have processors that can handle basic smart TV functions but may struggle with complex tasks. Mid-range TV processors deliver solid performance for most viewers. High-end TV processors offer premium features like advanced AI processing, superior upscaling, and enhanced gaming support.</p><p>In other words, if you're spending the cash on a high-end TV, expect great performance. And, if you're shopping on a budget, at least be aware that the software may not be quite as fast, or be willing to buy an external streamer like the <a href="https://www.tomsguide.com/reviews/apple-tv-4k-2022">Apple TV 4K</a>.</p><div data-widget-type="multimodelreview" data-model-name="TCL QM7K Mini-LED TV,TCL 65QM8K,Sony Bravia 8 II QD-OLED TV,Sony Bravia 9 TV,LG G5 65-inch" data-widget-title="Today's best TV deals"></div><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/theres-one-thing-hisense-needs-to-improve-about-its-tvs-in-2025-otherwise-im-shopping-for-alternatives">I test TVs for a living — and Hisense needs to improve its TVs in one way before I recommend them</a></li><li><a href="https://www.tomsguide.com/tvs/samsung-just-dropped-the-first-ever-micro-rgb-tv-and-its-a-total-game-changer">Samsung just dropped the first ever Micro RGB TV — and it's a total game changer</a></li><li><a href="https://www.tomsguide.com/tvs/im-a-tv-expert-and-this-is-the-one-picture-mode-you-should-avoid-at-all-costs">I'm a TV expert and this is the one picture mode you should avoid at all costs</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tvs/does-your-tvs-processor-actually-matter-heres-what-it-really-does</link>
                                                                            <description>
                            <![CDATA[ Just like your computer's processor, TV processors handle speed, multitasking, and overall performance. Here's why you should pay more attention to them. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">DDmaiFkhA6GSXr8bGasUcN</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/7heR6VM8xbQ5GM7rXYADh9-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 31 Dec 2025 12:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[TVs]]></category>
                                                                                                                    <dc:creator><![CDATA[ Christian de Looper ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/cyHuThvGLCKTfcMnWJiY4Y.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Christian de Looper is a freelance writer who has covered every facet of consumer tech, including mobile, audio, home theater, computing, gaming, and even car tech. At Tom’s Guide, Christian covers TV and home theater tech, and has reviewed dozens of TVs, soundbars, and A/V receivers, including those from the likes of Samsung, Hisense, TCL, and Vizio. Christian has also covered numerous industry events, from CES to F8, and is an expert at writing reviews, buying guides, and news. Outside of Tom’s Guide, Christian’s byline can be seen at TechRadar, Forbes, Digital Trends, Business Insider, and more. Follow Christian on Twitter to keep up with all his tech coverage.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/7heR6VM8xbQ5GM7rXYADh9-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The LG G5 OLED at Tom&#039;s Guide&#039;s Labs.]]></media:description>                                                            <media:text><![CDATA[The LG G5 OLED at Tom&#039;s Guide&#039;s Labs.]]></media:text>
                                <media:title type="plain"><![CDATA[The LG G5 OLED at Tom&#039;s Guide&#039;s Labs.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/7heR6VM8xbQ5GM7rXYADh9-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>TV processors are basically the brain of your TV. They're similar in nature to your computer's CPU, and they handle speed, multitasking, and overall performance. </p><p>While TV manufacturers have been better about advertising the processor, most people don't know what a TV's processor is actually <em>for</em>. There are plenty of tasks that TV processors take care of, but not all of those tasks will have much of an impact on your day-to-day experience with your TV. Here's why you need to pay attention to them when shopping for a new TV.</p><h2 id="what-does-a-processor-do-exactly">What does a processor do exactly?</h2><p>Whether you're buying the <a href="https://www.tomsguide.com/tvs/oled-tvs/best-oled-tvs">best OLED</a> or a <a href="https://www.tomsguide.com/best-picks/best-budget-tvs">budget TV</a>, a TV's processor is the microchip that handles all computational tasks on your smart TV. It runs the TV's operating system, processes commands from your remote or voice assistant, runs streaming apps, upscales and improves content to look better on the screen, and coordinates all the smart features you'd expect from a modern TV.</p><p>The processor also manages energy efficiency. More advanced processors often deliver better performance while using less power, which means a lower energy bill at the end of the month. High-end processors are designed to balance processing power with energy efficiency, preventing overheating during intensive tasks like 4K streaming or gaming while keeping everything responsive.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:900px;"><p class="vanilla-image-block" style="padding-top:56.22%;"><img id="bZVJf6RuXBkCxv4CP3KX6i" name="LG a9 Processor AI.jpg" alt="The LG Alpha a9 AI Processor Gen 7" src="https://cdn.mos.cms.futurecdn.net/bZVJf6RuXBkCxv4CP3KX6i.jpg" mos="" align="middle" fullscreen="" width="900" height="506" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: LG)</span></figcaption></figure><p>Perhaps the most obvious use for a TV's processor is in its handling of built-in software. A TV's processor has a huge impact on software performance — and if it's doing its job well, you won't notice it at all. </p><p>When you open Netflix, YouTube, or any other streaming app, the processor determines how quickly it loads and how smoothly it runs. A more powerful processor can shave several seconds off load times and make navigation feel more responsive. If your TV feels slow right out of the box, that means that it probably has an underperforming processor.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uitP29WyfaomHeLZ2RpQf9" name="TG_LG-G5-TV-18" alt="The LG G5 OLED at Tom's Guide's Labs." src="https://cdn.mos.cms.futurecdn.net/uitP29WyfaomHeLZ2RpQf9.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Voice control features put additional demands on processors. Features like Google's Gemini or Alexa integration require significant processing power to quickly recognize, interpret, and act on voice commands. Lower-end processors may result in delayed responses or reduced accuracy.</p><p>The difference between budget and premium processors is most apparent during multitasking — when your TV is running background processes while you navigate menus, or when you're switching between multiple apps. Budget processors might struggle, causing noticeable stuttering. Premium chips handle these tasks smoothly. </p><h2 id="how-do-processors-affect-picture-performance">How do processors affect picture performance?</h2><p>Perhaps even more important than how a TV's processor handles software is how it handles <em>image</em> processing. </p><div><blockquote><p>When you're watching content at a lower resolution than your TV's native display, like watching 1080p content on a 4K screen, the processor has to intelligently add pixels to fill the screen.</p></blockquote></div><p>Upscaling is one of the more important jobs of a modern high-end TV processor. When you're watching content at a lower resolution than your TV's native display, like watching 1080p content on a 4K screen, the processor has to intelligently add pixels to fill the screen. </p><p>Premium processors can analyze content in real-time, enhancing details while minimizing artifacts, resulting in sharper, more natural-looking images that look like they were actually shot in 4K. That's especially important when watching older broadcasts, DVDs, or non-4K streaming content. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1645px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="5U9beSaGUy529i6hVHtFWC" name="TG_Sony-Bravia-9-7.jpg" alt="Sony Bravia 9 in living room" src="https://cdn.mos.cms.futurecdn.net/5U9beSaGUy529i6hVHtFWC.jpg" mos="" align="middle" fullscreen="" width="1645" height="925" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If you primarily watch 4K content, that doesn't mean your TV's processor is inactive though. Motion processing is another area where processor capabilities directly impact viewing quality. During fast-moving scenes in sports or action movies, less capable processors may produce motion blur or judder. </p><p>Advanced processors use sophisticated algorithms to analyze movement and insert additional frames where needed, resulting in smoother motion without the artificial "soap opera effect" that plagued earlier motion-smoothing technologies.</p><p>Processors also handle color management, contrast enhancement, and noise reduction — all of which contribute to the perceived sharpness and clarity of the image. The panel technology (OLED, QLED, etc.) establishes the baseline capabilities of a display, but it's the processor that determines how effectively those capabilities are utilized.</p><h2 id="gamers-also-have-a-reason-to-care-about-the-processor">Gamers also have a reason to care about the processor</h2><p>For gamers, a TV's processor has a significant impact on the overall gaming experience. </p><div><blockquote><p>Premium processors can reduce this lag to under 10 milliseconds in game mode on some top TVs.</p></blockquote></div><p>Input lag, for example, can be a concern. Input lag is the delay between pressing a button on your controller and seeing the action on screen. That lag is directly influenced by how quickly the processor can handle incoming signals. Premium processors can reduce this lag to under 10 milliseconds in game mode on some top TVs.</p><p>Modern gaming-focused processors also support advanced features like 120Hz refresh rates and Variable Refresh Rate (VRR) technology. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="ciAFumyJ9rJtKDsEydf2X3" name="Samsung QN90F TV--03" alt="Samsung QN90F Neo QLED TV in a living room" src="https://cdn.mos.cms.futurecdn.net/ciAFumyJ9rJtKDsEydf2X3.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>These features ensure smooth gameplay by syncing the TV's refresh rate with the game console's output, preventing screen tearing and stuttering during graphically intense sequences. Samsung's Quantum Processor 4K that's used by the <a href="https://www.tomsguide.com/tvs/4k-tvs/samsung-s95f-oled-tv-review">S95F OLED</a>, for example, has been specifically optimized to support these gaming-centric features.</p><p>And, advanced processors can also better handle HDR gaming content, which requires real-time tone mapping to display the extended brightness range correctly. This ensures that games with HDR support display with appropriate contrast and color accuracy, revealing details in both shadows and highlights that might otherwise be lost.</p><h2 id="so-which-tvs-have-the-best-processors">So which TVs have the best processors?</h2><p>Modern TV processors range from dual-core chips in budget models to octa-core (eight-core) processors in premium displays. More cores generally allow for better multitasking, with different cores handling separate functions simultaneously — for example, one core might manage the user interface while another handles video processing and a third monitors network connectivity.</p><p>Several TV manufacturers have developed proprietary processors that showcase their particular strengths. Sony's X1 processors on its <a href="https://www.tomsguide.com/tvs/oled-tvs/sony-bravia-8-ii-review">Bravia 8 II OLED</a> and <a href="https://www.tomsguide.com/tvs/sony-bravia-9-tv-review">Bravia 9 TV</a> use AI to process content the way humans see and hear, focusing on the focal points that naturally draw human attention. </p><p>LG's Alpha 11 AI processor on the new <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-g5-oled-tv-review">LG G5 OLED</a> excels at upscaling and HDR tone mapping, while TCL's AiPQ processor found on the <a href="https://www.tomsguide.com/tvs/8k-tvs/tcl-qm8k-qd-mini-led-tv-review">TCL QM8K</a> and <a href="https://www.tomsguide.com/tvs/4k-tvs/tcl-qm7k-qd-mini-led-tv-review">QM7K</a> delivers impressive AI-driven picture enhancements at more accessible price points.</p><p>In general, budget TVs have processors that can handle basic smart TV functions but may struggle with complex tasks. Mid-range TV processors deliver solid performance for most viewers. High-end TV processors offer premium features like advanced AI processing, superior upscaling, and enhanced gaming support.</p><p>In other words, if you're spending the cash on a high-end TV, expect great performance. And, if you're shopping on a budget, at least be aware that the software may not be quite as fast, or be willing to buy an external streamer like the <a href="https://www.tomsguide.com/reviews/apple-tv-4k-2022">Apple TV 4K</a>.</p><div data-widget-type="multimodelreview" data-model-name="TCL QM7K Mini-LED TV,TCL 65QM8K,Sony Bravia 8 II QD-OLED TV,Sony Bravia 9 TV,LG G5 65-inch" data-widget-title="Today's best TV deals"></div><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/tvs/theres-one-thing-hisense-needs-to-improve-about-its-tvs-in-2025-otherwise-im-shopping-for-alternatives">I test TVs for a living — and Hisense needs to improve its TVs in one way before I recommend them</a></li><li><a href="https://www.tomsguide.com/tvs/samsung-just-dropped-the-first-ever-micro-rgb-tv-and-its-a-total-game-changer">Samsung just dropped the first ever Micro RGB TV — and it's a total game changer</a></li><li><a href="https://www.tomsguide.com/tvs/im-a-tv-expert-and-this-is-the-one-picture-mode-you-should-avoid-at-all-costs">I'm a TV expert and this is the one picture mode you should avoid at all costs</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
            </channel>
</rss>