You've probably heard about PHP2Shell and how this freshly emerged security issue affects a ton of websites, as well as warnings on how website owners need to urgently apply patches to fix this.It sounds like a big deal – and it is – so you've likely got questions. Maybe for starters: what is PHP2Shell exactly and what does it affect? And what does it mean for you as someone using a web browser today – is it not safe to visit some websites now?This article aims to provide answers to the common questions about PHP2Shell and explain all the key points that you need to know about this vulnerability (well, actually it's two vulnerabilities to be precise).What is PHP2Shell?PHP2Shell is the name given to a security flaw in the PHP programming language that's used by many websites and web applications across the globe. In fact, PHP is used by almost 70% of websites as Wikipedia estimates, and it's employed in the likes of WordPress, Drupal, Joomla, and other common systems that drive websites – which is why the possible impact is so widespread.In practical terms, attackers could potentially execute malicious code on affected systems, including the deployment of web shells, thereby gaining control over vulnerable servers.Sergey Lozhkin, Head of Research Center for APAC and META at KasperskyIt consists of two separate memory-related vulnerabilities labelled CVE-2026-109618 and CVE-2026-109619. These flaws in the way PHP works could be exploited by a malicious attacker to compromise a site that's using PHP (which is the majority of the web, as noted), and potentially this could lead to the ability to remotely execute code.It's a serious incident with these vulnerabilities being rated as 9.2 out of 10 for severity.What happens if an attacker manages to exploit a website using these vulnerabilities?Sergey Lozhkin, Head of Research Center for APAC and META at Kaspersky GReAT, explained to TechRadar: "The potential impact is considerable: if successfully exploited, this vulnerability could enable remote code execution, one of the most serious forms of cyber compromise. In practical terms, attackers could potentially execute malicious code on affected systems, including the deployment of web shells, thereby gaining control over vulnerable servers."In other words, the attacker could run their own code and alter the content of a website to nefarious ends (stealing data for example), or redirect you to their own malicious site for phishing purposes (or even directly installing malware).Has PHP2Shell been exploited yet?PHP2Shell has been a trickier customer than expected because these vulnerabilities were disclosed before the official announcement of the security issue was made. As we reported yesterday, someone leaked the details of these flaws on the Hacker News forum before the embargoed announcement happened, leaving security experts scrambling to get defenses in place more quickly than they anticipated.This meant that there were early attempts to exploit PHP2Shell, and indeed one of those dates back to before the flaw was even leaked (let alone announced). According to Amazon Threat Intelligence, an attempt at exploitation was made as early as October 17, although it "remains unclear how the actor acquired exploit information prior to disclosure."As Malwarebytes points out, Dane Knecht, the chief technology officer at Cloudflare, reported "early attacks emerging" too, before the PHP team rolled out patches to fix the security holes.Amazon Threat Intelligence warns that: "PHP2Shell is now being broadly exploited in the wild."@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); #fv-chart-1792671802767-4hwzi52pd *, #fv-chart-1792671802767-4hwzi52pd *:before, #fv-chart-1792671802767-4hwzi52pd *:after, #fv-chart-1792671802767-4hwzi52pd-slideshow *, #fv-chart-1792671802767-4hwzi52pd-slideshow *:before, #fv-chart-1792671802767-4hwzi52pd-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792671802767-4hwzi52pd, #fv-chart-1792671802767-4hwzi52pd-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792671802767-4hwzi52pd { position: relative !important; overflow: visible !important; --riv-primary: #2E6E93; } #fv-chart-1792671802767-4hwzi52pd .fv-inner-wrapper { color: #1F2937 !important; background-color: #ffffff !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } #fv-chart-1792671802767-4hwzi52pd .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792671802767-4hwzi52pd.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792671802767-4hwzi52pd.fv-full-bleed .fv-inner-wrapper { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792671802767-4hwzi52pd .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792671802767-4hwzi52pd-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #2E6E93; } #fv-chart-1792671802767-4hwzi52pd-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792671802767-4hwzi52pd-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792671802767-4hwzi52pd-slideshow .fv-slideshow-nav-row { position: relative !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 0 16px 0 !important; width: 100% !important; z-index: 20 !important; } #fv-chart-1792671802767-4hwzi52pd-slideshow .fv-nav-btn { background-color: var(--riv-primary) !important; color: #ffffff !important; border: none !important; border-radius: 4px !important; padding: 8px 16px !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; transition: opacity 0.2s, background-color 0.2s !important; height: 36px !important; text-transform: none !important; box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important; } #fv-chart-1792671802767-4hwzi52pd-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792671802767-4hwzi52pd-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792671802767-4hwzi52pd-slideshow .fv-nav-btn.disabled, #fv-chart-1792671802767-4hwzi52pd-slideshow .fv-nav-btn:disabled { background-color: #E5E7EB !important; color: #9CA3AF !important; cursor: default !important; pointer-events: none !important; box-shadow: none !important; } #fv-chart-1792671802767-4hwzi52pd-slideshow .fv-slide-counter { font-family: 'Poppins', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; text-align: center !important; min-width: 40px !important; background-color: rgba(255,255,255,0.8) !important; padding: 2px 8px !important; border-radius: 10px !important; user-select: none !important; } #fv-chart-1792671802767-4hwzi52pd-slideshow .fv-slideshow-select { position: absolute !important; top: 10px !important; right: 10px !important; z-index: 20 !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background-color: white !important; border: 1px solid #d1d5db !important; color: #1F2937 !important; font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; padding: 6px 32px 6px 12px !important; border-radius: 4px !important; cursor: pointer !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 0.5rem center !important; background-repeat: no-repeat !important; background-size: 1.5em 1.5em !important; } #fv-chart-1792671802767-4hwzi52pd-slideshow .fv-slideshow-select:focus { outline: 2px solid #2E6E93 !important; border-color: #2E6E93 !important; } @keyframes fv-fade-in { from { opacity: 0; } to { opacity: 1; } } #fv-chart-1792671802767-4hwzi52pd .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: var(--riv-primary) !important; font-size: 20px !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; padding: 0 20px !important; } #fv-chart-1792671802767-4hwzi52pd .fv-chart-subhead { font-size: 18px !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #374151 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; padding: 0 20px !important; } #fv-chart-1792671802767-4hwzi52pd .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; } @keyframes fv-grow-max-width { from { max-width: 0; } to { max-width: 100%; } } #fv-chart-1792671802767-4hwzi52pd .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; } #fv-chart-1792671802767-4hwzi52pd .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792671802767-4hwzi52pd .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; } #fv-chart-1792671802767-4hwzi52pd .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792671802767-4hwzi52pd .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792671802767-4hwzi52pd .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792671802767-4hwzi52pd .fv-dropdown-title { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: transparent !important; border: none !important; font-size: 18px !important; font-weight: 600 !important; color: var(--riv-primary) !important; padding-right: 28px !important; padding-left: 10px !important; cursor: pointer !important; text-align: center !important; text-align-last: center !important; width: auto !important; max-width: 100% !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; margin: 0 !important; text-overflow: ellipsis !important; overflow: hidden !important; white-space: nowrap !important; } #fv-chart-1792671802767-4hwzi52pd .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792671802767-4hwzi52pd .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792671802767-4hwzi52pd .fv-dropdown-chevron { position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) !important; pointer-events: none !important; color: var(--riv-primary) !important; display: flex !important; align-items: center !important; } #fv-chart-1792671802767-4hwzi52pd .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1792671802767-4hwzi52pd .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792671802767-4hwzi52pd .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792671802767-4hwzi52pd .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792671802767-4hwzi52pd .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1792671802767-4hwzi52pd .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792671802767-4hwzi52pd .fv-multi-value-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 12px 24px !important; margin-bottom: 1.5rem !important; padding: 0 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792671802767-4hwzi52pd .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792671802767-4hwzi52pd .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; word-wrap: break-word !important; max-width: 100% !important; } #fv-chart-1792671802767-4hwzi52pd .fv-bar-row, #fv-chart-1792671802767-4hwzi52pd .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792671802767-4hwzi52pd .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1792671802767-4hwzi52pd .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1792671802767-4hwzi52pd .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; } #fv-chart-1792671802767-4hwzi52pd.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792671802767-4hwzi52pd.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792671802767-4hwzi52pd.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792671802767-4hwzi52pd .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; } #fv-chart-1792671802767-4hwzi52pd .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; } #fv-chart-1792671802767-4hwzi52pd .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792671802767-4hwzi52pd .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; } #fv-chart-1792671802767-4hwzi52pd .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792671802767-4hwzi52pd .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792671802767-4hwzi52pd .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792671802767-4hwzi52pd .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792671802767-4hwzi52pd .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1792671802767-4hwzi52pd .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792671802767-4hwzi52pd .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792671802767-4hwzi52pd .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792671802767-4hwzi52pd .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792671802767-4hwzi52pd .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; } #fv-chart-1792671802767-4hwzi52pd .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792671802767-4hwzi52pd .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792671802767-4hwzi52pd .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792671802767-4hwzi52pd .fv-dials-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important; gap: 1.5rem 1rem !important; width: 100% !important; margin: 0.75rem 0 1.25rem !important; align-items: start !important; justify-items: center !important; } #fv-chart-1792671802767-4hwzi52pd .fv-dial-card { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; width: 100% !important; max-width: 220px !important; } #fv-chart-1792671802767-4hwzi52pd .fv-dial-title { font-family: 'Poppins', 'Open Sans', sans-serif !important; font-size: 18px !important; font-weight: 700 !important; color: #2b2b2b !important; line-height: 1.25 !important; margin-bottom: 0.35rem !important; text-align: center !important; width: 100% !important; overflow-wrap: break-word !important; text-transform: none !important; } #fv-chart-1792671802767-4hwzi52pd .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792671802767-4hwzi52pd .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792671802767-4hwzi52pd .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792671802767-4hwzi52pd .fv-dial-commentary { margin-top: 0.35rem !important; font-size: 13px !important; line-height: 1.45 !important; color: #4B5563 !important; text-align: center !important; width: 100% !important; padding: 0 4px !important; font-family: 'Open Sans', sans-serif !important; word-wrap: break-word !important; } #fv-chart-1792671802767-4hwzi52pd.preview-wrapper .fv-dial-commentary-input { min-height: 22px !important; border: 1px dashed transparent !important; border-radius: 4px !important; transition: border-color 0.15s ease, background-color 0.15s ease !important; } #fv-chart-1792671802767-4hwzi52pd.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792671802767-4hwzi52pd.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792671802767-4hwzi52pd .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792671802767-4hwzi52pd .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792671802767-4hwzi52pd .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792671802767-4hwzi52pd .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792671802767-4hwzi52pd .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1792671802767-4hwzi52pd .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792671802767-4hwzi52pd .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1792671802767-4hwzi52pd .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-container { position: relative !important; width: auto !important; display: block !important; background-color: transparent !important; overflow: hidden !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-wrapper { position: relative !important; width: auto !important; display: block !important; margin: 0 auto !important; } #fv-chart-1792671802767-4hwzi52pd.fv-full-bleed .fv-ia-container { width: 100% !important; } #fv-chart-1792671802767-4hwzi52pd.fv-full-bleed .fv-ia-wrapper { width: 100% !important; max-width: none !important; margin: 0 auto !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-image { display: block !important; width: 100% !important; height: auto !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-node-container { position: absolute !important; z-index: 10 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-node-button { position: absolute !important; margin-left: -0.75rem !important; margin-top: -0.75rem !important; width: 1.5rem !important; height: 1.5rem !important; border-radius: 9999px !important; display: flex !important; align-items: center !important; justify-content: center !important; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1) !important; transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1) !important; cursor: pointer !important; border: none !important; padding: 0 !important; background-color: #ffffff !important; color: #1e293b !important; font-size: 0.75rem !important; font-weight: 700 !important; font-family: sans-serif !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-node-button:hover { transform: scale(1.1) !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-node-button.is-active { background-color: #2E6E93 !important; color: #ffffff !important; transform: scale(1.1) !important; box-shadow: 0 0 0 2px #ffffff !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-pulse-ring { position: absolute !important; inset: 0 !important; border-radius: 9999px !important; background-color: #2E6E93 !important; opacity: 0.4 !important; pointer-events: none !important; z-index: -1 !important; animation: fv-ia-ping 1.5s cubic-bezier(0, 0, 0.2, 1) 3 forwards !important; } @keyframes fv-ia-ping { 75%, 100% { transform: scale(2); opacity: 0; } } #fv-chart-1792671802767-4hwzi52pd .fv-ia-static-tooltip { display: none !important; position: absolute !important; top: -10px !important; left: 50% !important; transform: translate(-50%, -100%) !important; background-color: rgba(255, 255, 255, 0.95) !important; padding: 10px !important; border-radius: 6px !important; box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important; width: max-content !important; max-width: 200px !important; font-size: 13px !important; color: #1f2937 !important; z-index: 20 !important; pointer-events: none !important; white-space: pre-wrap !important; line-height: 1.4 !important; border: 1px solid #e5e7eb !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-node-button:hover + .fv-ia-static-tooltip { display: block !important; } #fv-chart-1792671802767-4hwzi52pd .fv-logo-explore-bar { position: relative !important; width: 100% !important; display: flex !important; justify-content: center !important; align-items: center !important; min-height: 30px !important; } #fv-chart-1792671802767-4hwzi52pd .fv-logo-explore-bar .fv-logo { margin: 0 auto !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-explore-wrapper { position: absolute !important; right: 0 !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-logo-explore-bar { flex-direction: column !important; min-height: auto !important; gap: 0.75rem !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-ia-explore-wrapper { position: static !important; align-self: flex-end !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-explore-btn { background-color: rgba(255, 255, 255, 0.95) !important; color: #1e293b !important; border: 1px solid #e5e7eb !important; border-radius: 9999px !important; padding: 0.5rem 1.25rem !important; font-size: 0.875rem !important; font-weight: 600 !important; font-family: sans-serif !important; display: inline-flex !important; align-items: center !important; gap: 0.5rem !important; cursor: pointer !important; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1) !important; transition: all 0.2s !important; pointer-events: auto !important; flex-shrink: 0 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-explore-btn:hover { background-color: #ffffff !important; transform: translateY(-2px) !important; box-shadow: 0 6px 8px -1px rgba(0, 0, 0, 0.15) !important; color: #2E6E93 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-explore-btn svg { transition: transform 0.2s !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-explore-btn:hover svg { transform: translateX(2px) !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-active-modal-container { display: none !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-modals { display: block !important; position: static !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-modal-item { display: none !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-modal-item.is-active { display: flex !important; flex-direction: column !important; position: absolute !important; top: 1rem !important; right: 1rem !important; z-index: 20 !important; width: 18rem !important; max-width: calc(100% - 2rem) !important; background-color: #ffffff !important; padding: 1rem !important; border-radius: 0.75rem !important; box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !important; border: 1px solid #e5e7eb !important; border-top: 4px solid #2E6E93 !important; animation: fv-ia-fade-in 0.2s ease-out !important; gap: 0.75rem !important; max-height: 80% !important; overflow-y: auto !important; pointer-events: auto !important; } @keyframes fv-ia-fade-in { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } #fv-chart-1792671802767-4hwzi52pd .fv-ia-modal-header { display: flex !important; justify-content: space-between !important; align-items: flex-start !important; margin: 0 !important; gap: 0.5rem !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-node-title { font-size: 1rem !important; line-height: 1.25 !important; font-weight: 700 !important; color: #111827 !important; margin: 0 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-close-button { background: #f9fafb !important; border: 1px solid #e5e7eb !important; border-radius: 50% !important; width: 2rem !important; height: 2rem !important; display: flex !important; align-items: center !important; justify-content: center !important; color: #9ca3af !important; cursor: pointer !important; padding: 0 !important; flex-shrink: 0 !important; transition: all 0.2s !important; box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-close-button:hover { background: #e5e7eb !important; color: #111827 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-node-description { font-size: 0.875rem !important; color: #374151 !important; margin: 0 !important; line-height: 1.625 !important; white-space: pre-wrap !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-ia-node-description { font-size: 0.875rem !important; } #fv-chart-1792671802767-4hwzi52pd .fv-ia-empty { display: flex !important; align-items: center !important; justify-content: center !important; height: 200px !important; background-color: #f1f5f9 !important; color: #64748b !important; border: 2px dashed #cbd5e1 !important; border-radius: 0.5rem !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-pie-container, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-bar-row, #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-stacked-product, #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-grouped-bar-product, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-bar-row, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-stacked-product, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-bar-label, #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-grouped-product-title, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-bar-label, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-bar-container, #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-bar-cluster, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-bar-container, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-x-axis-wrapper, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-x-axis-label-space, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-x-axis-chart-space, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-benchmark-title, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-dropdown-title, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-carousel-nav-btn, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-chart-title, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-chart-subhead, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-versus-header, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-versus-select-wrapper, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-versus-vs, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-versus-select-container, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-versus-select, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-bar-commentary-inline, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-dials-grid, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-dial-title, #fv-chart-1792671802767-4hwzi52pd.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792671802767-4hwzi52pd.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792671802767-4hwzi52pd .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792671802767-4hwzi52pd .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-bar-row, #fv-chart-1792671802767-4hwzi52pd .fv-stacked-product, #fv-chart-1792671802767-4hwzi52pd .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792671802767-4hwzi52pd .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-bar-label, #fv-chart-1792671802767-4hwzi52pd .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-bar-container, #fv-chart-1792671802767-4hwzi52pd .fv-bar-cluster { width: 100% !important; } #fv-chart-1792671802767-4hwzi52pd .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792671802767-4hwzi52pd .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792671802767-4hwzi52pd .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792671802767-4hwzi52pd .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792671802767-4hwzi52pd .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-x-axis-label-space { display: none !important; } #fv-chart-1792671802767-4hwzi52pd .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792671802767-4hwzi52pd .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792671802767-4hwzi52pd .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792671802767-4hwzi52pd .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792671802767-4hwzi52pd .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792671802767-4hwzi52pd .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792671802767-4hwzi52pd .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792671802767-4hwzi52pd .fv-stl-shop-all-logo, #fv-chart-1792671802767-4hwzi52pd .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792671802767-4hwzi52pd .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792671802767-4hwzi52pd .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792671802767-4hwzi52pd .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792671802767-4hwzi52pd .fv-dial-title { font-size: 16px !important; } #fv-chart-1792671802767-4hwzi52pd .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792671802767-4hwzi52pd.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } }{ "@context": "https://schema.org", "@type": "Dataset", "name": "Overall Chart Title", "description": "Subhead to describe the test and what's being measured and why", "creator": { "@type": "Organization", "name": "TechRadar", "logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png" }, "isAccessibleForFree": true, "dateCreated": "2026-10-22T12:23:22.767Z", "citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized", "keywords": [ "Image Annotation", "benchmark", "comparison", "performance", "review", "TechRadar" ], "measurementTechnique": "Performance Benchmarking", "variableMeasured": []}{"version":2,"exportedAt":"2026-10-22T12:23:22.767Z","state":{"data":[],"products":[],"attributes":[],"selectedProducts":[],"selectedPrimaryProduct":null,"selectedAttributes":[],"productColors":[],"initialProductColors":[],"attributeColors":[],"attributeGroups":[],"chartType":"Image Annotation","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"All Charts","brand":{"name":"TechRadar","logoUrl":"https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/techradar.png","colors":{"primary":"#2E6E93","secondary":"#E8238C","accent":"#FFFFFF","background":"#ffffff","text":"#1F2937","productColors":["#2E6E93","#E8238C","#5DA8D4","#F06EAF","#1A4E6B","#B81C70","#8CC3E0","#F499C9"]}},"textContent":{"title":"Overall Chart Title","subhead":"Subhead to describe the test and what's being measured and why","caption":"Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","productNameOverrides":{},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":true,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":false,"experimentalEnablePieChart":false,"slideshowUseDropdown":false,"imageAnnotationData":{"imageUrl":"https://cdn.mos.cms.futurecdn.net/nos92bovteW8KcinhcDuVj.png","nodes":[{"id":"node-1792671237404","x":36.25,"y":58.84,"title":"The target","description":"The attack starts with a server running vulnerable versions of PHP. PHP is a core programming language used to power millions of web applications and servers worldwide, making any runtime vulnerability here exceptionally dangerous."},{"id":"node-1792671262707","x":27.38,"y":39.2,"title":"Malicious request","description":"An unauthenticated attacker (meaning they don't need valid login credentials or prior access) sends a specially crafted, unauthorized payload request directly to the PHP web server."},{"id":"node-1792671287628","x":62.88,"y":23.74,"title":"Exploitation","description":"A critical flaw in the core PHP runtime allows this incoming payload to hijack the ongoing backend process. As the PHP backend processes the code, an execution error or breakout occurs."},{"id":"node-1792671310977","x":73.93,"y":52.4,"title":"System takeover","description":"Because the runtime is hijacked, the attacker could successfully execute remote commands, giving them access to the user's operating system, compromising the entire device."}],"fullBleed":true}},"slides":[]}1234The targetThe attack starts with a server running vulnerable versions of PHP. PHP is a core programming language used to power millions of web applications and servers worldwide, making any runtime vulnerability here exceptionally dangerous.Malicious requestAn unauthenticated attacker (meaning they don't need valid login credentials or prior access) sends a specially crafted, unauthorized payload request directly to the PHP web server.ExploitationA critical flaw in the core PHP runtime allows this incoming payload to hijack the ongoing backend process. As the PHP backend processes the code, an execution error or breakout occurs.System takeoverBecause the runtime is hijacked, the attacker could successfully execute remote commands, giving them access to the user's operating system, compromising the entire device.Explore window.iFrameResizer = { heightCalculationMethod: 'taggedElement' }; (function() { function createChartAnimator() { return function animateChartWrapper(chartWrapper) { if (!chartWrapper) return; function animateBars(chartElement) { if (!chartElement) return; var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment'); bars.forEach(function(bar, index) { bar.style.setProperty('width', '0%', 'important'); bar.style.setProperty('transition', 'none', 'important'); var targetWidth = bar.dataset.targetWidth; if (targetWidth === undefined) return; void bar.offsetWidth; var targetMargin = bar.dataset.targetMargin; var baseMargin = bar.dataset.baseMargin; if (baseMargin !== undefined) { bar.style.setProperty('margin-left', baseMargin + '%', 'important'); } setTimeout(function() { var marginTransition = baseMargin !== undefined ? ', margin-left 0.8s ease-out' : ''; bar.style.setProperty('transition', 'opacity 0.2s ease, width 0.8s ease-out' + marginTransition, 'important'); bar.style.setProperty('width', targetWidth + '%', 'important'); if (targetMargin !== undefined && baseMargin !== undefined) { bar.style.setProperty('margin-left', targetMargin + '%', 'important'); } }, index * 50 + 50); }); } function animateLineChart(chartElement) { if (!chartElement) return; var lineSvg = chartElement.querySelector('svg'); if (!lineSvg) return; var paths = lineSvg.querySelectorAll('.riv-line-path'); paths.forEach(function(p, i) { if (typeof p.getTotalLength === 'function') { var len = p.getTotalLength(); p.style.transition = 'none'; p.style.strokeDasharray = len; p.style.strokeDashoffset = len; p.getBoundingClientRect(); setTimeout(function() { p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's, stroke-width 0.2s, opacity 0.2s'; p.style.strokeDashoffset = '0'; }, 100); } }); var dots = lineSvg.querySelectorAll('.riv-dot'); dots.forEach(function(dot, i) { dot.style.opacity = '0'; setTimeout(function() { dot.style.transition = 'opacity 0.3s ease'; dot.style.opacity = '1'; }, 500 + i * 10); }); } function animateDials(chartElement) { if (!chartElement) return; var needles = chartElement.querySelectorAll('.fv-dial-needle'); needles.forEach(function(needle, index) { var targetAngle = needle.dataset.targetAngle; var baseAngle = needle.dataset.baseAngle || '-132'; if (targetAngle === undefined) return; needle.style.setProperty('transition', 'none', 'important'); needle.style.setProperty('transform', 'rotate(' + baseAngle + 'deg)', 'important'); void needle.getBoundingClientRect(); setTimeout(function() { needle.style.setProperty('transition', 'transform 0.9s cubic-bezier(0.22, 1, 0.36, 1)', 'important'); needle.style.setProperty('transform', 'rotate(' + targetAngle + 'deg)', 'important'); }, index * 60 + 50); }); } var charts = chartWrapper.querySelectorAll('.fv-chart-item'); charts.forEach(function(chart) { if (window.getComputedStyle(chart).display === 'none') return; var chartType = chart.dataset.chartType; if (chartType === 'Line') { animateLineChart(chart); } else if (chartType !== 'Pie') { animateBars(chart); animateDials(chart); } }); }; } var fvLocalAnimate = createChartAnimator(); window.fvAnimateCharts = fvLocalAnimate; function initialize(uniqueId, isSlideshow) { var root = document.getElementById(uniqueId); if (!root && !isSlideshow) return; function setupWrapper(chartWrapper) { if (!chartWrapper) return; /* Responsive mobile view handling */ function checkMobileView() { var width = chartWrapper.getBoundingClientRect().width; var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height)