:root {
            --canada-red: #AF3C43;
            --canada-dark-red: #8B0000;
            --canada-light-red: #F3E9E9;
            --uk-blue: #012169;
            --france-blue: #0055A4;
            --exists-green: #28a745;
            --progress-orange: #fd7e14;
            --implement-blue: #007bff;
            --missing-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: 1400px;
            margin: 0 auto;
        }

        /* FLASHING ANIMATIONS */
        @keyframes critical-flash {
            0%, 50%, 100% { background-color: #dc3545; box-shadow: 0 0 10px #dc3545; }
            25%, 75% { background-color: #ff6b6b; box-shadow: 0 0 20px #ff6b6b; }
        }

        @keyframes warning-pulse {
            0%, 100% { background-color: #fd7e14; transform: scale(1); }
            50% { background-color: #ff9f43; transform: scale(1.02); }
        }

        @keyframes glow-red {
            0%, 100% { box-shadow: 0 0 5px #dc3545; }
            50% { box-shadow: 0 0 20px #dc3545, 0 0 30px #dc3545; }
        }

        @keyframes glow-blue {
            0%, 100% { box-shadow: 0 0 5px #007bff; }
            50% { box-shadow: 0 0 20px #007bff, 0 0 30px #007bff; }
        }

        .critical-flash {
            animation: critical-flash 1s ease-in-out infinite;
            color: white !important;
            font-weight: bold;
            padding: 5px 10px;
            border-radius: 4px;
        }

        .warning-pulse {
            animation: warning-pulse 2s ease-in-out infinite;
            color: white !important;
            padding: 5px 10px;
            border-radius: 4px;
        }

        .critical-box {
            animation: glow-red 1.5s ease-in-out infinite;
            border: 3px solid #dc3545 !important;
            background: linear-gradient(135deg, #fff5f5 0%, #ffe0e0 100%);
        }

        .highlight-box {
            animation: glow-blue 1.5s ease-in-out infinite;
            border: 3px solid #007bff !important;
            background: linear-gradient(135deg, #f0f8ff 0%, #e0f0ff 100%);
        }

        /* 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: 26px;
            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: 11px;
            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(6, 1fr);
            gap: 15px;
        }

        .legend-item {
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: 12px;
        }

        .legend-badge {
            padding: 4px 10px;
            border-radius: 4px;
            font-weight: 600;
            font-size: 10px;
            color: white;
        }

        .badge-exists { background: var(--exists-green); }
        .badge-progress { background: var(--progress-orange); }
        .badge-implement { background: var(--implement-blue); }
        .badge-missing { background: var(--missing-red); animation: critical-flash 1s ease-in-out infinite; }
        .badge-uk { background: var(--uk-blue); }
        .badge-france { background: var(--france-blue); }

        /* STATISTICS DASHBOARD */
        .stats-dashboard {
            background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
            padding: 30px 40px;
            color: white;
        }

        .stats-title {
            font-size: 18px;
            font-weight: 700;
            margin-bottom: 20px;
            text-align: center;
        }

        .stats-grid {
            display: grid;
            grid-template-columns: repeat(6, 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-number {
            font-size: 36px;
            font-weight: 700;
            margin-bottom: 5px;
        }

        .stat-label {
            font-size: 11px;
            text-transform: uppercase;
            opacity: 0.9;
        }

        .stat-exists .stat-number { color: #2ecc71; }
        .stat-progress .stat-number { color: #f39c12; }
        .stat-implement .stat-number { color: #3498db; }
        .stat-missing .stat-number { color: #e74c3c; animation: critical-flash 1s ease-in-out infinite; border-radius: 8px; padding: 5px; }
        .stat-uk .stat-number { color: #9b59b6; }
        .stat-france .stat-number { color: #1abc9c; }

        /* MEGA BUDGET BANNER */
        .mega-budget-banner {
            background: linear-gradient(135deg, #1a1a2e 0%, #2d1b4e 50%, #1a1a2e 100%);
            padding: 40px;
            text-align: center;
            color: white;
            border-top: 4px solid #ffd700;
            border-bottom: 4px solid #ffd700;
        }

        .mega-budget-number {
            font-size: 72px;
            font-weight: 900;
            color: #ffd700;
            text-shadow: 0 0 20px rgba(255, 215, 0, 0.5);
            margin-bottom: 10px;
        }

        .mega-budget-label {
            font-size: 20px;
            color: #fff;
            text-transform: uppercase;
            letter-spacing: 3px;
        }

        .mega-budget-sub {
            font-size: 14px;
            color: #aaa;
            margin-top: 15px;
        }

        /* 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-bottom: 20px;
            cursor: pointer;
            display: flex;
            justify-content: space-between;
            align-items: center;
            border-radius: 4px;
        }

        h2.section-title:hover { background: var(--canada-dark-red); }

        h2.section-title.uk-section { background: var(--uk-blue); }
        h2.section-title.uk-section:hover { background: #001040; }

        h2.section-title.france-section { background: var(--france-blue); }
        h2.section-title.france-section:hover { background: #003366; }

        h2.section-title.tech-section { background: #2d1b4e; }
        h2.section-title.tech-section:hover { background: #1a1030; }

        .section-toggle {
            font-size: 14px;
            transition: transform 0.3s;
        }

        .section-toggle.collapsed { transform: rotate(-90deg); }

        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;
        }

        h4.subsubsection-title {
            font-size: 13px;
            color: var(--text-dark);
            font-weight: 600;
            margin: 15px 0 10px;
            padding-left: 10px;
            border-left: 3px solid var(--canada-red);
        }

        .section-content { padding: 0 10px; }
        .section-content.hidden { display: none; }

        /* TABLES */
        table {
            width: 100%;
            border-collapse: collapse;
            margin: 15px 0;
            font-size: 10pt;
        }

        th {
            background: var(--canada-red);
            color: var(--white);
            padding: 10px 8px;
            text-align: left;
            font-weight: 600;
            font-size: 10px;
        }

        th.uk-header { background: var(--uk-blue); }
        th.france-header { background: var(--france-blue); }
        th.canada-header { background: var(--canada-red); }
        th.tech-header { background: #2d1b4e; }

        td {
            padding: 8px;
            border: 1px solid var(--border-grey);
            vertical-align: top;
            font-size: 10px;
        }

        tr:nth-child(even) { background: var(--background-grey); }

        .status-badge {
            display: inline-block;
            padding: 3px 8px;
            border-radius: 3px;
            font-size: 9px;
            font-weight: 600;
            color: white;
        }

        .status-exists { background: var(--exists-green); }
        .status-progress { background: var(--progress-orange); }
        .status-implement { background: var(--implement-blue); }
        .status-missing { background: var(--missing-red); animation: critical-flash 1s ease-in-out infinite; }

        /* CHARTS CONTAINER */
        .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: 300px; }

        /* COMPARISON MATRIX */
        .comparison-matrix {
            margin: 20px 0;
        }

        .matrix-cell {
            text-align: center;
            padding: 10px !important;
        }

        .capability-full { background: #d4edda !important; color: #155724; }
        .capability-partial { background: #fff3cd !important; color: #856404; }
        .capability-none { background: #f8d7da !important; color: #721c24; }

        /* 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: 25px;
            background: #e9ecef;
            border-radius: 4px;
            overflow: hidden;
        }

        .progress-fill {
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-size: 10px;
            font-weight: 600;
            transition: width 0.5s ease;
        }

        .progress-green { background: linear-gradient(90deg, #28a745, #20c997); }
        .progress-orange { background: linear-gradient(90deg, #fd7e14, #ffc107); }
        .progress-blue { background: linear-gradient(90deg, #007bff, #17a2b8); }
        .progress-red { background: linear-gradient(90deg, #dc3545, #e74c3c); }
        .progress-purple { background: linear-gradient(90deg, #6f42c1, #9b59b6); }

        /* 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;
            animation: glow-red 1.5s ease-in-out infinite;
        }

        .callout-warning {
            background: #fff3cd;
            border-color: #ffc107;
        }

        .callout-info {
            background: #d1ecf1;
            border-color: #0dcaf0;
        }

        .callout-success {
            background: #d4edda;
            border-color: #28a745;
        }

        .callout-tech {
            background: linear-gradient(135deg, #f3e5f5 0%, #e1bee7 100%);
            border-color: #9c27b0;
        }

        .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; }
        .callout-tech .callout-title { color: #7b1fa2; }

        /* ORG CHART */
        .org-chart {
            display: flex;
            flex-direction: column;
            align-items: center;
            padding: 20px;
            background: #f8f9fa;
            border-radius: 8px;
            margin: 20px 0;
        }

        .org-level {
            display: flex;
            gap: 15px;
            flex-wrap: wrap;
            justify-content: center;
            margin: 10px 0;
        }

        .org-box {
            background: var(--white);
            border: 2px solid var(--canada-red);
            padding: 10px 15px;
            text-align: center;
            min-width: 120px;
            font-size: 10pt;
            border-radius: 4px;
        }

        .org-box.primary {
            background: var(--canada-red);
            color: var(--white);
            font-weight: 700;
        }

        .org-box.secondary {
            background: var(--canada-light-red);
        }

        .org-box.implement {
            border-color: var(--implement-blue);
            background: #e7f3ff;
        }

        .org-connector {
            width: 2px;
            height: 20px;
            background: var(--canada-red);
        }

        /* TIMELINE */
        .timeline {
            position: relative;
            padding-left: 30px;
            margin: 20px 0;
        }

        .timeline::before {
            content: '';
            position: absolute;
            left: 10px;
            top: 0;
            bottom: 0;
            width: 3px;
            background: linear-gradient(180deg, var(--canada-red), var(--implement-blue));
        }

        .timeline-item {
            position: relative;
            margin-bottom: 25px;
            padding-left: 25px;
        }

        .timeline-item::before {
            content: '';
            position: absolute;
            left: -20px;
            top: 5px;
            width: 14px;
            height: 14px;
            background: var(--canada-red);
            border-radius: 50%;
            border: 3px solid white;
            box-shadow: 0 0 0 2px var(--canada-red);
        }

        .timeline-date {
            font-weight: 700;
            color: var(--canada-red);
            font-size: 13px;
        }

        /* SPEC BOX */
        .spec-box {
            background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
            color: white;
            padding: 25px;
            border-radius: 8px;
            margin: 15px 0;
        }

        .spec-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 20px;
        }

        .spec-item {
            text-align: center;
            padding: 15px;
            background: rgba(255,255,255,0.1);
            border-radius: 8px;
        }

        .spec-value {
            font-size: 28px;
            font-weight: 700;
            color: #ffd700;
        }

        .spec-label {
            font-size: 11px;
            color: #aaa;
            text-transform: uppercase;
            margin-top: 5px;
        }

        /* FLAG ICONS */
        .flag-icon {
            font-size: 16px;
            margin-right: 5px;
        }

        /* 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;
        }

        /* EXPAND/COLLAPSE BUTTONS */
        .expand-controls {
            display: flex;
            gap: 10px;
            margin-bottom: 20px;
        }

        .expand-btn {
            background: var(--canada-red);
            color: white;
            border: none;
            padding: 8px 16px;
            border-radius: 4px;
            cursor: pointer;
            font-size: 12px;
        }

        .expand-btn:hover {
            background: var(--canada-dark-red);
        }

        /* TECH FEATURE BOX */
        .tech-feature {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 30px;
            border-radius: 12px;
            margin: 20px 0;
            text-align: center;
        }

        .tech-feature-title {
            font-size: 24px;
            font-weight: 700;
            margin-bottom: 10px;
        }

        .tech-feature-subtitle {
            font-size: 14px;
            opacity: 0.9;
        }

        /* RESPONSIVE */
        @media (max-width: 1024px) {
            .charts-grid { grid-template-columns: 1fr; }
            .stats-grid { grid-template-columns: repeat(3, 1fr); }
            .legend-grid { grid-template-columns: repeat(3, 1fr); }
            .spec-grid { grid-template-columns: repeat(2, 1fr); }
        }

        @media print {
            .section-content.hidden { display: block !important; }
            .expand-controls { display: none; }
            .critical-flash, .warning-pulse, .stat-missing .stat-number { animation: none !important; }
        }
