```html
<!DOCTYPE html>
<html lang="vi">
<head>
    <meta charset="UTF-8">
    <title>Dashboard GSV</title>

    <!-- Chart.js -->
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>

    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            background: #f5f6fa;
        }

        h2 {
            text-align: center;
            padding: 20px;
        }

        .container {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 20px;
            padding: 20px;
        }

        .card {
            background: #fff;
            border-radius: 12px;
            padding: 15px;
            box-shadow: 0 2px 8px rgba(0,0,0,0.1);
        }

        canvas {
            width: 100% !important;
            height: 300px !important;
        }

        @media (max-width: 768px) {
            .container {
                grid-template-columns: 1fr;
            }
        }
    </style>
</head>

<body>

<h2>📊 Dashboard GSV Logistics</h2>

<div class="container">

    <div class="card">
        <h3>GSV theo tháng</h3>
        <canvas id="gsvLineChart"></canvas>
    </div>

    <div class="card">
        <h3>BIKE vs TRUCK</h3>
        <canvas id="serviceChart"></canvas>
    </div>

    <div class="card">
        <h3>Phân bổ vùng</h3>
        <canvas id="regionChart"></canvas>
    </div>

    <div class="card">
        <h3>Hiệu suất (AR / FR)</h3>
        <canvas id="perfChart"></canvas>
    </div>

</div>

<script>
document.addEventListener("DOMContentLoaded", function () {

    const labels = ['T10/25', 'T11/25', 'T12/25', 'T1/26', 'T2/26'];

    // GSV Line
    new Chart(document.getElementById('gsvLineChart'), {
        type: 'line',
        data: {
            labels: labels,
            datasets: [{
                label: 'GSV (Triệu)',
                data: [102.3, 118.9, 207.2, 276.0, 490.0],
                borderColor: '#FF7F0E',
                tension: 0.3
            }]
        }
    });

    // Service Bar
    new Chart(document.getElementById('serviceChart'), {
        type: 'bar',
        data: {
            labels: labels,
            datasets: [
                {
                    label: 'BIKE',
                    data: [101.4, 107.5, 197.7, 141.6, 170.7],
                    backgroundColor: '#1F77B4'
                },
                {
                    label: 'TRUCK',
                    data: [0.9, 11.4, 9.5, 134.4, 319.3],
                    backgroundColor: '#FF7F0E'
                }
            ]
        }
    });

    // Region Doughnut
    new Chart(document.getElementById('regionChart'), {
        type: 'doughnut',
        data: {
            labels: ['Hà Nội', 'Sài Gòn', 'Cần Thơ', 'Khác'],
            datasets: [{
                data: [415.6, 30.6, 23.7, 20.1],
                backgroundColor: ['#1F77B4', '#FF7F0E', '#2CA02C', '#C7C7C7']
            }]
        }
    });

    // Performance Line
    new Chart(document.getElementById('perfChart'), {
        type: 'line',
        data: {
            labels: labels,
            datasets: [
                {
                    label: 'AR (%)',
                    data: [82.8, 74.7, 85.4, 84.5, 76.5],
                    borderColor: '#1F77B4',
                    tension: 0.3
                },
                {
                    label: 'FR (%)',
                    data: [67.8, 60.8, 70.9, 66.4, 62.1],
                    borderColor: '#FF7F0E',
                    tension: 0.3
                }
            ]
        }
    });

});
</script>

</body>
</html>
```
Shopping Cart
Scroll to Top