test

Path 5
Page updated: 14 Aug 2026

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>ANNUAL REPORT ON THE EASTERN HIGH SEAS POCKET SPECIAL MANAGEMENT AREA (EHSP-SMA)</title>
   <link rel="preconnect" href="https://fonts.googleapis.com">
   <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
   <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700;90…" rel="stylesheet">
   <script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.1/dist/chart.umd.min.js">
   </script>

   <style>
       body {
           background-color: #eef2f5;
           font-family: 'Roboto', Arial, sans-serif;
           color: #333333;
           margin: 0;
           padding: 40px;
           display: flex;
           justify-content: center;
       }
       .infographic-canvas {
           background-color: #ffffff;
           width: 100%;
           max-width: 1250px;
           box-shadow: 0 15px 35px rgba(11, 69, 114, 0.15);
           position: relative;
           overflow: hidden;
       }
       .header-banner {
           background-color: #0b4572;
           padding: 50px 40px 80px 40px;
           text-align: center;
           position: relative;
       }
       .wave-divider {
           position: absolute;
           bottom: -1px;
           left: 0;
           width: 100%;
           overflow: hidden;
           line-height: 0;
       }
       .wave-divider svg {
           display: block;
           width: calc(100% + 1.3px);
           height: 50px;
       }
       .header-banner h1 {
           color: #ffffff;
           margin: 0 0 8px 0;
           font-size: 32px;
           font-weight: 900;
           letter-spacing: 1px;
           text-transform: uppercase;
       }
       .content-wrapper {
           padding: 20px 50px 50px 50px;
       }
       .section-title {
           color: #0b4572;
           font-size: 24px;
           font-weight: 900;
           text-transform: uppercase;
           letter-spacing: 0.5px;
           margin: 40px 0 20px 0;
           padding-bottom: 10px;
           border-bottom: 3px solid #277fc3;
           display: inline-block;
           width: 100%;
       }
       .grid-2-col {
           display: grid;
           grid-template-columns: 1fr 1fr;
           gap: 30px;
           margin-bottom: 30px;
       }
       .grid-3-col {
           display: grid;
           grid-template-columns: 1fr 1fr 1fr;
           gap: 20px;
           margin-bottom: 30px;
       }
       .grid-1-col {
           display: grid;
           grid-template-columns: 1fr;
           gap: 30px;
           margin-bottom: 30px;
       }
       .panel {
           background-color: #ffffff;
           border-radius: 12px;
           padding: 25px;
           box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
           border: 1px solid #e1e8ed;
           border-top: 5px solid #0b4572;
       }
       .panel.accent-blue {
           border-top-color: #277fc3;
       }
       .panel.accent-red {
           border-top-color: #d32f2f;
       }
       .panel.accent-green {
           border-top-color: #2e8b57;
       }
       .panel.accent-orange {
           border-top-color: #e6a817;
       }
       .panel.accent-purple {
           border-top-color: #8e24aa;
       }
       h3 {
           font-size: 16px;
           color: #0b4572;
           margin-top: 0;
           margin-bottom: 20px;
           font-weight: 700;
           text-transform: uppercase;
       }
       p,
       li {
           font-size: 14px;
           line-height: 1.6;
           color: #445566;
       }
       .kpi-card {
           background: #f8fafc;
           padding: 25px;
           border-radius: 12px;
           border-left: 6px solid #277fc3;
           display: flex;
           align-items: center;
           gap: 22px;
           box-shadow: 0 4px 15px rgba(0, 0, 0, 0.06);
           height: 100%;
       }
       .kpi-text {
           flex-grow: 1;
       }
       .kpi-val {
           font-size: 42px;
           font-weight: 900;
           color: #0b4572;
           line-height: 1;
       }
       .kpi-label {
           font-size: 15px;
           font-weight: 700;
           color: #0b4572;
           text-transform: uppercase;
           letter-spacing: 0.6px;
       }
       .kpi-sub {
           font-size: 13px;
           color: #6c8ea8;
           margin-top: 6px;
           line-height: 1.4;
       }
       .pie-chart {
           border-radius: 50%;
           box-shadow: inset 0 0 0 14px rgba(255, 255, 255, 0.5), 0 10px 25px rgba(0, 0, 0, 0.1);
           flex-shrink: 0;
           width: 110px;
           height: 110px;
       }
       .data-table {
           width: 100%;
           border-collapse: collapse;
           margin-top: 10px;
           font-size: 13px;
       }
       .data-table th {
           background-color: #f0f4f8;
           color: #0b4572;
           font-size: 12px;
           text-transform: uppercase;
           padding: 10px;
           text-align: right;
           font-weight: 700;
           border-bottom: 2px solid #b9d2e5;
       }
       .data-table th:first-child,
       .data-table th:nth-child(2),
       .data-table th:nth-child(3) {
           text-align: left;
       }
       .data-table td {
           padding: 8px 10px;
           border-bottom: 1px solid #e1e8ed;
           color: #445566;
           text-align: right;
           font-weight: 500;
       }
       .data-table td:first-child,
       .data-table td:nth-child(2),
       .data-table td:nth-child(3) {
           text-align: left;
           font-weight: 700;
           color: #0b4572;
       }
       .table-container {
           overflow-x: visible;
       }
       .trend-chart-container {
           padding: 12px;
           background: #f8fafc;
           border-radius: 8px;
       }
       canvas {
           max-height: 300px;
       }

       /* screen-only page break marker (hidden on print) */
       .print-only-page-break {
           display: none;
       }

       @media screen {
           .print-only-page-break {
               display: none;
           }
       }

       /* ===== PRINT STYLES – A4 SEAMLESS PAGINATION ===== */
       @media print {
           @page {
               size: A4 portrait;
               margin: 1.2cm 1.2cm 1.2cm 1.2cm;
           }

           body {
               background-color: #ffffff !important;
               padding: 0 !important;
               display: block !important;
               -webkit-print-color-adjust: exact !important;
               print-color-adjust: exact !important;
           }

           .infographic-canvas {
               box-shadow: none !important;
               max-width: 100% !important;
               width: 100% !important;
               margin: 0 !important;
               overflow: visible !important;
           }

           /* ----- HEADER (compact for print) ----- */
           .header-banner {
               padding: 16px 20px 28px 20px !important;
               background-color: #0b4572 !important;
               -webkit-print-color-adjust: exact !important;
               print-color-adjust: exact !important;
           }
           .header-banner h1 {
               font-size: 20px !important;
               margin: 0 !important;
               letter-spacing: 0.6px !important;
           }
           .wave-divider svg {
               height: 28px !important;
           }

           /* ----- CONTENT WRAPPER (tighter spacing) ----- */
           .content-wrapper {
               padding: 12px 16px 20px 16px !important;
           }

           /* ----- SECTION TITLES – no automatic page break; controlled by .print-only-page-break ----- */
           .section-title {
               font-size: 17px !important;
               margin: 14px 0 10px 0 !important;
               padding-bottom: 5px !important;
               border-bottom-width: 2px !important;
               page-break-before: avoid !important;
               page-break-after: avoid !important;
               display: block !important;
               width: 100% !important;
           }
           .section-title.section-spaced {
               margin-top: 30px !important;
           }
           .section-title:first-of-type {
               margin-top: 2px !important;
           }

           /* ----- PAGE BREAK TRIGGERS (hidden on screen, visible in print) ----- */
           .print-only-page-break {
               display: block !important;
               page-break-before: always !important;
               break-before: page !important;
               visibility: visible !important;
               height: 0 !important;
               margin: 0 !important;
               padding: 0 !important;
               border: none !important;
               line-height: 0 !important;
           }

           /* ----- GRID LAYOUTS – flex-based for reliable print ----- */
           .grid-3-col {
               display: flex !important;
               flex-wrap: wrap !important;
               gap: 10px !important;
               margin-bottom: 10px !important;
           }
           .grid-3-col>div {
               width: calc(33.33% - 7px) !important;
               flex: 0 0 calc(33.33% - 7px) !important;
               box-sizing: border-box !important;
           }

           .grid-2-col {
               display: flex !important;
               flex-wrap: wrap !important;
               gap: 12px !important;
               margin-bottom: 10px !important;
           }
           .grid-2-col>div {
               width: calc(50% - 6px) !important;
               flex: 0 0 calc(50% - 6px) !important;
               box-sizing: border-box !important;
           }

           .grid-1-col {
               display: block !important;
               width: 100% !important;
               margin-bottom: 10px !important;
           }

           /* ----- PANELS & CARDS – avoid breaks inside ----- */
           .panel {
               padding: 12px 14px !important;
               margin-bottom: 10px !important;
               break-inside: avoid !important;
               page-break-inside: avoid !important;
               border-radius: 6px !important;
               border-top-width: 4px !important;
           }

           .kpi-card {
               padding: 12px 14px !important;
               gap: 12px !important;
               border-left-width: 4px !important;
               break-inside: avoid !important;
               page-break-inside: avoid !important;
               border-radius: 6px !important;
           }

           /* ----- TYPOGRAPHY (smaller for print) ----- */
           h3 {
               font-size: 12px !important;
               margin-top: 0 !important;
               margin-bottom: 8px !important;
           }
           p,
           li {
               font-size: 10.5px !important;
               line-height: 1.4 !important;
           }
           .kpi-val {
               font-size: 26px !important;
           }
           .kpi-label {
               font-size: 11px !important;
               letter-spacing: 0.3px !important;
           }
           .kpi-sub {
               font-size: 10px !important;
               margin-top: 2px !important;
           }

           /* ----- PIE CHARTS in KPI cards (CSS gradients) ----- */
           .pie-chart {
               width: 64px !important;
               height: 64px !important;
               box-shadow: inset 0 0 0 7px rgba(255, 255, 255, 0.4), 0 4px 12px rgba(0, 0, 0, 0.08) !important;
               flex-shrink: 0 !important;
           }

           /* ----- CHART CONTAINERS (fixed height, no overflow) ----- */
           .trend-chart-container {
               padding: 4px 6px !important;
               background: #f8fafc !important;
               border-radius: 4px !important;
               height: 160px !important;
               max-height: 160px !important;
               overflow: hidden !important;
           }
           .trend-chart-container canvas {
               max-height: 160px !important;
               max-width: 100% !important;
               height: auto !important;
               width: auto !important;
           }

           .grid-2-col .trend-chart-container {
               height: 150px !important;
               max-height: 150px !important;
           }
           .grid-2-col .trend-chart-container canvas {
               max-height: 150px !important;
           }

           /* ----- DATA TABLE ----- */
           .data-table {
               font-size: 9.5px !important;
           }
           .data-table th {
               font-size: 9px !important;
               padding: 4px 5px !important;
           }
           .data-table td {
               padding: 3px 5px !important;
               font-size: 9.5px !important;
           }
           .table-container {
               overflow-x: visible !important;
           }

           /* ----- color-adjust safety ----- */
           .panel,
           .kpi-card,
           .grid-3-col>div,
           .grid-2-col>div {
               -webkit-print-color-adjust: exact !important;
               print-color-adjust: exact !important;
           }
           .panel .trend-chart-container {
               break-inside: avoid !important;
               page-break-inside: avoid !important;
           }

           /* ----- Header stays on first page ----- */
           .header-banner {
               break-after: avoid !important;
               page-break-after: avoid !important;
           }

           /* ----- Remove any stray empty pages ----- */
           .content-wrapper>*:last-child {
               margin-bottom: 0 !important;
           }
       }
   </style>
