        body {
            font-family: 'Roboto', sans-serif;
            background-color: #F3F4F6;
            /* Light gray background */
            color: #111827;
        }

        /* Vibrant Palette: Deep Blue & Electric Cyan */
        :root {
            --color-primary: #2962FF;
            /* Brilliant Blue */
            --color-secondary: #00B0FF;
            /* Electric Cyan */
            --color-accent: #D500F9;
            /* Vibrant Purple */
            --color-danger: #FF1744;
            /* Red for Fear */
            --color-success: #00E676;
            /* Green for Growth */
            --color-dark: #0D47A1;
        }

        .text-primary {
            color: var(--color-primary);
        }

        .bg-primary {
            background-color: var(--color-primary);
        }

        .text-accent {
            color: var(--color-accent);
        }

        /* Chart Container Styling - MANDATORY */
        .chart-container {
            position: relative;
            width: 100%;
            max-width: 600px;
            height: 300px;
            max-height: 400px;
            margin-left: auto;
            margin-right: auto;
        }

        @media (min-width: 768px) {
            .chart-container {
                height: 350px;
            }
        }

        /* Card Hover Effects */
        .stat-card {
            transition: transform 0.2s ease, box-shadow 0.2s ease;
        }

        .stat-card:hover {
            transform: translateY(-2px);
            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
        }

        /* Timeline Styles */
        .timeline-item {
            position: relative;
            padding-left: 2rem;
            border-left: 2px solid #E5E7EB;
            padding-bottom: 2rem;
        }

        .timeline-item:last-child {
            border-left: 2px solid transparent;
        }

        .timeline-dot {
            position: absolute;
            left: -9px;
            top: 0;
            width: 16px;
            height: 16px;
            border-radius: 50%;
            background-color: var(--color-primary);
            border: 2px solid white;
        }

        /* AI Chat Widget Styles */
        .chat-widget {
            position: fixed;
            bottom: 20px;
            right: 20px;
            z-index: 1000;
        }

        .chat-button {
            width: 60px;
            height: 60px;
            border-radius: 50%;
            background: linear-gradient(135deg, #2962FF, #D500F9);
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: transform 0.2s;
        }

        .chat-button:hover {
            transform: scale(1.05);
        }

        .chat-window {
            position: absolute;
            bottom: 80px;
            right: 0;
            width: 350px;
            height: 500px;
            background: white;
            border-radius: 16px;
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
            display: flex;
            flex-direction: column;
            overflow: hidden;
            opacity: 0;
            pointer-events: none;
            transform: translateY(20px);
            transition: all 0.3s ease;
        }

        .chat-window.open {
            opacity: 1;
            pointer-events: auto;
            transform: translateY(0);
        }

        .chat-messages {
            flex-grow: 1;
            padding: 16px;
            overflow-y: auto;
            background-color: #F9FAFB;
        }

        .message {
            margin-bottom: 12px;
            max-width: 80%;
            padding: 10px 14px;
            border-radius: 12px;
            font-size: 0.9rem;
            line-height: 1.4;
        }

        .message.user {
            background-color: #2962FF;
            color: white;
            align-self: flex-end;
            margin-left: auto;
            border-bottom-right-radius: 2px;
        }

        .message.ai {
            background-color: #E5E7EB;
            color: #1F2937;
            align-self: flex-start;
            border-bottom-left-radius: 2px;
        }

        .typing-indicator span {
            display: inline-block;
            width: 6px;
            height: 6px;
            background-color: #9CA3AF;
            border-radius: 50%;
            margin: 0 2px;
            animation: bounce 1.4s infinite ease-in-out both;
        }

        .typing-indicator span:nth-child(1) {
            animation-delay: -0.32s;
        }

        .typing-indicator span:nth-child(2) {
            animation-delay: -0.16s;
        }

        @keyframes bounce {

            0%,
            80%,
            100% {
                transform: scale(0);
            }

            40% {
                transform: scale(1);
            }
        }

        /* Markdown Styles within AI responses */
        .prose p {
            margin-bottom: 0.5em;
        }

        .prose strong {
            color: #2962FF;
            font-weight: 700;
        }

        .prose ul {
            list-style-type: disc;
            padding-left: 1.2em;
            margin-bottom: 0.5em;
        }

        /* Modal Styles */
        .modal-overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.5);
            backdrop-filter: blur(5px);
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 2000;
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.3s ease;
        }

        .modal-overlay.open {
            opacity: 1;
            pointer-events: auto;
        }

        .modal-content {
            background: white;
            width: 90%;
            max-width: 500px;
            padding: 2rem;
            border-radius: 16px;
            box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
            transform: scale(0.95);
            transition: transform 0.3s ease;
        }

        .modal-overlay.open .modal-content {
            transform: scale(1);
        }
