		* {
			margin: 0;
			padding: 0;
			box-sizing: border-box;
		}

		:root {
			--primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
			--secondary-gradient: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
			--accent-gradient: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
			--dark-bg: #0a0e27;
			--card-bg: rgba(255, 255, 255, 0.05);
			--card-border: rgba(255, 255, 255, 0.1);
			--text-primary: #ffffff;
			--text-secondary: #a0aec0;
			--success: #48bb78;
			--warning: #ed8936;
			--danger: #f56565;
			--shadow-lg: 0 20px 60px rgba(0, 0, 0, 0.3);
			--shadow-xl: 0 25px 80px rgba(0, 0, 0, 0.4);
		}

		body {
			font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
			background: var(--dark-bg);
			color: var(--text-primary);
			min-height: 100vh;
			overflow-x: hidden;
			position: relative;
		}

		/* Animated background */
		body::before {
			content: '';
			position: fixed;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			background:
				radial-gradient(circle at 20% 50%, rgba(102, 126, 234, 0.1) 0%, transparent 50%),
				radial-gradient(circle at 80% 80%, rgba(245, 87, 108, 0.1) 0%, transparent 50%),
				radial-gradient(circle at 40% 20%, rgba(79, 172, 254, 0.1) 0%, transparent 50%);
			z-index: -1;
			animation: backgroundShift 15s ease infinite;
		}

		@keyframes backgroundShift {

			0%,
			100% {
				opacity: 1;
			}

			50% {
				opacity: 0.8;
			}
		}

		.container {
			max-width: 1400px;
			margin: 0 auto;
			padding: 2rem;
		}

		/* Header */
		header {
			text-align: center;
			padding: 3rem 0 2rem;
			position: relative;
		}

		h1 {
			font-size: 3.5rem;
			font-weight: 800;
			background: var(--primary-gradient);
			-webkit-background-clip: text;
			-webkit-text-fill-color: transparent;
			background-clip: text;
			margin-bottom: 0.5rem;
			letter-spacing: -0.02em;
			animation: fadeInDown 0.8s ease;
			display: flex;
			align-items: center;
			justify-content: center;
			gap: 0.5rem;
		}

		h1 svg {
			width: 1em;
			height: 1em;
			fill: currentColor;
			filter: drop-shadow(0 0 10px rgba(102, 126, 234, 0.5));
		}

		.subtitle {
			font-size: 1.2rem;
			color: var(--text-secondary);
			font-weight: 400;
			animation: fadeInUp 0.8s ease;
		}

		@keyframes fadeInDown {
			from {
				opacity: 0;
				transform: translateY(-20px);
			}

			to {
				opacity: 1;
				transform: translateY(0);
			}
		}

		@keyframes fadeInUp {
			from {
				opacity: 0;
				transform: translateY(20px);
			}

			to {
				opacity: 1;
				transform: translateY(0);
			}
		}

		/* Tabs Navigation */
		.nav-tabs {
			display: flex;
			justify-content: center;
			gap: 1.5rem;
			margin-top: 1.5rem;
			margin-bottom: 0.5rem;
		}

		.nav-tab {
			background: rgba(255, 255, 255, 0.03);
			border: 1px solid var(--card-border);
			color: var(--text-secondary);
			font-size: 0.9rem;
			font-weight: 600;
			padding: 0.6rem 1.2rem;
			border-radius: 12px;
			cursor: pointer;
			transition: all 0.3s ease;
			display: inline-flex;
			align-items: center;
			gap: 0.5rem;
		}

		.nav-tab:hover {
			color: var(--text-primary);
			background: rgba(255, 255, 255, 0.08);
			border-color: rgba(255, 255, 255, 0.2);
		}

		.nav-tab.active {
			color: var(--text-primary);
			background: linear-gradient(135deg, rgba(102, 126, 234, 0.2) 0%, rgba(118, 75, 162, 0.2) 100%);
			border-color: #667eea;
			box-shadow: 0 0 12px rgba(102, 126, 234, 0.2);
		}

		/* Search Section */
		.search-section {
			max-width: 800px;
			margin: 3rem auto;
			animation: fadeIn 1s ease;
		}

		@keyframes fadeIn {
			from {
				opacity: 0;
			}

			to {
				opacity: 1;
			}
		}

		.search-container {
			background: var(--card-bg);
			backdrop-filter: blur(20px);
			border: 1px solid var(--card-border);
			border-radius: 20px;
			padding: 2.5rem;
			box-shadow: var(--shadow-lg);
			transition: all 0.3s ease;
		}

		.search-container:hover {
			transform: translateY(-5px);
			box-shadow: var(--shadow-xl);
		}

		.search-form {
			display: flex;
			gap: 1rem;
			margin-bottom: 1rem;
		}

		.search-input {
			flex: 1;
			padding: 1rem 1.5rem;
			background: rgba(255, 255, 255, 0.08);
			border: 2px solid transparent;
			border-radius: 12px;
			color: var(--text-primary);
			font-size: 1rem;
			font-family: 'Inter', sans-serif;
			transition: all 0.3s ease;
			outline: none;
		}

		.search-input:focus {
			background: rgba(255, 255, 255, 0.12);
			border-color: #667eea;
			box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.1);
		}

		.search-input::placeholder {
			color: var(--text-secondary);
		}

		.btn {
			padding: 1rem 2rem;
			border: none;
			border-radius: 12px;
			font-size: 1rem;
			font-weight: 600;
			cursor: pointer;
			transition: all 0.3s ease;
			font-family: 'Inter', sans-serif;
			position: relative;
			overflow: hidden;
		}

		.btn-primary {
			background: var(--primary-gradient);
			color: white;
			box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4);
		}

		.btn-primary:hover {
			transform: translateY(-2px);
			box-shadow: 0 6px 20px rgba(102, 126, 234, 0.6);
		}

		.btn-primary:active {
			transform: translateY(0);
		}

		.btn-secondary {
			background: rgba(255, 255, 255, 0.1);
			color: white;
			border: 1px solid rgba(255, 255, 255, 0.2);
		}

		.btn-secondary:hover {
			background: rgba(255, 255, 255, 0.15);
			transform: translateY(-2px);
		}

		/* Loading Spinner */
		.spinner {
			display: inline-block;
			width: 20px;
			height: 20px;
			border: 3px solid rgba(255, 255, 255, 0.3);
			border-radius: 50%;
			border-top-color: white;
			animation: spin 0.8s linear infinite;
		}

		@keyframes spin {
			to {
				transform: rotate(360deg);
			}
		}

		/* Products Grid */
		.products-grid {
			display: grid;
			grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
			gap: 1.5rem;
			margin-top: 2rem;
			animation: fadeIn 0.6s ease;
		}

		.product-card {
			background: var(--card-bg);
			backdrop-filter: blur(20px);
			border: 1px solid var(--card-border);
			border-radius: 16px;
			padding: 1.5rem;
			cursor: pointer;
			transition: all 0.3s ease;
			position: relative;
			overflow: hidden;
		}

		.product-card::before {
			content: '';
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			background: var(--accent-gradient);
			opacity: 0;
			transition: opacity 0.3s ease;
		}

		.product-card:hover {
			transform: translateY(-5px);
			box-shadow: var(--shadow-lg);
			border-color: rgba(79, 172, 254, 0.5);
		}

		.product-card:hover::before {
			opacity: 0.05;
		}

		.product-card-content {
			position: relative;
			z-index: 1;
		}

		.product-name {
			font-size: 1.2rem;
			font-weight: 600;
			margin-bottom: 0.5rem;
			color: var(--text-primary);
		}

		.product-vendor {
			font-size: 0.9rem;
			color: var(--text-secondary);
			margin-bottom: 0.5rem;
		}

		.product-id {
			font-size: 0.85rem;
			color: var(--text-secondary);
			font-family: 'Courier New', monospace;
		}

		/* Vulnerabilities Section */
		.vulnerabilities-section {
			margin-top: 3rem;
			animation: fadeIn 0.6s ease;
		}

		.section-header {
			display: flex;
			justify-content: space-between;
			align-items: center;
			margin-bottom: 2rem;
		}

		.section-title {
			font-size: 2rem;
			font-weight: 700;
			background: var(--secondary-gradient);
			-webkit-background-clip: text;
			-webkit-text-fill-color: transparent;
			background-clip: text;
		}

		.vuln-count {
			background: var(--card-bg);
			backdrop-filter: blur(20px);
			border: 1px solid var(--card-border);
			border-radius: 12px;
			padding: 0.75rem 1.5rem;
			font-weight: 600;
			font-size: 1.1rem;
		}

		/* Vulnerability Table */
		.table-container {
			background: var(--card-bg);
			backdrop-filter: blur(20px);
			border: 1px solid var(--card-border);
			border-radius: 20px;
			overflow: hidden;
			box-shadow: var(--shadow-lg);
		}

		.vuln-table {
			width: 100%;
			border-collapse: collapse;
		}

		.vuln-table thead {
			background: rgba(102, 126, 234, 0.1);
		}

		.vuln-table th {
			padding: 1.25rem 1.5rem;
			text-align: left;
			font-weight: 600;
			font-size: 0.9rem;
			text-transform: uppercase;
			letter-spacing: 0.05em;
			color: var(--text-secondary);
			border-bottom: 1px solid var(--card-border);
		}

		.vuln-table td {
			padding: 1.25rem 1.5rem;
			border-bottom: 1px solid rgba(255, 255, 255, 0.05);
			color: var(--text-primary);
			font-size: 0.95rem;
		}

		.vuln-table tbody tr {
			transition: all 0.2s ease;
			cursor: pointer;
		}

		.vuln-table tbody tr:hover {
			background: rgba(102, 126, 234, 0.08);
		}

		/* Center the severity column */
		.vuln-table td:nth-child(3) {
			text-align: center;
		}

		.cve-id {
			font-family: 'Courier New', monospace;
			font-weight: 600;
			color: #4facfe;
			cursor: pointer;
			transition: color 0.2s ease;
		}

		.cve-id:hover {
			color: #00f2fe;
			text-decoration: underline;
		}

		.severity-badge {
			display: flex;
			align-items: center;
			justify-content: center;
			padding: 0.4rem 0.8rem;
			border-radius: 8px;
			font-size: 0.85rem;
			font-weight: 600;
			text-transform: uppercase;
			letter-spacing: 0.03em;
			width: 140px;
			text-align: center;
			box-sizing: border-box;
		}

		.severity-low {
			background: rgba(72, 187, 120, 0.2);
			color: var(--success);
			border: 1px solid rgba(72, 187, 120, 0.3);
		}

		.severity-medium {
			background: rgba(237, 137, 54, 0.2);
			color: var(--warning);
			border: 1px solid rgba(237, 137, 54, 0.3);
		}

		.severity-high {
			background: rgba(245, 101, 101, 0.2);
			color: var(--danger);
			border: 1px solid rgba(245, 101, 101, 0.3);
		}

		.severity-critical {
			background: rgba(159, 18, 57, 0.3);
			color: #fc8181;
			border: 1px solid rgba(159, 18, 57, 0.5);
		}

		/* KEV and Ransomware Badges */
		.badges-container {
			display: flex;
			flex-direction: column;
			align-items: center;
			gap: 0.4rem;
			width: 100%;
		}

		.kev-badge {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			padding: 0.35rem 0.6rem;
			border-radius: 6px;
			font-size: 0.75rem;
			font-weight: 700;
			text-transform: uppercase;
			letter-spacing: 0.05em;
			background: rgba(220, 38, 38, 0.2);
			color: #ef4444;
			border: 1px solid rgba(220, 38, 38, 0.4);
			animation: pulse 2s ease-in-out infinite;
			white-space: nowrap;
			width: 140px;
			text-align: center;
			box-sizing: border-box;
		}

		.ransomware-badge {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			padding: 0.35rem 0.6rem;
			border-radius: 6px;
			font-size: 0.75rem;
			font-weight: 700;
			text-transform: uppercase;
			letter-spacing: 0.05em;
			background: rgba(139, 92, 246, 0.2);
			color: #a78bfa;
			border: 1px solid rgba(139, 92, 246, 0.4);
			white-space: nowrap;
			width: 140px;
			text-align: center;
			box-sizing: border-box;
		}

		.epss-weighted-badge {
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			padding: 0.3rem 0.5rem;
			border-radius: 6px;
			font-size: 0.72rem;
			font-weight: 500;
			background: rgba(102, 126, 234, 0.1);
			color: #a3bffa;
			border: 1px solid rgba(102, 126, 234, 0.25);
			width: 140px;
			text-align: center;
			gap: 1px;
			white-space: nowrap;
			box-sizing: border-box;
		}

		@keyframes pulse {

			0%,
			100% {
				opacity: 1;
			}

			50% {
				opacity: 0.7;
			}
		}

		/* Status Messages */
		.status-message {
			text-align: center;
			padding: 3rem 2rem;
			background: var(--card-bg);
			backdrop-filter: blur(20px);
			border: 1px solid var(--card-border);
			border-radius: 16px;
			margin: 2rem 0;
		}

		.status-message h2 {
			font-size: 1.5rem;
			margin-bottom: 1rem;
			color: var(--text-primary);
		}

		.status-message p {
			color: var(--text-secondary);
			font-size: 1rem;
		}

		/* Tooltip */
		.tooltip {
			position: fixed;
			background: rgba(0, 0, 0, 0.9);
			color: white;
			padding: 0.5rem 1rem;
			border-radius: 8px;
			font-size: 0.85rem;
			pointer-events: none;
			z-index: 1000;
			animation: tooltipFade 0.3s ease;
			box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
		}

		@keyframes tooltipFade {
			from {
				opacity: 0;
				transform: translateY(-5px);
			}

			to {
				opacity: 1;
				transform: translateY(0);
			}
		}

		/* Toast Notification */
		.toast {
			position: fixed;
			top: 2rem;
			right: 2rem;
			background: rgba(237, 137, 54, 0.95);
			backdrop-filter: blur(20px);
			color: white;
			padding: 1rem 1.5rem;
			border-radius: 12px;
			box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
			border: 1px solid rgba(255, 255, 255, 0.2);
			z-index: 10000;
			cursor: pointer;
			animation: slideInRight 0.3s ease;
			max-width: 350px;
			font-size: 0.95rem;
			line-height: 1.5;
		}

		.toast:hover {
			background: rgba(237, 137, 54, 1);
			transform: translateX(-5px);
			transition: all 0.2s ease;
		}

		@keyframes slideInRight {
			from {
				opacity: 0;
				transform: translateX(100%);
			}

			to {
				opacity: 1;
				transform: translateX(0);
			}
		}

		/* Footer */
		footer {
			text-align: center;
			padding: 3rem 2rem;
			margin-top: 4rem;
			border-top: 1px solid var(--card-border);
		}

		footer p {
			color: var(--text-secondary);
			font-size: 0.95rem;
		}

		footer a {
			color: #667eea;
			text-decoration: none;
			font-weight: 600;
			transition: color 0.2s ease;
		}

		footer a:hover {
			color: #764ba2;
		}

		/* Responsive Design */
		@media (max-width: 768px) {
			h1 {
				font-size: 2.5rem;
			}

			.subtitle {
				font-size: 1rem;
			}

			.search-form {
				flex-direction: column;
			}

			.products-grid {
				grid-template-columns: 1fr;
			}

			.section-header {
				flex-direction: column;
				align-items: flex-start;
				gap: 1rem;
			}

			.table-container {
				overflow-x: auto;
			}

			.vuln-table {
				min-width: 800px;
			}

			/* SRA Summary & EOL card side scrollable */
			.sra-container {
				overflow-x: auto;
				display: flex !important;
				flex-direction: row !important;
				gap: 1rem;
				padding-bottom: 0.5rem;
				scrollbar-width: thin;
				-webkit-overflow-scrolling: touch;
			}
			.sra-container .sra-card {
				min-width: 480px; /* Force minimum width to show content nicely */
				flex: 0 0 auto;
			}

			/* SRA Comparison container side scrollable */
			.compare-panel {
				overflow-x: auto;
				scrollbar-width: thin;
				-webkit-overflow-scrolling: touch;
			}
			.compare-header {
				min-width: 580px;
			}
			.compare-grid {
				min-width: 580px;
			}

			/* SRA Report preview canvas side scrollable */
			.report-preview-canvas {
				overflow-x: auto !important;
				padding: 1.5rem !important; /* Slightly smaller padding for mobile screens */
			}

			/* SRA Report workspace container side scrollable */
			.report-workspace {
				overflow-x: auto !important;
				scrollbar-width: thin;
				-webkit-overflow-scrolling: touch;
			}
		}

		/* Scrollbar Styling */
		::-webkit-scrollbar,
		*::-webkit-scrollbar {
			width: 8px;
			height: 8px;
		}

		::-webkit-scrollbar-track,
		*::-webkit-scrollbar-track {
			background: rgba(255, 255, 255, 0.03);
			border-radius: 4px;
		}

		::-webkit-scrollbar-thumb,
		*::-webkit-scrollbar-thumb {
			background: rgba(102, 126, 234, 0.4);
			border-radius: 4px;
		}

		::-webkit-scrollbar-thumb:hover,
		*::-webkit-scrollbar-thumb:hover {
			background: rgba(102, 126, 234, 0.6);
		}

		/* Firefox support */
		* {
			scrollbar-width: thin;
			scrollbar-color: rgba(102, 126, 234, 0.4) rgba(255, 255, 255, 0.03);
		}

		/* Export Button and Dropdown */
		.export-container {
			position: relative;
			display: inline-block;
		}

		.btn-export {
			background: rgba(255, 255, 255, 0.1);
			color: white;
			box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
			border: 1px solid rgba(255, 255, 255, 0.2);
			display: flex;
			align-items: center;
			gap: 0.5rem;
		}

		.btn-export:hover {
			background: rgba(255, 255, 255, 0.15);
			transform: translateY(-2px);
			box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
		}

		.export-dropdown {
			position: absolute;
			top: calc(100% + 0.5rem);
			right: 0;
			background: var(--card-bg);
			backdrop-filter: blur(20px);
			border: 1px solid var(--card-border);
			border-radius: 12px;
			box-shadow: var(--shadow-lg);
			min-width: 150px;
			z-index: 1000;
			display: none;
			overflow: hidden;
			animation: fadeIn 0.2s ease;
		}

		.export-dropdown.show {
			display: block;
		}

		.export-option {
			padding: 0.75rem 1.25rem;
			cursor: pointer;
			transition: all 0.2s ease;
			color: var(--text-primary);
			font-weight: 500;
			display: flex;
			align-items: center;
			gap: 0.5rem;
		}

		.export-option:hover {
			background: rgba(79, 172, 254, 0.1);
		}

		.export-option:not(:last-child) {
			border-bottom: 1px solid var(--card-border);
		}
