{"id":877,"date":"2026-08-02T13:20:24","date_gmt":"2026-08-02T13:20:24","guid":{"rendered":"https:\/\/freewebtools.co.in\/?page_id=877"},"modified":"2026-08-02T13:47:28","modified_gmt":"2026-08-02T13:47:28","slug":"vulnerability-report","status":"publish","type":"page","link":"https:\/\/freewebtools.co.in\/index.php\/vulnerability-report\/","title":{"rendered":"Vulnerability Report"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Vulnerability Report Template Generator Pro<\/title>\n    <style>\n        \/* Scoped Container for WordPress \/ Elementor \/ Gutenberg \/ Standalone Compatibility *\/\n        #vrt-pro-container {\n            --vrt-bg: #090d16;\n            --vrt-card-bg: #111827;\n            --vrt-card-border: #1f2937;\n            --vrt-card-border-hover: #374151;\n            --vrt-text: #f9fafb;\n            --vrt-text-muted: #9ca3af;\n            --vrt-primary: #6366f1;\n            --vrt-primary-hover: #4f46e5;\n            --vrt-accent: #10b981;\n            --vrt-danger: #ef4444;\n            --vrt-warning: #f59e0b;\n            --vrt-info: #3b82f6;\n            --vrt-radius: 14px;\n            --vrt-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.3), 0 8px 10px -6px rgba(0, 0, 0, 0.3);\n            \n            font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\n            background-color: var(--vrt-bg);\n            color: var(--vrt-text);\n            padding: 24px;\n            border-radius: var(--vrt-radius);\n            box-sizing: border-box;\n            width: 100%;\n            max-width: 100%;\n            min-width: 0;\n            margin: 0 auto;\n            position: relative;\n            z-index: 1;\n            overflow-x: hidden;\n            transition: background 0.3s ease, color 0.3s ease;\n        }\n\n        #vrt-pro-container.vrt-light-mode {\n            --vrt-bg: #f8fafc;\n            --vrt-card-bg: #ffffff;\n            --vrt-card-border: #e2e8f0;\n            --vrt-card-border-hover: #cbd5e1;\n            --vrt-text: #0f172a;\n            --vrt-text-muted: #64748b;\n            --vrt-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05), 0 8px 10px -6px rgba(0, 0, 0, 0.05);\n        }\n\n        #vrt-pro-container *, \n        #vrt-pro-container *::before, \n        #vrt-pro-container *::after {\n            box-sizing: border-box;\n            max-width: 100%;\n            min-width: 0;\n        }\n\n        #vrt-pro-container header {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            margin-bottom: 24px;\n            border-bottom: 1px solid var(--vrt-card-border);\n            padding-bottom: 16px;\n            flex-wrap: wrap;\n            gap: 16px;\n            width: 100%;\n        }\n\n        #vrt-pro-container h1 {\n            font-size: 1.75rem;\n            font-weight: 800;\n            margin: 0;\n            color: var(--vrt-text);\n            display: flex;\n            align-items: center;\n            gap: 10px;\n            flex-wrap: wrap;\n        }\n\n        #vrt-pro-container .vrt-header-actions {\n            display: flex;\n            gap: 12px;\n            align-items: center;\n            flex-wrap: wrap;\n        }\n\n        #vrt-pro-container .vrt-theme-toggle,\n        #vrt-pro-container .vrt-btn {\n            background: var(--vrt-primary);\n            color: white;\n            border: none;\n            padding: 10px 18px;\n            border-radius: 8px;\n            font-weight: 600;\n            cursor: pointer;\n            transition: background 0.2s, transform 0.1s;\n            font-size: 0.875rem;\n            display: inline-flex;\n            align-items: center;\n            justify-content: center;\n            gap: 8px;\n            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n            white-space: nowrap;\n        }\n\n        #vrt-pro-container .vrt-theme-toggle:hover,\n        #vrt-pro-container .vrt-btn:hover {\n            background: var(--vrt-primary-hover);\n        }\n\n        #vrt-pro-container .vrt-theme-toggle {\n            background: var(--vrt-card-bg);\n            border: 1px solid var(--vrt-card-border);\n            color: var(--vrt-text);\n            box-shadow: none;\n        }\n\n        #vrt-pro-container .vrt-theme-toggle:hover {\n            background: var(--vrt-card-border);\n        }\n\n        #vrt-pro-container .vrt-btn-secondary {\n            background: var(--vrt-card-bg);\n            border: 1px solid var(--vrt-card-border);\n            color: var(--vrt-text);\n            box-shadow: none;\n        }\n\n        #vrt-pro-container .vrt-btn-secondary:hover {\n            background: var(--vrt-card-border);\n            border-color: var(--vrt-card-border-hover);\n        }\n\n        #vrt-pro-container .vrt-btn-danger {\n            background: rgba(239, 68, 68, 0.15);\n            color: var(--vrt-danger);\n            border: 1px solid rgba(239, 68, 68, 0.3);\n            box-shadow: none;\n        }\n\n        #vrt-pro-container .vrt-btn-danger:hover {\n            background: rgba(239, 68, 68, 0.25);\n        }\n\n        \/* Dashboard Overview Grid *\/\n        #vrt-pro-container .vrt-dashboard {\n            display: grid;\n            grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n            gap: 16px;\n            margin-bottom: 24px;\n            width: 100%;\n        }\n\n        #vrt-pro-container .vrt-metric-card {\n            background: var(--vrt-card-bg);\n            border: 1px solid var(--vrt-card-border);\n            border-radius: var(--vrt-radius);\n            padding: 16px;\n            box-shadow: var(--vrt-shadow);\n            width: 100%;\n        }\n\n        #vrt-pro-container .vrt-metric-title {\n            font-size: 0.75rem;\n            color: var(--vrt-text-muted);\n            margin-bottom: 6px;\n            text-transform: uppercase;\n            letter-spacing: 0.05em;\n            font-weight: 700;\n        }\n\n        #vrt-pro-container .vrt-metric-value {\n            font-size: 1.5rem;\n            font-weight: 800;\n            word-break: break-all;\n        }\n\n        \/* Main Workspace Tabs *\/\n        #vrt-pro-container .vrt-tabs {\n            display: flex;\n            gap: 8px;\n            margin-bottom: 20px;\n            border-bottom: 1px solid var(--vrt-card-border);\n            padding-bottom: 12px;\n            flex-wrap: wrap;\n            width: 100%;\n        }\n\n        #vrt-pro-container .vrt-tab-btn {\n            background: var(--vrt-card-bg);\n            border: 1px solid var(--vrt-card-border);\n            color: var(--vrt-text-muted);\n            padding: 10px 20px;\n            border-radius: 8px;\n            font-weight: 600;\n            cursor: pointer;\n            font-size: 0.875rem;\n            transition: all 0.2s;\n            white-space: nowrap;\n        }\n\n        #vrt-pro-container .vrt-tab-btn.active {\n            background: var(--vrt-primary);\n            color: white;\n            border-color: var(--vrt-primary);\n        }\n\n        #vrt-pro-container .vrt-tab-content {\n            display: none;\n            width: 100%;\n        }\n\n        #vrt-pro-container .vrt-tab-content.active {\n            display: block;\n        }\n\n        #vrt-pro-container .vrt-panel {\n            background: var(--vrt-card-bg);\n            border: 1px solid var(--vrt-card-border);\n            border-radius: var(--vrt-radius);\n            padding: 24px;\n            box-shadow: var(--vrt-shadow);\n            margin-bottom: 24px;\n            width: 100%;\n            overflow-wrap: break-word;\n        }\n\n        #vrt-pro-container h2 {\n            font-size: 1.15rem;\n            font-weight: 700;\n            margin-top: 0;\n            margin-bottom: 20px;\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            border-bottom: 1px solid var(--vrt-card-border);\n            padding-bottom: 12px;\n            flex-wrap: wrap;\n            gap: 12px;\n            width: 100%;\n        }\n\n        #vrt-pro-container .vrt-form-group {\n            margin-bottom: 16px;\n            flex: 1 1 100%;\n            min-width: 0;\n        }\n\n        #vrt-pro-container label {\n            display: block;\n            font-size: 0.813rem;\n            font-weight: 700;\n            color: var(--vrt-text-muted);\n            margin-bottom: 6px;\n            text-transform: uppercase;\n            letter-spacing: 0.05em;\n        }\n\n        #vrt-pro-container input[type=\"text\"],\n        #vrt-pro-container input[type=\"date\"],\n        #vrt-pro-container select,\n        #vrt-pro-container textarea {\n            width: 100%;\n            max-width: 100%;\n            min-width: 0;\n            background: var(--vrt-bg);\n            border: 1px solid var(--vrt-card-border);\n            color: var(--vrt-text);\n            padding: 10px 14px;\n            border-radius: 8px;\n            font-size: 0.875rem;\n            outline: none;\n            transition: border-color 0.2s;\n        }\n\n        #vrt-pro-container input[type=\"text\"]:focus,\n        #vrt-pro-container input[type=\"date\"]:focus,\n        #vrt-pro-container select:focus,\n        #vrt-pro-container textarea:focus {\n            border-color: var(--vrt-primary);\n        }\n\n        #vrt-pro-container textarea {\n            height: 110px;\n            resize: vertical;\n            font-family: inherit;\n        }\n\n        #vrt-pro-container .vrt-flex-row {\n            display: flex;\n            gap: 16px;\n            flex-wrap: wrap;\n            width: 100%;\n            margin: 0;\n        }\n\n        #vrt-pro-container .vrt-flex-row > div {\n            flex: 1 1 240px;\n            min-width: 0;\n        }\n\n        \/* Vulnerability Management List Cards *\/\n        #vrt-pro-container .vrt-vuln-card {\n            background: var(--vrt-bg);\n            border: 1px solid var(--vrt-card-border);\n            border-radius: 10px;\n            padding: 20px;\n            margin-bottom: 16px;\n            transition: border-color 0.2s;\n            width: 100%;\n            overflow-x: hidden;\n        }\n\n        #vrt-pro-container .vrt-vuln-card:hover {\n            border-color: var(--vrt-card-border-hover);\n        }\n\n        #vrt-pro-container .vrt-badge {\n            display: inline-flex;\n            align-items: center;\n            gap: 6px;\n            padding: 4px 10px;\n            border-radius: 6px;\n            font-size: 0.75rem;\n            font-weight: 700;\n            white-space: nowrap;\n        }\n\n        #vrt-pro-container .vrt-badge-critical { background: rgba(185, 28, 28, 0.25); color: #f87171; }\n        #vrt-pro-container .vrt-badge-high { background: rgba(239, 68, 68, 0.15); color: var(--vrt-danger); }\n        #vrt-pro-container .vrt-badge-medium { background: rgba(245, 158, 11, 0.15); color: var(--vrt-warning); }\n        #vrt-pro-container .vrt-badge-low { background: rgba(59, 130, 246, 0.15); color: var(--vrt-info); }\n        #vrt-pro-container .vrt-badge-info { background: rgba(16, 185, 129, 0.15); color: var(--vrt-accent); }\n\n        \/* Preview Output Styles *\/\n        #vrt-pro-container .vrt-preview-container {\n            background: var(--vrt-bg);\n            border: 1px solid var(--vrt-card-border);\n            border-radius: 8px;\n            padding: 32px;\n            max-height: 700px;\n            overflow-y: auto;\n            overflow-x: auto;\n            color: var(--vrt-text);\n            line-height: 1.6;\n            width: 100%;\n        }\n\n        #vrt-pro-container .vrt-preview-container h3 {\n            border-bottom: 2px solid var(--vrt-primary);\n            padding-bottom: 8px;\n            margin-top: 24px;\n            color: var(--vrt-text);\n        }\n\n        #vrt-pro-container .vrt-table-responsive {\n            width: 100%;\n            overflow-x: auto;\n            margin: 16px 0;\n            -webkit-overflow-scrolling: touch;\n        }\n\n        #vrt-pro-container table.vrt-table {\n            width: 100%;\n            min-width: 500px;\n            border-collapse: collapse;\n            font-size: 0.875rem;\n        }\n\n        #vrt-pro-container table.vrt-table th, \n        #vrt-pro-container table.vrt-table td {\n            padding: 12px 16px;\n            border: 1px solid var(--vrt-card-border);\n            text-align: left;\n            word-break: break-word;\n        }\n\n        #vrt-pro-container table.vrt-table th {\n            background: rgba(0, 0, 0, 0.2);\n            color: var(--vrt-text-muted);\n            font-weight: 700;\n        }\n\n        \/* Toast notifications & status messages *\/\n        #vrt-pro-container .vrt-toast {\n            position: fixed;\n            bottom: 24px;\n            right: 24px;\n            background: var(--vrt-primary);\n            color: white;\n            padding: 12px 20px;\n            border-radius: 8px;\n            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.3);\n            z-index: 99999;\n            font-weight: 600;\n            opacity: 0;\n            transition: opacity 0.3s ease;\n            pointer-events: none;\n            max-width: 90vw;\n        }\n        #vrt-pro-container .vrt-toast.show {\n            opacity: 1;\n        }\n\n        @media (max-width: 768px) {\n            #vrt-pro-container {\n                padding: 12px;\n            }\n            #vrt-pro-container header {\n                flex-direction: column;\n                align-items: stretch;\n            }\n            #vrt-pro-container .vrt-header-actions {\n                justify-content: stretch;\n            }\n            #vrt-pro-container .vrt-header-actions button {\n                flex: 1;\n            }\n            #vrt-pro-container .vrt-preview-container {\n                padding: 16px;\n            }\n        }\n\n        \/* Print \/ PDF Styling Fixes *\/\n        @media print {\n            body {\n                background: #ffffff !important;\n                color: #000000 !important;\n            }\n            body * {\n                visibility: hidden;\n            }\n            #vrt-pro-container, #vrt-pro-container * {\n                visibility: visible;\n            }\n            #vrt-pro-container {\n                position: absolute;\n                left: 0;\n                top: 0;\n                width: 100% !important;\n                background: #ffffff !important;\n                color: #000000 !important;\n                padding: 0 !important;\n                margin: 0 !important;\n                box-shadow: none !important;\n                border: none !important;\n            }\n            #vrt-pro-container header,\n            #vrt-pro-container .vrt-dashboard,\n            #vrt-pro-container .vrt-tabs,\n            #vrt-pro-container .vrt-tab-content:not(#tab-preview),\n            #vrt-pro-container button,\n            #vrt-pro-container input,\n            #vrt-pro-container select,\n            #vrt-pro-container .vrt-toast {\n                display: none !important;\n            }\n            #tab-preview,\n            #tab-preview .vrt-panel,\n            #tab-preview .vrt-preview-container {\n                display: block !important;\n                visibility: visible !important;\n                background: #ffffff !important;\n                color: #000000 !important;\n                border: none !important;\n                box-shadow: none !important;\n                max-height: none !important;\n                overflow: visible !important;\n                padding: 0 !important;\n                margin: 0 !important;\n            }\n            #vrt-pro-container table.vrt-table th {\n                background: #f1f5f9 !important;\n                color: #000000 !important;\n                border: 1px solid #cbd5e1 !important;\n            }\n            #vrt-pro-container table.vrt-table td {\n                border: 1px solid #cbd5e1 !important;\n                color: #000000 !important;\n            }\n            #vrt-pro-container div[style*=\"background: var(--vrt-card-bg)\"] {\n                background: #f8fafc !important;\n                border: 1px solid #cbd5e1 !important;\n                page-break-inside: avoid;\n            }\n            pre {\n                background: #f1f5f9 !important;\n                color: #000000 !important;\n                border: 1px solid #cbd5e1 !important;\n                white-space: pre-wrap !important;\n                word-break: break-all !important;\n            }\n        }\n    <\/style>\n<\/head>\n<body>\n\n    <div id=\"vrt-pro-container\">\n        <header>\n            <h1>\ud83d\udee1\ufe0f Vulnerability Report Template Generator <span style=\"font-size: 0.85rem; background: rgba(99, 102, 241, 0.15); color: var(--vrt-primary); padding: 4px 10px; border-radius: 6px; font-weight: 600;\">Pro Edition<\/span><\/h1>\n            <div class=\"vrt-header-actions\">\n                <button type=\"button\" class=\"vrt-btn vrt-btn-secondary\" id=\"vrt-reset-storage\" title=\"Clear saved session\">\ud83d\uddd1\ufe0f Clear Data<\/button>\n                <button type=\"button\" class=\"vrt-theme-toggle\" id=\"vrt-theme-toggle\">\ud83c\udf13 Theme<\/button>\n            <\/div>\n        <\/header>\n\n        <!-- Metrics Dashboard -->\n        <div class=\"vrt-dashboard\" id=\"vrt-dashboard\">\n            <div class=\"vrt-metric-card\">\n                <div class=\"vrt-metric-title\">Total Findings<\/div>\n                <div class=\"vrt-metric-value\" id=\"vrt-m-total\">0<\/div>\n            <\/div>\n            <div class=\"vrt-metric-card\">\n                <div class=\"vrt-metric-title\">Critical<\/div>\n                <div class=\"vrt-metric-value\" style=\"color: #f87171;\" id=\"vrt-m-critical\">0<\/div>\n            <\/div>\n            <div class=\"vrt-metric-card\">\n                <div class=\"vrt-metric-title\">High<\/div>\n                <div class=\"vrt-metric-value\" style=\"color: var(--vrt-danger);\" id=\"vrt-m-high\">0<\/div>\n            <\/div>\n            <div class=\"vrt-metric-card\">\n                <div class=\"vrt-metric-title\">Medium<\/div>\n                <div class=\"vrt-metric-value\" style=\"color: var(--vrt-warning);\" id=\"vrt-m-medium\">0<\/div>\n            <\/div>\n            <div class=\"vrt-metric-card\">\n                <div class=\"vrt-metric-title\">Low \/ Info<\/div>\n                <div class=\"vrt-metric-value\" style=\"color: var(--vrt-info);\" id=\"vrt-m-low\">0<\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Tabs Navigation -->\n        <div class=\"vrt-tabs\">\n            <button type=\"button\" class=\"vrt-tab-btn active\" data-tab=\"meta\">\ud83d\udccb Report Metadata<\/button>\n            <button type=\"button\" class=\"vrt-tab-btn\" data-tab=\"vulns\">\ud83d\udc1b Vulnerabilities<\/button>\n            <button type=\"button\" class=\"vrt-tab-btn\" data-tab=\"preview\">\ud83d\udc41\ufe0f Live Report Preview<\/button>\n            <button type=\"button\" class=\"vrt-tab-btn\" data-tab=\"export\">\ud83d\udcbe Export &#038; Print<\/button>\n        <\/div>\n\n        <!-- Tab 1: Metadata -->\n        <div class=\"vrt-tab-content active\" id=\"tab-meta\">\n            <div class=\"vrt-panel\">\n                <h2>Engagement &#038; Report Metadata<\/h2>\n                <div class=\"vrt-flex-row\">\n                    <div class=\"vrt-form-group\">\n                        <label for=\"vrt-report-title\">Report Title<\/label>\n                        <input type=\"text\" id=\"vrt-report-title\" value=\"Penetration Testing &#038; Security Assessment Report\">\n                    <\/div>\n                    <div class=\"vrt-form-group\">\n                        <label for=\"vrt-project-name\">Project Name<\/label>\n                        <input type=\"text\" id=\"vrt-project-name\" value=\"Core Cloud API &#038; Web Platform\">\n                    <\/div>\n                <\/div>\n                <div class=\"vrt-flex-row\">\n                    <div class=\"vrt-form-group\">\n                        <label for=\"vrt-client-name\">Client Name<\/label>\n                        <input type=\"text\" id=\"vrt-client-name\" value=\"Acme Enterprise Corp\">\n                    <\/div>\n                    <div class=\"vrt-form-group\">\n                        <label for=\"vrt-company-name\">Auditing Company \/ Team<\/label>\n                        <input type=\"text\" id=\"vrt-company-name\" value=\"SecOps Red Team Labs\">\n                    <\/div>\n                <\/div>\n                <div class=\"vrt-flex-row\">\n                    <div class=\"vrt-form-group\">\n                        <label for=\"vrt-tester-name\">Lead Penetration Tester<\/label>\n                        <input type=\"text\" id=\"vrt-tester-name\" value=\"Alex Vance, OSCP, CISSP\">\n                    <\/div>\n                    <div class=\"vrt-form-group\">\n                        <label for=\"vrt-assessment-type\">Assessment Type<\/label>\n                        <select id=\"vrt-assessment-type\">\n                            <option value=\"VAPT (Vulnerability Assessment &#038; Penetration Testing)\">VAPT<\/option>\n                            <option value=\"Web Application Penetration Testing\">Web Application Pentest<\/option>\n                            <option value=\"API Security Assessment\">API Security Assessment<\/option>\n                            <option value=\"Cloud Infrastructure Audit\">Cloud Infrastructure Audit<\/option>\n                            <option value=\"Bug Bounty Assessment\">Bug Bounty Assessment<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n                <div class=\"vrt-flex-row\">\n                    <div class=\"vrt-form-group\">\n                        <label for=\"vrt-report-date\">Assessment Date<\/label>\n                        <input type=\"date\" id=\"vrt-report-date\" value=\"2026-08-02\">\n                    <\/div>\n                    <div class=\"vrt-form-group\">\n                        <label for=\"vrt-report-version\">Report Version<\/label>\n                        <input type=\"text\" id=\"vrt-report-version\" value=\"1.0\">\n                    <\/div>\n                    <div class=\"vrt-form-group\">\n                        <label for=\"vrt-confidentiality\">Confidentiality Level<\/label>\n                        <select id=\"vrt-confidentiality\">\n                            <option value=\"TLP:AMBER - Strict Confidentiality\">TLP:AMBER<\/option>\n                            <option value=\"TLP:RED - Restricted Access\">TLP:RED<\/option>\n                            <option value=\"TLP:GREEN - Community Disclosure\">TLP:GREEN<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Tab 2: Vulnerabilities -->\n        <div class=\"vrt-tab-content\" id=\"tab-vulns\">\n            <div class=\"vrt-panel\">\n                <h2>\n                    <span>Vulnerability Inventory<\/span>\n                    <div style=\"display: flex; gap: 8px; align-items: center; flex-wrap: wrap;\">\n                        <input type=\"text\" id=\"vrt-search-vulns\" placeholder=\"Search findings...\" style=\"padding: 6px 12px; font-size: 0.8rem; width: 160px;\">\n                        <select id=\"vrt-sort-vulns\" style=\"padding: 6px 12px; font-size: 0.8rem; width: auto;\">\n                            <option value=\"default\">Sort by&#8230;<\/option>\n                            <option value=\"severity-desc\">Severity: High to Low<\/option>\n                            <option value=\"cvss-desc\">CVSS: High to Low<\/option>\n                        <\/select>\n                        <button type=\"button\" class=\"vrt-btn vrt-btn-secondary\" id=\"vrt-clear-all-vulns\" style=\"padding: 6px 14px; font-size: 0.8rem;\">Clear All<\/button>\n                        <button type=\"button\" class=\"vrt-btn\" id=\"vrt-add-vuln-btn\" style=\"padding: 6px 14px; font-size: 0.8rem;\">\u2795 Add Finding<\/button>\n                    <\/div>\n                <\/h2>\n                <div id=\"vrt-vulns-list-container\">\n                    <!-- Dynamic vulnerability items injected here -->\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Tab 3: Preview -->\n        <div class=\"vrt-tab-content\" id=\"tab-preview\">\n            <div class=\"vrt-panel\">\n                <h2>Live Structured Report Preview<\/h2>\n                <div class=\"vrt-preview-container\" id=\"vrt-preview-box\">\n                    <!-- Dynamic preview rendered here -->\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Tab 4: Export -->\n        <div class=\"vrt-tab-content\" id=\"tab-export\">\n            <div class=\"vrt-panel\">\n                <h2>Export &#038; Reporting Options<\/h2>\n                <p style=\"color: var(--vrt-text-muted); margin-bottom: 20px;\">Download your fully formatted report across multiple professional formats or print directly to PDF.<\/p>\n                <div style=\"display: flex; gap: 16px; flex-wrap: wrap;\">\n                    <button type=\"button\" class=\"vrt-btn\" id=\"vrt-export-md\">\ud83d\udcbe Download Markdown (.MD)<\/button>\n                    <button type=\"button\" class=\"vrt-btn vrt-btn-secondary\" id=\"vrt-export-html\">\ud83c\udf10 Download HTML Report<\/button>\n                    <button type=\"button\" class=\"vrt-btn vrt-btn-secondary\" id=\"vrt-export-json\">\ud83d\udce6 Backup JSON Data<\/button>\n                    <button type=\"button\" class=\"vrt-btn vrt-btn-secondary\" id=\"vrt-export-csv\">\ud83d\udcca Export CSV Vulnerabilities<\/button>\n                    <button type=\"button\" class=\"vrt-btn vrt-btn-secondary\" id=\"vrt-print-btn\">\ud83d\udda8\ufe0f Print \/ Save as PDF<\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"vrt-toast\" id=\"vrt-toast\">Changes saved successfully!<\/div>\n\n    <script>\n        (function() {\n            'use strict';\n\n            function initVRTApp() {\n                const container = document.getElementById('vrt-pro-container');\n                if (!container || container.dataset.vrtInitialized === 'true') return;\n                container.dataset.vrtInitialized = 'true';\n\n                const themeToggleBtn = document.getElementById('vrt-theme-toggle');\n                const addVulnBtn = document.getElementById('vrt-add-vuln-btn');\n                const clearAllVulnsBtn = document.getElementById('vrt-clear-all-vulns');\n                const resetStorageBtn = document.getElementById('vrt-reset-storage');\n                const searchVulnInput = document.getElementById('vrt-search-vulns');\n                const sortVulnSelect = document.getElementById('vrt-sort-vulns');\n                const vulnListContainer = document.getElementById('vrt-vulns-list-container');\n                const previewBox = document.getElementById('vrt-preview-box');\n                const toast = document.getElementById('vrt-toast');\n\n                \/\/ Metric DOM elements\n                const mTotal = document.getElementById('vrt-m-total');\n                const mCritical = document.getElementById('vrt-m-critical');\n                const mHigh = document.getElementById('vrt-m-high');\n                const mMedium = document.getElementById('vrt-m-medium');\n                const mLow = document.getElementById('vrt-m-low');\n\n                \/\/ Metadata inputs\n                const metaInputIds = [\n                    'vrt-report-title', 'vrt-project-name', 'vrt-client-name', \n                    'vrt-company-name', 'vrt-tester-name', 'vrt-assessment-type', \n                    'vrt-report-date', 'vrt-report-version', 'vrt-confidentiality'\n                ];\n\n                function showToast(msg) {\n                    if (!toast) return;\n                    toast.textContent = msg || 'Saved!';\n                    toast.classList.add('show');\n                    setTimeout(() => {\n                        toast.classList.remove('show');\n                    }, 2000);\n                }\n\n                function escapeHtml(str) {\n                    if (str === null || str === undefined) return '';\n                    return String(str)\n                        .replace(\/&\/g, '&amp;')\n                        .replace(\/<\/g, '&lt;')\n                        .replace(\/>\/g, '&gt;')\n                        .replace(\/\"\/g, '&quot;')\n                        .replace(\/'\/g, '&#039;');\n                }\n\n                \/\/ Default vulnerability database\n                let vulnerabilities = [\n                    {\n                        name: 'Broken Object Level Authorization (BOLA)',\n                        id: 'VRT-001',\n                        category: 'API Security',\n                        severity: 'Critical',\n                        cvss: '9.8',\n                        vector: 'CVSS:3.1\/AV:N\/AC:L\/PR:N\/UI:N\/S:U\/C:H\/I:H\/A:H',\n                        url: 'https:\/\/api.acme.com\/v1\/users\/{id}\/profile',\n                        component: 'User Profile REST API Endpoint',\n                        description: 'API endpoints fail to verify user session authorization when fetching account profile identifiers.',\n                        impact: 'Unauthorized adversaries can harvest sensitive records and personal identifiable information (PII) of all platform users.',\n                        riskExplanation: 'High risk of mass data exfiltration without requiring privileged credentials.',\n                        poc: 'GET \/v1\/users\/1042\/profile HTTP\/1.1\\nHost: api.acme.com\\nAuthorization: Bearer <low-priv-token>',\n                        steps: '1. Authenticate with a low-privilege user account.\\n2. Request profile of another user ID.\\n3. Observe unauthorized data returned.',\n                        remediation: 'Implement strict access control checks verifying that the authenticated session principal owns the requested object identifier.',\n                        references: 'https:\/\/owasp.org\/www-project-api-security\/ | CWE-639',\n                        cwe: 'CWE-639',\n                        owasp: 'API1:2023 Broken Object Level Authorization',\n                        evidence: 'Screenshots captured during test execution confirming object data leakage.'\n                    },\n                    {\n                        name: 'Reflected Cross-Site Scripting (XSS)',\n                        id: 'VRT-002',\n                        category: 'Web Application',\n                        severity: 'Medium',\n                        cvss: '6.1',\n                        vector: 'CVSS:3.1\/AV:N\/AC:L\/PR:N\/UI:R\/S:C\/C:L\/I:L\/A:N',\n                        url: 'https:\/\/acme.com\/search?q=<script>',\n                        component: 'Search Query Parameter Handler',\n                        description: 'The search query parameter reflects untrusted user input directly into the HTML document response without proper output sanitization.',\n                        impact: 'Allows attackers to execute malicious client-side scripts within victims browser context, leading to session hijacking.',\n                        riskExplanation: 'Requires user interaction via crafted phishing links.',\n                        poc: 'https:\/\/acme.com\/search?q=<script>alert(document.domain)<\/script>',\n                        steps: '1. Inject malicious payload into search parameter.\\n2. Send crafted URL to victim.',\n                        remediation: 'Apply context-aware HTML entity encoding and establish a strict Content Security Policy (CSP).',\n                        references: 'https:\/\/owasp.org\/www-community\/attacks\/xss\/ | CWE-79',\n                        cwe: 'CWE-79',\n                        owasp: 'A03:2021 Injection',\n                        evidence: 'Payload execution confirmed in modern browsers.'\n                    }\n                ];\n\n                \/\/ Load from localStorage if present\n                try {\n                    const savedState = localStorage.getItem('vrt_pro_state_data');\n                    if (savedState) {\n                        const parsed = JSON.parse(savedState);\n                        if (parsed.meta) {\n                            metaInputIds.forEach(id => {\n                                if (parsed.meta[id] !== undefined) {\n                                    const el = document.getElementById(id);\n                                    if (el) el.value = parsed.meta[id];\n                                }\n                            });\n                        }\n                        if (Array.isArray(parsed.vulns)) {\n                            vulnerabilities = parsed.vulns;\n                        }\n                        if (parsed.theme === 'light') {\n                            container.classList.add('vrt-light-mode');\n                        }\n                    }\n                } catch (e) {\n                    console.error('Error loading state', e);\n                }\n\n                function saveStateToStorage() {\n                    try {\n                        const meta = {};\n                        metaInputIds.forEach(id => {\n                            const el = document.getElementById(id);\n                            if (el) meta[id] = el.value;\n                        });\n                        const state = {\n                            meta: meta,\n                            vulns: vulnerabilities,\n                            theme: container.classList.contains('vrt-light-mode') ? 'light' : 'dark'\n                        };\n                        localStorage.setItem('vrt_pro_state_data', JSON.stringify(state));\n                    } catch (e) {\n                        console.error('Error saving state', e);\n                    }\n                }\n\n                \/\/ Theme Toggle\n                if (themeToggleBtn) {\n                    themeToggleBtn.addEventListener('click', function() {\n                        container.classList.toggle('vrt-light-mode');\n                        saveStateToStorage();\n                    });\n                }\n\n                \/\/ Tabs functionality\n                const tabBtns = container.querySelectorAll('.vrt-tab-btn');\n                tabBtns.forEach(btn => {\n                    btn.addEventListener('click', function() {\n                        tabBtns.forEach(b => b.classList.remove('active'));\n                        container.querySelectorAll('.vrt-tab-content').forEach(c => c.classList.remove('active'));\n                        \n                        this.classList.add('active');\n                        const targetId = 'tab-' + this.getAttribute('data-tab');\n                        const targetTab = document.getElementById(targetId);\n                        if (targetTab) targetTab.classList.add('active');\n                        if (this.getAttribute('data-tab') === 'preview') {\n                            generateReportPreview();\n                        }\n                    });\n                });\n\n                \/\/ Auto CVSS Severity Calculator Mapper\n                function calculateSeverityFromCVSS(scoreVal) {\n                    const score = parseFloat(scoreVal);\n                    if (isNaN(score)) return 'Medium';\n                    if (score >= 9.0) return 'Critical';\n                    if (score >= 7.0) return 'High';\n                    if (score >= 4.0) return 'Medium';\n                    if (score >= 0.1) return 'Low';\n                    return 'Informational';\n                }\n\n                \/\/ Render Vulnerability Management Form\n                function renderVulnForm() {\n                    if (!vulnListContainer) return;\n                    vulnListContainer.innerHTML = '';\n                    \n                    const searchTerm = searchVulnInput ? searchVulnInput.value.toLowerCase() : '';\n                    let filteredVulns = vulnerabilities.map((v, idx) => ({ v, originalIndex: idx })).filter(item => {\n                        if (!searchTerm) return true;\n                        return (item.v.name && item.v.name.toLowerCase().includes(searchTerm)) ||\n                               (item.v.id && item.v.id.toLowerCase().includes(searchTerm)) ||\n                               (item.v.category && item.v.category.toLowerCase().includes(searchTerm)) ||\n                               (item.v.component && item.v.component.toLowerCase().includes(searchTerm));\n                    });\n\n                    \/\/ Sorting\n                    if (sortVulnSelect) {\n                        const sortVal = sortVulnSelect.value;\n                        const sevWeight = { Critical: 5, High: 4, Medium: 3, Low: 2, Informational: 1 };\n                        if (sortVal === 'severity-desc') {\n                            filteredVulns.sort((a, b) => (sevWeight[b.v.severity] || 0) - (sevWeight[a.v.severity] || 0));\n                        } else if (sortVal === 'cvss-desc') {\n                            filteredVulns.sort((a, b) => (parseFloat(b.v.cvss) || 0) - (parseFloat(a.v.cvss) || 0));\n                        }\n                    }\n\n                    let counts = { Critical: 0, High: 0, Medium: 0, Low: 0, Informational: 0 };\n                    vulnerabilities.forEach(vuln => {\n                        if (counts[vuln.severity] !== undefined) counts[vuln.severity]++;\n                        else counts.Medium++;\n                    });\n\n                    if (mTotal) mTotal.textContent = vulnerabilities.length;\n                    if (mCritical) mCritical.textContent = counts.Critical;\n                    if (mHigh) mHigh.textContent = counts.High;\n                    if (mMedium) mMedium.textContent = counts.Medium;\n                    if (mLow) mLow.textContent = counts.Low + counts.Informational;\n\n                    if (filteredVulns.length === 0) {\n                        vulnListContainer.innerHTML = '<div style=\"text-align:center; padding: 30px; color: var(--vrt-text-muted);\">No vulnerabilities found matching your search.<\/div>';\n                        return;\n                    }\n\n                    filteredVulns.forEach(item => {\n                        const vuln = item.v;\n                        const index = item.originalIndex;\n\n                        const card = document.createElement('div');\n                        card.className = 'vrt-vuln-card';\n                        card.innerHTML = `\n                            <div style=\"display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; flex-wrap: wrap; gap: 10px;\">\n                                <h4 style=\"margin: 0; color: var(--vrt-primary); font-size: 1rem;\">Finding #${index + 1}: ${escapeHtml(vuln.name)}<\/h4>\n                                <div style=\"display: flex; gap: 8px;\">\n                                    <button type=\"button\" class=\"vrt-btn vrt-btn-secondary vrt-dup-vuln\" data-index=\"${index}\" style=\"padding: 4px 10px; font-size: 0.75rem;\">Duplicate<\/button>\n                                    <button type=\"button\" class=\"vrt-btn vrt-btn-danger vrt-del-vuln\" data-index=\"${index}\" style=\"padding: 4px 10px; font-size: 0.75rem;\">Delete<\/button>\n                                <\/div>\n                            <\/div>\n                            <div class=\"vrt-flex-row\">\n                                <div class=\"vrt-form-group\">\n                                    <label>Vulnerability Name<\/label>\n                                    <input type=\"text\" class=\"v-name\" data-index=\"${index}\" value=\"${escapeHtml(vuln.name)}\">\n                                <\/div>\n                                <div class=\"vrt-form-group\">\n                                    <label>Vulnerability ID<\/label>\n                                    <input type=\"text\" class=\"v-id\" data-index=\"${index}\" value=\"${escapeHtml(vuln.id)}\">\n                                <\/div>\n                            <\/div>\n                            <div class=\"vrt-flex-row\">\n                                <div class=\"vrt-form-group\">\n                                    <label>Category<\/label>\n                                    <input type=\"text\" class=\"v-cat\" data-index=\"${index}\" value=\"${escapeHtml(vuln.category)}\">\n                                <\/div>\n                                <div class=\"vrt-form-group\">\n                                    <label>CVSS Score (0.0 - 10.0)<\/label>\n                                    <input type=\"text\" class=\"v-cvss\" data-index=\"${index}\" value=\"${escapeHtml(vuln.cvss)}\">\n                                <\/div>\n                                <div class=\"vrt-form-group\">\n                                    <label>Severity (Auto-mapped)<\/label>\n                                    <select class=\"v-sev\" data-index=\"${index}\">\n                                        <option value=\"Critical\" ${vuln.severity === 'Critical' ? 'selected' : ''}>Critical<\/option>\n                                        <option value=\"High\" ${vuln.severity === 'High' ? 'selected' : ''}>High<\/option>\n                                        <option value=\"Medium\" ${vuln.severity === 'Medium' ? 'selected' : ''}>Medium<\/option>\n                                        <option value=\"Low\" ${vuln.severity === 'Low' ? 'selected' : ''}>Low<\/option>\n                                        <option value=\"Informational\" ${vuln.severity === 'Informational' ? 'selected' : ''}>Informational<\/option>\n                                    <\/select>\n                                <\/div>\n                            <\/div>\n                            <div class=\"vrt-flex-row\">\n                                <div class=\"vrt-form-group\">\n                                    <label>CVSS Vector<\/label>\n                                    <input type=\"text\" class=\"v-vector\" data-index=\"${index}\" value=\"${escapeHtml(vuln.vector)}\">\n                                <\/div>\n                                <div class=\"vrt-form-group\">\n                                    <label>Affected URL<\/label>\n                                    <input type=\"text\" class=\"v-url\" data-index=\"${index}\" value=\"${escapeHtml(vuln.url)}\">\n                                <\/div>\n                            <\/div>\n                            <div class=\"vrt-flex-row\">\n                                <div class=\"vrt-form-group\">\n                                    <label>Affected Component<\/label>\n                                    <input type=\"text\" class=\"v-component\" data-index=\"${index}\" value=\"${escapeHtml(vuln.component)}\">\n                                <\/div>\n                                <div class=\"vrt-form-group\">\n                                    <label>CWE ID \/ OWASP Category<\/label>\n                                    <input type=\"text\" class=\"v-cwe\" data-index=\"${index}\" value=\"${escapeHtml(vuln.cwe)}\">\n                                <\/div>\n                            <\/div>\n                            <div class=\"vrt-form-group\">\n                                <label>Description<\/label>\n                                <textarea class=\"v-desc\" data-index=\"${index}\">${escapeHtml(vuln.description)}<\/textarea>\n                            <\/div>\n                            <div class=\"vrt-flex-row\">\n                                <div class=\"vrt-form-group\">\n                                    <label>Business Impact<\/label>\n                                    <textarea class=\"v-impact\" data-index=\"${index}\">${escapeHtml(vuln.impact)}<\/textarea>\n                                <\/div>\n                                <div class=\"vrt-form-group\">\n                                    <label>Risk Explanation<\/label>\n                                    <textarea class=\"v-risk\" data-index=\"${index}\">${escapeHtml(vuln.riskExplanation)}<\/textarea>\n                                <\/div>\n                            <\/div>\n                            <div class=\"vrt-flex-row\">\n                                <div class=\"vrt-form-group\">\n                                    <label>Proof of Concept (PoC)<\/label>\n                                    <textarea class=\"v-poc\" data-index=\"${index}\">${escapeHtml(vuln.poc)}<\/textarea>\n                                <\/div>\n                                <div class=\"vrt-form-group\">\n                                    <label>Steps To Reproduce<\/label>\n                                    <textarea class=\"v-steps\" data-index=\"${index}\">${escapeHtml(vuln.steps)}<\/textarea>\n                                <\/div>\n                            <\/div>\n                            <div class=\"vrt-form-group\">\n                                <label>Remediation<\/label>\n                                <textarea class=\"v-remed\" data-index=\"${index}\">${escapeHtml(vuln.remediation)}<\/textarea>\n                            <\/div>\n                            <div class=\"vrt-flex-row\">\n                                <div class=\"vrt-form-group\">\n                                    <label>References<\/label>\n                                    <input type=\"text\" class=\"v-refs\" data-index=\"${index}\" value=\"${escapeHtml(vuln.references)}\">\n                                <\/div>\n                                <div class=\"vrt-form-group\">\n                                    <label>Evidence \/ Screenshot Notes<\/label>\n                                    <input type=\"text\" class=\"v-evidence\" data-index=\"${index}\" value=\"${escapeHtml(vuln.evidence)}\">\n                                <\/div>\n                            <\/div>\n                        `;\n                        vulnListContainer.appendChild(card);\n                    });\n                }\n\n                \/\/ Event listener on vuln container for live updates\n                if (vulnListContainer) {\n                    vulnListContainer.addEventListener('input', function(e) {\n                        const target = e.target;\n                        const idx = parseInt(target.getAttribute('data-index'), 10);\n                        if (isNaN(idx) || !vulnerabilities[idx]) return;\n\n                        if (target.classList.contains('v-name')) vulnerabilities[idx].name = target.value;\n                        else if (target.classList.contains('v-id')) vulnerabilities[idx].id = target.value;\n                        else if (target.classList.contains('v-cat')) vulnerabilities[idx].category = target.value;\n                        else if (target.classList.contains('v-cvss')) {\n                            vulnerabilities[idx].cvss = target.value;\n                            const mappedSev = calculateSeverityFromCVSS(target.value);\n                            vulnerabilities[idx].severity = mappedSev;\n                            const cardEl = target.closest('.vrt-vuln-card');\n                            if (cardEl) {\n                                const sevSelect = cardEl.querySelector('.v-sev');\n                                if (sevSelect) sevSelect.value = mappedSev;\n                            }\n                        } else if (target.classList.contains('v-sev')) vulnerabilities[idx].severity = target.value;\n                        else if (target.classList.contains('v-vector')) vulnerabilities[idx].vector = target.value;\n                        else if (target.classList.contains('v-url')) vulnerabilities[idx].url = target.value;\n                        else if (target.classList.contains('v-component')) vulnerabilities[idx].component = target.value;\n                        else if (target.classList.contains('v-cwe')) vulnerabilities[idx].cwe = target.value;\n                        else if (target.classList.contains('v-desc')) vulnerabilities[idx].description = target.value;\n                        else if (target.classList.contains('v-impact')) vulnerabilities[idx].impact = target.value;\n                        else if (target.classList.contains('v-risk')) vulnerabilities[idx].riskExplanation = target.value;\n                        else if (target.classList.contains('v-poc')) vulnerabilities[idx].poc = target.value;\n                        else if (target.classList.contains('v-steps')) vulnerabilities[idx].steps = target.value;\n                        else if (target.classList.contains('v-remed')) vulnerabilities[idx].remediation = target.value;\n                        else if (target.classList.contains('v-refs')) vulnerabilities[idx].references = target.value;\n                        else if (target.classList.contains('v-evidence')) vulnerabilities[idx].evidence = target.value;\n\n                        saveStateToStorage();\n                    });\n\n                    vulnListContainer.addEventListener('click', function(e) {\n                        const target = e.target;\n                        const idx = parseInt(target.getAttribute('data-index'), 10);\n                        if (isNaN(idx)) return;\n\n                        if (target.classList.contains('vrt-del-vuln')) {\n                            vulnerabilities.splice(idx, 1);\n                            renderVulnForm();\n                            saveStateToStorage();\n                            showToast('Finding deleted.');\n                        } else if (target.classList.contains('vrt-dup-vuln')) {\n                            const clone = JSON.parse(JSON.stringify(vulnerabilities[idx]));\n                            clone.id = clone.id + '-COPY';\n                            clone.name = clone.name + ' (Copy)';\n                            vulnerabilities.splice(idx + 1, 0, clone);\n                            renderVulnForm();\n                            saveStateToStorage();\n                            showToast('Finding duplicated.');\n                        }\n                    });\n                }\n\n                if (addVulnBtn) {\n                    addVulnBtn.addEventListener('click', function() {\n                        const newIdNum = vulnerabilities.length + 1;\n                        vulnerabilities.push({\n                            name: 'New Vulnerability Finding',\n                            id: 'VRT-' + String(newIdNum).padStart(3, '0'),\n                            category: 'Web Application',\n                            severity: 'Medium',\n                            cvss: '5.3',\n                            vector: 'CVSS:3.1\/AV:N\/AC:L\/PR:N\/UI:N\/S:U\/C:L\/I:N\/A:N',\n                            url: 'https:\/\/example.com\/endpoint',\n                            component: 'Input Form Component',\n                            description: 'Detailed description of the discovered security weakness.',\n                            impact: 'Potential exposure or operational impact.',\n                            riskExplanation: 'Risk reasoning description.',\n                            poc: 'Example request or command.',\n                            steps: '1. Step one\\n2. Step two',\n                            remediation: 'Recommended security patch or code fix.',\n                            references: 'https:\/\/owasp.org',\n                            cwe: 'CWE-20',\n                            owasp: 'A01:2021 Broken Access Control',\n                            evidence: 'Log sample or screenshot note.'\n                        });\n                        renderVulnForm();\n                        saveStateToStorage();\n                        showToast('New finding added.');\n                    });\n                }\n\n                if (clearAllVulnsBtn) {\n                    clearAllVulnsBtn.addEventListener('click', function() {\n                        if (confirm('Are you sure you want to clear all vulnerabilities?')) {\n                            vulnerabilities = [];\n                            renderVulnForm();\n                            saveStateToStorage();\n                            showToast('All findings cleared.');\n                        }\n                    });\n                }\n\n                if (resetStorageBtn) {\n                    resetStorageBtn.addEventListener('click', function() {\n                        if (confirm('Reset all saved data and restore defaults?')) {\n                            localStorage.removeItem('vrt_pro_state_data');\n                            location.reload();\n                        }\n                    });\n                }\n\n                if (searchVulnInput) {\n                    searchVulnInput.addEventListener('input', () => renderVulnForm());\n                }\n                if (sortVulnSelect) {\n                    sortVulnSelect.addEventListener('change', () => renderVulnForm());\n                }\n\n                metaInputIds.forEach(id => {\n                    const el = document.getElementById(id);\n                    if (el) {\n                        el.addEventListener('input', saveStateToStorage);\n                    }\n                });\n\n                \/\/ Live Report Preview Generator\n                function generateReportPreview() {\n                    if (!previewBox) return;\n\n                    const getVal = (id) => {\n                        const el = document.getElementById(id);\n                        return el ? el.value : '';\n                    };\n\n                    const title = getVal('vrt-report-title');\n                    const project = getVal('vrt-project-name');\n                    const client = getVal('vrt-client-name');\n                    const company = getVal('vrt-company-name');\n                    const tester = getVal('vrt-tester-name');\n                    const assessmentType = getVal('vrt-assessment-type');\n                    const date = getVal('vrt-report-date');\n                    const version = getVal('vrt-report-version');\n                    const confidentiality = getVal('vrt-confidentiality');\n\n                    let counts = { Critical: 0, High: 0, Medium: 0, Low: 0, Informational: 0 };\n                    vulnerabilities.forEach(v => {\n                        if (counts[v.severity] !== undefined) counts[v.severity]++;\n                        else counts.Medium++;\n                    });\n\n                    let html = `\n                        <div style=\"text-align: center; padding: 40px 0; border-bottom: 2px solid var(--vrt-card-border); margin-bottom: 30px;\">\n                            <div style=\"font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--vrt-primary); font-weight: 700; margin-bottom: 10px;\">${escapeHtml(confidentiality)}<\/div>\n                            <h1 style=\"font-size: 2.2rem; font-weight: 900; margin: 0 0 10px 0; color: var(--vrt-text); word-break: break-word;\">${escapeHtml(title)}<\/h1>\n                            <div style=\"font-size: 1.1rem; color: var(--vrt-text-muted); margin-bottom: 20px; word-break: break-word;\">Project: ${escapeHtml(project)}<\/div>\n                            <div style=\"display: inline-block; background: var(--vrt-card-bg); border: 1px solid var(--vrt-card-border); padding: 12px 24px; border-radius: 8px; text-align: left; font-size: 0.9rem; max-width: 100%;\">\n                                <div><strong>Client:<\/strong> ${escapeHtml(client)}<\/div>\n                                <div><strong>Audited By:<\/strong> ${escapeHtml(company)} (${escapeHtml(tester)})<\/div>\n                                <div><strong>Assessment Date:<\/strong> ${escapeHtml(date)} | <strong>Version:<\/strong> ${escapeHtml(version)}<\/div>\n                            <\/div>\n                        <\/div>\n\n                        <h3>1. Executive Summary<\/h3>\n                        <p>During ${escapeHtml(date)}, ${escapeHtml(company)} conducted an intensive security assessment of <strong>${escapeHtml(project)}<\/strong> commissioned by <strong>${escapeHtml(client)}<\/strong>. The engagement utilized professional penetration testing methodologies to identify exploitable vulnerabilities and evaluate overall security posture.<\/p>\n                        <p>A total of <strong>${vulnerabilities.length}<\/strong> findings were discovered across the assessment scope, requiring prompt remediation to protect system assets and data integrity.<\/p>\n\n                        <h3>2. Risk Rating Summary<\/h3>\n                        <div class=\"vrt-table-responsive\">\n                            <table class=\"vrt-table\">\n                                <thead>\n                                    <tr>\n                                        <th>Severity<\/th>\n                                        <th>Count<\/th>\n                                        <th>Description<\/th>\n                                    <\/tr>\n                                <\/thead>\n                                <tbody>\n                                    <tr><td><span class=\"vrt-badge vrt-badge-critical\">Critical<\/span><\/td><td>${counts.Critical}<\/td><td>Immediate exploitation possible leading to full system compromise.<\/td><\/tr>\n                                    <tr><td><span class=\"vrt-badge vrt-badge-high\">High<\/span><\/td><td>${counts.High}<\/td><td>Severe vulnerabilities requiring urgent remediation.<\/td><\/tr>\n                                    <tr><td><span class=\"vrt-badge vrt-badge-medium\">Medium<\/span><\/td><td>${counts.Medium}<\/td><td>Moderate impact flaws exploitable under specific conditions.<\/td><\/tr>\n                                    <tr><td><span class=\"vrt-badge vrt-badge-low\">Low \/ Info<\/span><\/td><td>${counts.Low + counts.Informational}<\/td><td>Minor security improvements or informational observations.<\/td><\/tr>\n                                <\/tbody>\n                            <\/table>\n                        <\/div>\n\n                        <h3>3. Vulnerability Summary Table<\/h3>\n                        <div class=\"vrt-table-responsive\">\n                            <table class=\"vrt-table\">\n                                <thead>\n                                    <tr>\n                                        <th>ID<\/th>\n                                        <th>Vulnerability Name<\/th>\n                                        <th>Category<\/th>\n                                        <th>Severity<\/th>\n                                        <th>CVSS<\/th>\n                                    <\/tr>\n                                <\/thead>\n                                <tbody>\n                    `;\n\n                    if (vulnerabilities.length === 0) {\n                        html += `<tr><td colspan=\"5\" style=\"text-align: center; color: var(--vrt-text-muted);\">No vulnerabilities recorded.<\/td><\/tr>`;\n                    } else {\n                        vulnerabilities.forEach(v => {\n                            let badgeClass = 'vrt-badge-low';\n                            if (v.severity === 'Critical') badgeClass = 'vrt-badge-critical';\n                            else if (v.severity === 'High') badgeClass = 'vrt-badge-high';\n                            else if (v.severity === 'Medium') badgeClass = 'vrt-badge-medium';\n                            else if (v.severity === 'Informational') badgeClass = 'vrt-badge-info';\n\n                            html += `\n                                <tr>\n                                    <td><strong>${escapeHtml(v.id)}<\/strong><\/td>\n                                    <td>${escapeHtml(v.name)}<\/td>\n                                    <td>${escapeHtml(v.category)}<\/td>\n                                    <td><span class=\"vrt-badge ${badgeClass}\">${escapeHtml(v.severity)}<\/span><\/td>\n                                    <td>${escapeHtml(v.cvss)}<\/td>\n                                <\/tr>\n                            `;\n                        });\n                    }\n\n                    html += `\n                                <\/tbody>\n                            <\/table>\n                        <\/div>\n\n                        <h3>4. Detailed Findings<\/h3>\n                    `;\n\n                    if (vulnerabilities.length === 0) {\n                        html += `<p style=\"color: var(--vrt-text-muted);\">No detailed findings available.<\/p>`;\n                    } else {\n                        vulnerabilities.forEach((v, idx) => {\n                            let badgeClass = 'vrt-badge-low';\n                            if (v.severity === 'Critical') badgeClass = 'vrt-badge-critical';\n                            else if (v.severity === 'High') badgeClass = 'vrt-badge-high';\n                            else if (v.severity === 'Medium') badgeClass = 'vrt-badge-medium';\n                            else if (v.severity === 'Informational') badgeClass = 'vrt-badge-info';\n\n                            html += `\n                                <div style=\"background: var(--vrt-card-bg); border: 1px solid var(--vrt-card-border); border-radius: 8px; padding: 20px; margin-bottom: 20px; overflow-wrap: break-word;\">\n                                    <h4 style=\"margin-top: 0; color: var(--vrt-primary); font-size: 1.1rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px;\">\n                                        <span>${escapeHtml(v.id)} - ${escapeHtml(v.name)}<\/span>\n                                        <span class=\"vrt-badge ${badgeClass}\">${escapeHtml(v.severity)} (CVSS: ${escapeHtml(v.cvss)})<\/span>\n                                    <\/h4>\n                                    <div style=\"font-size: 0.875rem; color: var(--vrt-text-muted); margin-bottom: 12px; display: flex; gap: 16px; flex-wrap: wrap;\">\n                                        <span><strong>Category:<\/strong> ${escapeHtml(v.category)}<\/span>\n                                        <span><strong>Component:<\/strong> ${escapeHtml(v.component)}<\/span>\n                                        <span><strong>URL:<\/strong> ${escapeHtml(v.url)}<\/span>\n                                    <\/div>\n                                    <p><strong>Description:<\/strong><br>${escapeHtml(v.description)}<\/p>\n                                    <p><strong>Business Impact:<\/strong><br>${escapeHtml(v.impact)}<\/p>\n                                    ${v.steps ? `<p><strong>Steps To Reproduce:<\/strong><br><pre style=\"background: rgba(0,0,0,0.2); padding: 10px; border-radius: 6px; overflow-x: auto; white-space: pre-wrap; word-break: break-all;\">${escapeHtml(v.steps)}<\/pre><\/p>` : ''}\n                                    ${v.poc ? `<p><strong>Proof of Concept:<\/strong><br><pre style=\"background: rgba(0,0,0,0.2); padding: 10px; border-radius: 6px; overflow-x: auto; white-space: pre-wrap; word-break: break-all;\">${escapeHtml(v.poc)}<\/pre><\/p>` : ''}\n                                    <p><strong>Remediation:<\/strong><br>${escapeHtml(v.remediation)}<\/p>\n                                    ${v.references ? `<p><strong>References:<\/strong><br>${escapeHtml(v.references)}<\/p>` : ''}\n                                <\/div>\n                            `;\n                        });\n                    }\n\n                    previewBox.innerHTML = html;\n                }\n\n                \/\/ Export Systems\n                const exportMdBtn = document.getElementById('vrt-export-md');\n                const exportHtmlBtn = document.getElementById('vrt-export-html');\n                const exportJsonBtn = document.getElementById('vrt-export-json');\n                const exportCsvBtn = document.getElementById('vrt-export-csv');\n                const printBtn = document.getElementById('vrt-print-btn');\n\n                function getProjectFilename(ext) {\n                    const projEl = document.getElementById('vrt-project-name');\n                    const cleanName = projEl && projEl.value ? projEl.value.replace(\/[^a-zA-Z0-9-_]\/g, '_') : 'Project';\n                    return `Vulnerability_Report_${cleanName}.${ext}`;\n                }\n\n                if (exportMdBtn) {\n                    exportMdBtn.addEventListener('click', function() {\n                        const getVal = (id) => document.getElementById(id) ? document.getElementById(id).value : '';\n                        let md = `# ${getVal('vrt-report-title')}\\n\\n`;\n                        md += `**Project:** ${getVal('vrt-project-name')}\\n`;\n                        md += `**Client:** ${getVal('vrt-client-name')}\\n`;\n                        md += `**Audited By:** ${getVal('vrt-company-name')} (${getVal('vrt-tester-name')})\\n`;\n                        md += `**Date:** ${getVal('vrt-report-date')} | **Version:** ${getVal('vrt-report-version')}\\n\\n`;\n                        md += `## Executive Summary\\nAssessment type: ${getVal('vrt-assessment-type')}.\\n\\n`;\n                        md += `## Vulnerability Findings\\n\\n`;\n\n                        vulnerabilities.forEach(v => {\n                            md += `### ${v.id}: ${v.name}\\n`;\n                            md += `- **Severity:** ${v.severity} (CVSS: ${v.cvss})\\n`;\n                            md += `- **Category:** ${v.category}\\n`;\n                            md += `- **Component:** ${v.component}\\n`;\n                            md += `- **URL:** ${v.url}\\n\\n`;\n                            md += `**Description:**\\n${v.description}\\n\\n`;\n                            md += `**Impact:**\\n${v.impact}\\n\\n`;\n                            if (v.steps) md += `**Steps to Reproduce:**\\n${v.steps}\\n\\n`;\n                            if (v.poc) md += `**Proof of Concept:**\\n\\`\\`\\`\\n${v.poc}\\n\\`\\`\\`\\n\\n`;\n                            md += `**Remediation:**\\n${v.remediation}\\n\\n---\\n\\n`;\n                        });\n\n                        const blob = new Blob([md], { type: 'text\/markdown;charset=utf-8;' });\n                        const url = URL.createObjectURL(blob);\n                        const a = document.createElement('a');\n                        a.href = url;\n                        a.download = getProjectFilename('md');\n                        a.click();\n                        URL.revokeObjectURL(url);\n                        showToast('Markdown exported successfully.');\n                    });\n                }\n\n                if (exportHtmlBtn) {\n                    exportHtmlBtn.addEventListener('click', function() {\n                        generateReportPreview();\n                        const fullHtml = `<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<title>${escapeHtml(document.getElementById('vrt-report-title').value)}<\/title>\n<style>\nbody { font-family: sans-serif; background: #090d16; color: #f9fafb; padding: 40px; line-height: 1.6; }\n.container { max-width: 900px; margin: 0 auto; background: #111827; padding: 40px; border-radius: 12px; border: 1px solid #1f2937; }\ntable { width: 100%; border-collapse: collapse; margin: 16px 0; }\nth, td { padding: 12px; border: 1px solid #1f2937; text-align: left; }\nth { background: rgba(0,0,0,0.3); }\n.badge { padding: 4px 8px; border-radius: 4px; font-weight: bold; font-size: 0.75rem; }\n.critical { background: #b91c1c; color: #fff; }\n.high { background: #ef4444; color: #fff; }\n.medium { background: #f59e0b; color: #000; }\n.low { background: #3b82f6; color: #fff; }\n<\/style>\n<\/head>\n<body>\n<div class=\"container\">\n${previewBox.innerHTML}\n<\/div>\n<\/body>\n<\/html>`;\n\n                        const blob = new Blob([fullHtml], { type: 'text\/html;charset=utf-8;' });\n                        const url = URL.createObjectURL(blob);\n                        const a = document.createElement('a');\n                        a.href = url;\n                        a.download = getProjectFilename('html');\n                        a.click();\n                        URL.revokeObjectURL(url);\n                        showToast('HTML Report exported successfully.');\n                    });\n                }\n\n                if (exportJsonBtn) {\n                    exportJsonBtn.addEventListener('click', function() {\n                        const meta = {};\n                        metaInputIds.forEach(id => {\n                            const el = document.getElementById(id);\n                            if (el) meta[id] = el.value;\n                        });\n                        const exportData = { meta, vulnerabilities };\n                        const blob = new Blob([JSON.stringify(exportData, null, 2)], { type: 'application\/json;charset=utf-8;' });\n                        const url = URL.createObjectURL(blob);\n                        const a = document.createElement('a');\n                        a.href = url;\n                        a.download = getProjectFilename('json');\n                        a.click();\n                        URL.revokeObjectURL(url);\n                        showToast('JSON backup exported successfully.');\n                    });\n                }\n\n                if (exportCsvBtn) {\n                    exportCsvBtn.addEventListener('click', function() {\n                        let csv = 'ID,Name,Category,Severity,CVSS,URL,Component\\n';\n                        vulnerabilities.forEach(v => {\n                            csv += `\"${v.id}\",\"${(v.name || '').replace(\/\"\/g, '\"\"')}\",\"${v.category}\",\"${v.severity}\",\"${v.cvss}\",\"${v.url}\",\"${(v.component || '').replace(\/\"\/g, '\"\"')}\"\\n`;\n                        });\n                        const blob = new Blob([csv], { type: 'text\/csv;charset=utf-8;' });\n                        const url = URL.createObjectURL(blob);\n                        const a = document.createElement('a');\n                        a.href = url;\n                        a.download = getProjectFilename('csv');\n                        a.click();\n                        URL.revokeObjectURL(url);\n                        showToast('CSV exported successfully.');\n                    });\n                }\n\n                if (printBtn) {\n                    printBtn.addEventListener('click', function() {\n                        generateReportPreview();\n                        window.print();\n                    });\n                }\n\n                \/\/ Initial Render\n                renderVulnForm();\n            }\n\n            if (document.readyState === 'loading') {\n                document.addEventListener('DOMContentLoaded', initVRTApp);\n            } else {\n                initVRTApp();\n            }\n        })();\n    <\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Vulnerability Report Template Generator Pro \ud83d\udee1\ufe0f Vulnerability Report Template Generator Pro Edition \ud83d\uddd1\ufe0f Clear Data \ud83c\udf13 Theme Total Findings 0 Critical 0 High 0 Medium 0 Low \/ Info 0 \ud83d\udccb Report Metadata \ud83d\udc1b Vulnerabilities \ud83d\udc41\ufe0f Live Report Preview \ud83d\udcbe Export &#038; Print Engagement &#038; Report Metadata Report Title Project Name Client Name Auditing Company [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-877","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/freewebtools.co.in\/index.php\/wp-json\/wp\/v2\/pages\/877","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/freewebtools.co.in\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/freewebtools.co.in\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/freewebtools.co.in\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/freewebtools.co.in\/index.php\/wp-json\/wp\/v2\/comments?post=877"}],"version-history":[{"count":5,"href":"https:\/\/freewebtools.co.in\/index.php\/wp-json\/wp\/v2\/pages\/877\/revisions"}],"predecessor-version":[{"id":882,"href":"https:\/\/freewebtools.co.in\/index.php\/wp-json\/wp\/v2\/pages\/877\/revisions\/882"}],"wp:attachment":[{"href":"https:\/\/freewebtools.co.in\/index.php\/wp-json\/wp\/v2\/media?parent=877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}