</head>
<body>

   <div class="infographic-canvas">

       <!-- ===== HEADER ===== -->
       <div class="header-banner">
           <h1>ANNUAL REPORT ON THE EHSP-SMA</h1>
           <div class="wave-divider">
               <svg viewBox="0 0 1200 120" preserveAspectRatio="none">
                   <path d="M321.39,56.44c58-10.79,114.16-30.13,172-41.86,82.39-16.72,168.19-17.73,250.45-.39C823.78,31,906.67,72,985.66,92.83c70.05,18.48,146.53,26.09,214.34,3V120H0V95.8C59.71,118.08,130.83,121.32,194.2,109.8,237.4,101.9,280.4,81.1,321.39,56.44Z" fill="#ffffff"></path>
               </svg>
           </div>
       </div>

       <div class="content-wrapper">

           <!-- ============================================================ -->
           <!-- SECTION 1 – KEY MESSAGES & VITAL STATISTICS                  -->
           <!-- (Stays on page 1)                                           -->
           <!-- ============================================================ -->
           <div class="section-title">Key Messages &amp; Vital Statistics</div>
           <div class="grid-3-col">
               <div class="kpi-card">
                   <div class="pie-chart" style="background: conic-gradient(#e6a817 0% 100%, #e1e8ed 100% 100%);"></div>
                   <div class="kpi-text">
                       <div class="kpi-val">134</div>
                       <div class="kpi-label">Monthly VMS Records (2025)</div>
                       <div class="kpi-sub">Total monthly vessel records for 2025, representing an 18% decline from 164 in 2024.</div>
                   </div>
               </div>
               <div class="kpi-card" style="border-left-color: #2e8b57;">
                   <div class="pie-chart" style="background: conic-gradient(#2e8b57 0% 96%, #e1e8ed 96% 100%);"></div>
                   <div class="kpi-text">
                       <div class="kpi-val">96%</div>
                       <div class="kpi-label">Longliners</div>
                       <div class="kpi-sub">Longliners continue to form the largest segment, making up 96% of the 134 monthly VMS vessel records.</div>
                   </div>
               </div>
               <div class="kpi-card" style="border-left-color: #277fc3;">
                   <div class="pie-chart" style="background: conic-gradient(#e1e8ed 0% 100%);"></div>
                   <div class="kpi-text">
                       <div class="kpi-val">0</div>
                       <div class="kpi-label">Reported Infringements</div>
                       <div class="kpi-sub">No vessel sighting reports, transhipment reports, or alleged infringements were recorded in the EHSP-SMA during 2025.</div>
                   </div>
               </div>
           </div>

           <!-- ============================================================ -->
           <!-- SECTION 2 – PARTICIPATION & GEOGRAPHIC SPREAD                -->
           <!-- (Stays on page 1 – with 50px top margin for spacing)        -->
           <!-- ============================================================ -->
           <div class="section-title section-spaced" style="margin-top: 50px;">Participation &amp; Geographic Spread</div>

           <div class="grid-1-col">
               <div class="panel accent-purple">
                   <h3>Monthly VMS Vessel Presence (2021-2025)</h3>
                   <p>Tracks the total number of unique vessels by month operating within the Eastern High Seas Pocket Special Management Area (EHSP-SMA).</p>
                   <div class="trend-chart-container" style="height: 300px;">
                       <canvas id="monthlyPresenceChart"></canvas>
                   </div>
               </div>
           </div>

           <div class="grid-2-col">
               <div class="panel accent-blue">
                   <h3>2025 Unique Vessels by Flag CCM</h3>
                   <p>Proportion of the 72 unique active vessels tracked via VMS by their flag CCMs.</p>
                   <div class="trend-chart-container" style="height: 300px;">
                       <canvas id="flagCcmPieChart"></canvas>
                   </div>
               </div>

               <div class="panel accent-orange">
                   <h3>2025 Unique Vessels by Gear Type</h3>
                   <p>Distribution of vessel categories operating within the EHSP-SMA boundaries.</p>
                   <div class="trend-chart-container" style="height: 300px;">
                       <canvas id="gearTypePieChart"></canvas>
                   </div>
               </div>
           </div>

           <!-- ============================================================ -->
           <!-- PAGE BREAK – before Section 3                                -->
           <!-- ============================================================ -->
           <div class="print-only-page-break"></div>

           <!-- ============================================================ -->
           <!-- SECTION 3 – COMPLIANCE & REPORTING OUTCOMES                  -->
           <!-- ============================================================ -->
           <div class="section-title">Compliance &amp; Reporting Outcomes</div>

           <div class="grid-2-col">
               <div class="panel accent-green">
                   <h3>VMS Entry and Exit Alerts (2025)</h3>
                   <p>Reported entry and exit alerts generated through the Commission VMS by flag CCM for vessels operating or transiting.</p>
                   <div class="trend-chart-container" style="height: 250px;">
                       <canvas id="vmsAlertsChart"></canvas>
                   </div>
               </div>

               <div class="panel accent-red">
                   <h3>Historical Compliance Case Outcomes</h3>
                   <p>Outcomes of historic compliance cases evaluated under CMM 2010-02. Note: No cases have been reported under the replacement CMM 2016-02 from 2017 onwards.</p>
                   <div class="trend-chart-container" style="height: 250px;">
                       <canvas id="historicalComplianceChart"></canvas>
                   </div>
               </div>
           </div>

           <div class="grid-1-col">
               <div class="panel">
                   <h3>Table 3: Number of vessels by Flag CCM and vessel type (2025)</h3>
                   <div class="table-container">
                       <table class="data-table">
                           <thead>
                               <tr>
                                   <th>CCM</th>
                                   <th>Vessel Type</th>
                                   <th>Number of vessels on VMS</th>
                                   <th>Reported entry alerts</th>
                                   <th>Reported exit alerts</th>
                               </tr>
                           </thead>
                           <tbody>
                               <tr><td>China</td><td>Fish carrier</td><td>3</td><td>3</td><td>3</td></tr>
                               <tr><td>China</td><td>Longliner</td><td>32</td><td>42</td><td>42</td></tr>
                               <tr><td>Fiji</td><td>Longliner</td><td>2</td><td>2</td><td>2</td></tr>
                               <tr><td>Panama</td><td>Bunker</td><td>1</td><td>1</td><td>1</td></tr>
                               <tr><td>El Salvador</td><td>Purse seiner</td><td>1</td><td>1</td><td>1</td></tr>
                               <tr><td>Chinese Taipei</td><td>Longliner</td><td>33</td><td>58</td><td>58</td></tr>
                           </tbody>
                       </table>
                   </div>
               </div>
           </div>

       </div>
       <!-- end .content-wrapper -->

   </div>
   <!-- end .infographic-canvas -->

   <script>
       Chart.defaults.font.family = "'Roboto', Arial, sans-serif";
       Chart.defaults.color = '#445566';

       // Monthly VMS Vessel Presence (Line Chart)
       new Chart(document.getElementById('monthlyPresenceChart').getContext('2d'), {
           type: 'line',
           data: {
               labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
               datasets: [
                   { label: '2021', data: [8, 16, 15, 10, 18, 18, 11, 6, 11, 5, 2, 2], borderColor: '#9e9e9e',
                       backgroundColor: 'transparent', tension: 0.3 },
                   { label: '2022', data: [2, 6, 10, 8, 12, 11, 16, 23, 14, 2, 3, 2], borderColor: '#e6a817',
                       backgroundColor: 'transparent', tension: 0.3 },
                   { label: '2023', data: [2, 4, 31, 30, 46, 47, 42, 37, 22, 15, 7, 8], borderColor: '#8e24aa',
                       backgroundColor: 'transparent', tension: 0.3 },
                   { label: '2024', data: [13, 16, 17, 25, 18, 9, 12, 4, 4, 10, 16, 20], borderColor: '#d32f2f',
                       backgroundColor: 'transparent', tension: 0.3 },
                   { label: '2025', data: [14, 17, 11, 9, 3, 8, 14, 6, 7, 12, 18, 15], borderColor: '#277fc3',
                       backgroundColor: 'transparent', tension: 0.3, borderWidth: 3 }
               ]
           },
           options: { responsive: true, maintainAspectRatio: false, plugins: { legend: { position: 'top',
                       labels: { boxWidth: 10, font: { size: 11 } } } },
               scales: { y: { beginAtZero: true, title: { display: true, text: 'Total Vessels' } },
                   x: { grid: { display: false } } } }
       });

       // 2025 Unique Vessels by Flag CCM (Doughnut Chart)
       new Chart(document.getElementById('flagCcmPieChart').getContext('2d'), {
           type: 'doughnut',
           data: {
               labels: ['China (35)', 'Chinese Taipei (33)', 'Fiji (2)', 'Panama (1)', 'El Salvador (1)'],
               datasets: [{
                   data: [35, 33, 2, 1, 1],
                   backgroundColor: ['#e6a817', '#d32f2f', '#277fc3', '#2e8b57', '#8e24aa'],
                   borderWidth: 2,
                   borderColor: '#ffffff'
               }]
           },
           options: { responsive: true, maintainAspectRatio: false, cutout: '55%',
               plugins: { legend: { position: 'right', labels: { boxWidth: 12, font: { size: 11 } } } } }
       });

       // 2025 Unique Vessels by Gear Type (Doughnut Chart)
       new Chart(document.getElementById('gearTypePieChart').getContext('2d'), {
           type: 'doughnut',
           data: {
               labels: ['Longliner (67)', 'Fish carrier (3)', 'Bunker (1)', 'Purse seiner (1)'],
               datasets: [{
                   data: [67, 3, 1, 1],
                   backgroundColor: ['#2e8b57', '#277fc3', '#e6a817', '#8e24aa'],
                   borderWidth: 2,
                   borderColor: '#ffffff'
               }]
           },
           options: { responsive: true, maintainAspectRatio: false, cutout: '55%',
               plugins: { legend: { position: 'right', labels: { boxWidth: 12, font: { size: 11 } } } } }
       });

       // VMS Entry and Exit Alerts (Bar Chart)
       new Chart(document.getElementById('vmsAlertsChart').getContext('2d'), {
           type: 'bar',
           data: {
               labels: ['Chinese Taipei', 'China', 'Fiji', 'Panama', 'El Salvador'],
               datasets: [{
                   label: 'Total Entry/Exit Alerts',
                   data: [58, 45, 2, 1, 1],
                   backgroundColor: ['#d32f2f', '#e6a817', '#277fc3', '#2e8b57', '#8e24aa']
               }]
           },
           options: {
               responsive: true,
               maintainAspectRatio: false,
               plugins: { legend: { display: false } },
               scales: {
                   y: { beginAtZero: true },
                   x: { grid: { display: false } }
               }
           }
       });

       // Historical Compliance Case Outcomes (Stacked Bar)
       new Chart(document.getElementById('historicalComplianceChart').getContext('2d'), {
           type: 'bar',
           data: {
               labels: ['2015', '2016', '2017-2025'],
               datasets: [
                   { label: 'Infraction - Sanction', data: [1, 0, 0], backgroundColor: '#d32f2f' },
                   { label: 'No Infraction', data: [0, 1, 0], backgroundColor: '#9e9e9e' }
               ]
           },
           options: { responsive: true, maintainAspectRatio: false, plugins: { legend: { position: 'top',
                       labels: { boxWidth: 10, font: { size: 10 } } } },
               scales: { x: { stacked: true, grid: { display: false } }, y: { stacked: true, beginAtZero: true,
                       max: 3, title: { display: true, text: 'Number of Cases' } } } }
       });
   </script>

</body>
</html>