:root {
            --canada-red: #AF3C43;
            --canada-dark-red: #8B0000;
            --canada-light-red: #F3E9E9;
            --usa-blue: #002868;
            --usa-red: #BF0A30;
            --uk-blue: #012169;
            --uk-red: #C8102E;
            --france-blue: #0055A4;
            --france-red: #EF4135;
            --strong-green: #28a745;
            --moderate-yellow: #ffc107;
            --weak-red: #dc3545;
            --text-dark: #1A1A1A;
            --text-secondary: #4A4A4A;
            --border-grey: #CCCCCC;
            --background-grey: #F5F5F5;
            --white: #FFFFFF;
        }

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

        body {
            font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif;
            font-size: 11pt;
            line-height: 1.6;
            color: var(--text-dark);
            background: var(--white);
            max-width: 1600px;
            margin: 0 auto;
        }

        /* GOVERNMENT OF CANADA HEADER */
        .gc-header {
            background: var(--white);
            border-bottom: 4px solid var(--canada-red);
            padding: 20px 40px;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .gc-wordmark {
            display: flex;
            align-items: center;
            gap: 15px;
        }

        .gc-flag {
            width: 40px;
            height: 24px;
            display: flex;
        }

        .gc-flag-red { background: var(--canada-red); width: 25%; }
        .gc-flag-white {
            background: var(--white);
            width: 50%;
            border-top: 1px solid var(--border-grey);
            border-bottom: 1px solid var(--border-grey);
            display: flex;
            align-items: center;
            justify-content: center;
        }
        .gc-flag-maple { color: var(--canada-red); font-size: 14px; }

        .gc-wordmark-text {
            font-size: 18px;
            font-weight: 600;
            color: var(--text-dark);
        }
        .gc-wordmark-text span { color: var(--canada-red); }

        .gc-classification {
            background: var(--canada-red);
            color: var(--white);
            padding: 5px 15px;
            font-size: 10px;
            font-weight: 600;
            letter-spacing: 1px;
            text-transform: uppercase;
        }

        /* DOCUMENT TITLE */
        .document-title-section {
            background: linear-gradient(135deg, var(--canada-light-red) 0%, var(--white) 100%);
            padding: 40px;
            border-bottom: 2px solid var(--canada-red);
            text-align: center;
        }

        .document-title {
            font-size: 28px;
            font-weight: 700;
            color: var(--canada-dark-red);
            margin-bottom: 10px;
        }

        .document-subtitle {
            font-size: 16px;
            color: var(--text-secondary);
            margin-bottom: 20px;
        }

        .document-meta {
            display: flex;
            justify-content: center;
            gap: 40px;
            flex-wrap: wrap;
            font-size: 12px;
            color: var(--text-secondary);
        }

        .document-meta-item { display: flex; flex-direction: column; align-items: center; }
        .document-meta-label { font-weight: 600; color: var(--canada-red); }

        /* LEGEND */
        .legend-section {
            background: #f8f9fa;
            padding: 20px 40px;
            border-bottom: 1px solid var(--border-grey);
        }

        .legend-title {
            font-size: 14px;
            font-weight: 700;
            color: var(--canada-dark-red);
            margin-bottom: 15px;
        }

        .legend-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 15px;
        }

        .legend-item {
            display: flex;
            align-items: center;
            gap: 10px;
            font-size: 12px;
        }

        .legend-badge {
            padding: 6px 14px;
            border-radius: 4px;
            font-weight: 600;
            font-size: 11px;
            color: white;
        }

        .badge-strong { background: var(--strong-green); }
        .badge-moderate { background: var(--moderate-yellow); color: #333; }
        .badge-weak { background: var(--weak-red); }

        /* MAIN CONTENT */
        .main-content { padding: 30px 40px; }

        /* SECTION STYLING */
        h2.section-title {
            font-size: 18px;
            color: var(--white);
            background: var(--canada-red);
            padding: 12px 20px;
            margin: 25px 0 15px;
            border-radius: 4px;
            display: flex;
            align-items: center;
            gap: 10px;
        }

        h2.section-title.usa-section { background: var(--usa-blue); }
        h2.section-title.uk-section { background: var(--uk-blue); }
        h2.section-title.france-section { background: var(--france-blue); }
        h2.section-title.conclusion-section { background: linear-gradient(135deg, #1a1a2e 0%, #2d1b4e 100%); }

        h3.subsection-title {
            font-size: 15px;
            color: var(--canada-dark-red);
            border-bottom: 2px solid var(--canada-red);
            padding-bottom: 8px;
            margin: 20px 0 15px;
        }

        /* TABLES */
        table {
            width: 100%;
            border-collapse: collapse;
            margin: 15px 0;
            font-size: 10pt;
        }

        th {
            background: #2d3748;
            color: var(--white);
            padding: 12px 10px;
            text-align: left;
            font-weight: 600;
            font-size: 11px;
            position: sticky;
            top: 0;
        }

        th.usa-header { background: var(--usa-blue); }
        th.uk-header { background: var(--uk-blue); }
        th.france-header { background: var(--france-blue); }
        th.canada-header { background: var(--canada-red); }
        th.category-header { background: #1a1a2e; }

        td {
            padding: 10px;
            border: 1px solid var(--border-grey);
            vertical-align: top;
            font-size: 11px;
        }

        tr:nth-child(even) { background: #f8f9fa; }
        tr:hover { background: #eef2f7; }

        /* COLOR CODED CELLS */
        .cell-strong {
            background: #d4edda !important;
            color: #155724;
            font-weight: 600;
        }

        .cell-moderate {
            background: #fff3cd !important;
            color: #856404;
        }

        .cell-weak {
            background: #f8d7da !important;
            color: #721c24;
        }

        .cell-missing {
            background: #f8d7da !important;
            color: #721c24;
            font-style: italic;
        }

        .cell-leader {
            background: linear-gradient(135deg, #d4edda 0%, #c3e6cb 100%) !important;
            color: #155724;
            font-weight: 700;
            border: 2px solid #28a745;
        }

        /* STATUS BADGES */
        .status-badge {
            display: inline-block;
            padding: 3px 8px;
            border-radius: 3px;
            font-size: 9px;
            font-weight: 600;
            color: white;
        }

        .status-strong { background: var(--strong-green); }
        .status-moderate { background: var(--moderate-yellow); color: #333; }
        .status-weak { background: var(--weak-red); }

        /* COUNTRY FLAGS */
        .flag-usa::before { content: "🇺🇸 "; }
        .flag-uk::before { content: "🇬🇧 "; }
        .flag-france::before { content: "🇫🇷 "; }
        .flag-canada::before { content: "🇨🇦 "; }

        /* CHARTS SECTION */
        .charts-section {
            background: #f8f9fa;
            padding: 30px;
            margin: 20px 0;
            border-radius: 8px;
        }

        .charts-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 30px;
        }

        .chart-container {
            background: white;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        }

        .chart-title {
            font-size: 14px;
            font-weight: 600;
            color: var(--canada-dark-red);
            margin-bottom: 15px;
            text-align: center;
        }

        .chart-canvas { max-height: 350px; }

        /* CALLOUT BOXES */
        .callout {
            padding: 20px;
            margin: 15px 0;
            border-radius: 4px;
            border-left: 4px solid;
        }

        .callout-critical {
            background: linear-gradient(135deg, #fff5f5 0%, #ffe0e0 100%);
            border-color: #dc3545;
        }

        .callout-warning {
            background: #fff3cd;
            border-color: #ffc107;
        }

        .callout-info {
            background: #d1ecf1;
            border-color: #0dcaf0;
        }

        .callout-success {
            background: #d4edda;
            border-color: #28a745;
        }

        .callout-title {
            font-weight: 700;
            margin-bottom: 10px;
            font-size: 13px;
        }

        .callout-critical .callout-title { color: #dc3545; }
        .callout-warning .callout-title { color: #856404; }
        .callout-info .callout-title { color: #0c5460; }
        .callout-success .callout-title { color: #155724; }

        /* SUMMARY STATS */
        .stats-dashboard {
            background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
            padding: 30px 40px;
            color: white;
            margin: 20px 0;
            border-radius: 8px;
        }

        .stats-title {
            font-size: 18px;
            font-weight: 700;
            margin-bottom: 20px;
            text-align: center;
        }

        .stats-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 20px;
        }

        .stat-card {
            background: rgba(255,255,255,0.1);
            padding: 20px;
            border-radius: 10px;
            text-align: center;
            transition: transform 0.3s;
        }

        .stat-card:hover { transform: translateY(-5px); }

        .stat-country {
            font-size: 24px;
            margin-bottom: 10px;
        }

        .stat-number {
            font-size: 28px;
            font-weight: 700;
            margin-bottom: 5px;
        }

        .stat-label {
            font-size: 11px;
            text-transform: uppercase;
            opacity: 0.9;
        }

        .stat-usa .stat-number { color: #3498db; }
        .stat-uk .stat-number { color: #9b59b6; }
        .stat-france .stat-number { color: #1abc9c; }
        .stat-canada .stat-number { color: #e74c3c; }

        /* PROGRESS BARS */
        .progress-container {
            margin: 20px 0;
        }

        .progress-item {
            margin-bottom: 15px;
        }

        .progress-label {
            display: flex;
            justify-content: space-between;
            margin-bottom: 5px;
            font-size: 12px;
            font-weight: 600;
        }

        .progress-bar {
            height: 30px;
            background: #e9ecef;
            border-radius: 4px;
            overflow: hidden;
            position: relative;
        }

        .progress-fill {
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-size: 11px;
            font-weight: 600;
            transition: width 0.5s ease;
        }

        .progress-usa { background: linear-gradient(90deg, #002868, #3498db); }
        .progress-uk { background: linear-gradient(90deg, #012169, #9b59b6); }
        .progress-france { background: linear-gradient(90deg, #0055A4, #1abc9c); }
        .progress-canada { background: linear-gradient(90deg, #AF3C43, #e74c3c); }

        /* CONCLUSION SECTION */
        .conclusion-box {
            background: linear-gradient(135deg, #1a1a2e 0%, #2d1b4e 100%);
            padding: 30px;
            border-radius: 8px;
            color: white;
            margin: 20px 0;
        }

        .conclusion-title {
            font-size: 18px;
            font-weight: 700;
            color: #ffd700;
            margin-bottom: 15px;
        }

        .gap-item {
            background: rgba(220, 53, 69, 0.2);
            border-left: 3px solid #dc3545;
            padding: 10px 15px;
            margin: 10px 0;
            border-radius: 0 4px 4px 0;
        }

        .recommendation-item {
            background: rgba(40, 167, 69, 0.2);
            border-left: 3px solid #28a745;
            padding: 10px 15px;
            margin: 10px 0;
            border-radius: 0 4px 4px 0;
        }

        /* FOOTER */
        .gc-footer {
            background: var(--canada-red);
            color: var(--white);
            padding: 30px 40px;
            text-align: center;
        }

        .gc-footer p {
            margin-bottom: 5px;
            font-size: 10pt;
        }

        /* RESPONSIVE */
        @media (max-width: 1200px) {
            .charts-grid { grid-template-columns: 1fr; }
            .stats-grid { grid-template-columns: repeat(2, 1fr); }
        }

        @media print {
            body { font-size: 9pt; }
            .chart-container { page-break-inside: avoid; }
        }

        /* COMPARISON INDICATOR */
        .comparison-indicator {
            display: inline-block;
            width: 12px;
            height: 12px;
            border-radius: 50%;
            margin-right: 5px;
        }
        .indicator-strong { background: var(--strong-green); }
        .indicator-moderate { background: var(--moderate-yellow); }
        .indicator-weak { background: var(--weak-red); }
