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

        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            background: #f8f9fa;
            height: 100vh;
            display: flex;
            flex-direction: column;
            padding-top: 60px; /* Account for fixed navbar */
        }

        
        .navbar {
            background: linear-gradient(135deg, #2c3e50 0%, #8e44ad 50%, #e91e63 100%);
            height: 60px;
            min-height: 60px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 0 2rem;
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            z-index: 1000;
            flex-shrink: 0;
        }

        .navbar-brand {
            display: flex;
            align-items: center;
            color: white;
            font-weight: bold;
            font-size: 24px;
            text-decoration: none;
        }

        .navbar-brand img {
            height: 40px;
            margin-right: 15px;
        }

        .navbar-nav {
            display: flex;
            list-style: none;
            align-items: center;
            gap: 2rem;
        }

        .nav-item {
            color: white;
            text-decoration: none;
            font-weight: 500;
            padding: 8px 16px;
            border-radius: 20px;
            transition: all 0.3s ease;
            position: relative;
        }

        .nav-item:hover {
            background: rgba(255, 255, 255, 0.1);
            transform: translateY(-2px);
        }

        .nav-item.active {
            background: rgba(255, 255, 255, 0.2);
            font-weight: 600;
        }

        .user-avatar {
            width: 35px;
            height: 35px;
            border-radius: 50%;
            background: rgba(255, 255, 255, 0.2);
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-weight: bold;
            cursor: pointer;
            transition: all 0.3s ease;
        }

        .user-avatar:hover {
            background: rgba(255, 255, 255, 0.3);
            transform: scale(1.1);
        }

        /* Modern Chart drawer styles */
        .chart-drawer {
            position: fixed;
            top: 60px; /* Account for fixed navbar */
            right: -800px;
            width: 800px;
            height: calc(100vh - 60px);
            background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
            box-shadow: -10px 0 30px rgba(0, 0, 0, 0.15), -5px 0 15px rgba(0, 0, 0, 0.1);
            transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
            z-index: 2000;
            display: flex;
            flex-direction: column;
            border-left: 1px solid rgba(255, 255, 255, 0.2);
            backdrop-filter: blur(10px);
        }

        .chart-drawer.open {
            right: 0;
            transform: translateX(0);
        }

        .chart-drawer.minimized {
            height: 80px !important;
            box-shadow: -5px 0 15px rgba(0, 0, 0, 0.1);
        }

        .chart-drawer.minimized .chart-drawer-content {
            display: none !important;
        }

        .chart-drawer-header {
            background: linear-gradient(135deg, #2c3e50 0%, #8e44ad 50%, #e91e63 100%);
            color: white;
            padding: 1.5rem 2rem;
            display: flex;
            justify-content: space-between;
            align-items: center;
            height: 80px;
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
            position: relative;
            overflow: hidden;
        }

        .chart-drawer-header::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0%, transparent 100%);
            pointer-events: none;
        }

        .chart-drawer-title {
            font-size: 20px;
            font-weight: 700;
            display: flex;
            align-items: center;
            gap: 12px;
            position: relative;
            z-index: 1;
            transition: all 0.3s ease;
        }

        .chart-drawer-title .title-icon {
            font-size: 24px;
            animation: pulseIcon 2s infinite;
        }

        @keyframes pulseIcon {
            0%, 100% { transform: scale(1); }
            50% { transform: scale(1.1); }
        }

        .chart-drawer-title::before {
            display: none; /* Remove the old static icon */
        }

        @keyframes pulseIcon {
            0%, 100% { transform: scale(1); }
            50% { transform: scale(1.1); }
        }

        .chart-drawer-controls {
            display: flex;
            gap: 10px;
            align-items: center;
            position: relative;
            z-index: 1;
        }

        .chart-drawer-minimize {
            background: rgba(255, 255, 255, 0.2);
            border: none;
            color: white;
            font-size: 18px;
            cursor: pointer;
            padding: 8px;
            border-radius: 8px;
            transition: all 0.3s ease;
            width: 36px;
            height: 36px;
            display: flex;
            align-items: center;
            justify-content: center;
            backdrop-filter: blur(10px);
        }

        .chart-drawer-minimize:hover {
            background: rgba(255, 255, 255, 0.3);
            transform: scale(1.1);
        }

        .chart-drawer-close {
            background: rgba(255, 87, 87, 0.8);
            border: none;
            color: white;
            font-size: 20px;
            cursor: pointer;
            padding: 8px;
            border-radius: 8px;
            transition: all 0.3s ease;
            width: 36px;
            height: 36px;
            display: flex;
            align-items: center;
            justify-content: center;
            backdrop-filter: blur(10px);
        }

        .chart-drawer-close:hover {
            background: rgba(255, 87, 87, 1);
            transform: scale(1.1) rotate(90deg);
            box-shadow: 0 4px 15px rgba(255, 87, 87, 0.4);
        }

        .chart-drawer-content {
            flex: 1;
            padding: 2rem;
            overflow-y: auto;
            background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
            height: calc(100vh - 140px);
            position: relative;
        }

        .chart-drawer-content::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 20px;
            background: linear-gradient(180deg, rgba(0, 0, 0, 0.05) 0%, transparent 100%);
            pointer-events: none;
        }

        .chart-placeholder {
            width: 100%;
            height: 400px;
            background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
            border-radius: 16px;
            border: 2px dashed #cbd5e0;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            color: #64748b;
            font-size: 16px;
            margin-bottom: 1.5rem;
            position: relative;
            overflow: hidden;
            transition: all 0.3s ease;
        }

        .chart-placeholder::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
            animation: shimmer 2s infinite;
        }

        @keyframes shimmer {
            0% { left: -100%; }
            100% { left: 100%; }
        }

        .chart-placeholder-icon {
            font-size: 48px;
            margin-bottom: 16px;
            opacity: 0.6;
            animation: float 3s ease-in-out infinite;
        }

        @keyframes float {
            0%, 100% { transform: translateY(0px); }
            50% { transform: translateY(-10px); }
        }

        .chart-placeholder-text {
            font-weight: 500;
            text-align: center;
            line-height: 1.5;
        }

        /* Modern Chart container styling */
        #chartContainer {
            width: 100%;
            min-height: 450px;
            background: linear-gradient(145deg, #ffffff 0%, #f8fafc 100%);
            border-radius: 20px;
            padding: 2rem;
            margin-bottom: 2rem;
            box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
            border: 1px solid rgba(255, 255, 255, 0.8);
            position: relative;
            overflow: hidden;
            transition: all 0.3s ease;
        }

        #chartContainer::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 4px;
            background: linear-gradient(135deg, #2c3e50 0%, #8e44ad 50%, #e91e63 100%);
        }

        #chartContainer:hover {
            transform: translateY(-5px);
            box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15), 0 20px 25px -5px rgba(0, 0, 0, 0.1);
        }

        /* Enhanced chart responsiveness */
        #chartContainer .plotly-chart {
            width: 100% !important;
            max-width: 100% !important;
            border-radius: 12px;
            overflow: hidden;
            animation: chartFadeIn 0.6s ease-out;
        }

        #chartContainer .js-plotly-plot {
            width: 100% !important;
            max-width: 100% !important;
            border-radius: 12px;
            animation: chartSlideIn 0.8s cubic-bezier(0.25, 0.8, 0.25, 1);
        }

        #chartContainer canvas {
            max-width: 100% !important;
            height: auto !important;
            border-radius: 12px;
            animation: chartFadeIn 0.6s ease-out;
        }
        
        /* Table row limit and show more functionality */
        .table-container {
            position: relative;
        }
        
        .limited-rows tr.hidden-row {
            display: none;
        }
        
        .show-more-btn {
            background: linear-gradient(135deg, #2c3e50 0%, #8e44ad 50%, #e91e63 100%);
            color: white;
            border: none;
            padding: 10px 20px;
            border-radius: 20px;
            margin: 15px auto;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            cursor: pointer;
            font-weight: 500;
            transition: all 0.3s ease;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
            font-size: 14px;
            min-width: 140px;
        }
        
        .show-more-btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 6px 12px rgba(142, 68, 173, 0.25);
        }
        
        .show-more-btn::before {
            content: '';
            width: 16px;
            height: 16px;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M8 4a.5.5 0 0 1 .5.5v5.793l2.146-2.147a.5.5 0 0 1 .708.708l-3 3a.5.5 0 0 1-.708 0l-3-3a.5.5 0 1 1 .708-.708L7.5 10.293V4.5A.5.5 0 0 1 8 4z'/%3E%3C/svg%3E");
            background-size: contain;
            background-repeat: no-repeat;
            display: inline-block;
        }
        
        .show-more-btn[data-expanded="true"]::before {
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M8 12a.5.5 0 0 0 .5-.5V5.707l2.146 2.147a.5.5 0 0 0 .708-.708l-3-3a.5.5 0 0 0-.708 0l-3 3a.5.5 0 1 0 .708.708L7.5 5.707V11.5a.5.5 0 0 0 .5.5z'/%3E%3C/svg%3E");
        }

        #chartContainer svg {
            max-width: 100% !important;
            height: auto !important;
            border-radius: 12px;
            animation: chartSlideIn 0.8s cubic-bezier(0.25, 0.8, 0.25, 1);
        }

        @keyframes chartFadeIn {
            from {
                opacity: 0;
                transform: scale(0.95);
            }
            to {
                opacity: 1;
                transform: scale(1);
            }
        }

        @keyframes chartSlideIn {
            from {
                opacity: 0;
                transform: translateY(20px) scale(0.98);
            }
            to {
                opacity: 1;
                transform: translateY(0) scale(1);
            }
        }

        /* Enhanced table styling in drawer */
        #chartContainer .data-table {
            width: 100%;
            overflow-x: auto;
            border-radius: 12px;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
        }

        #chartContainer .data-table table {
            width: 100%;
            font-size: 13px;
            border-radius: 12px;
            overflow: hidden;
        }

        /* Modern overlay for drawer */
        .drawer-overlay {
            position: fixed;
            top: 60px; /* Account for fixed navbar */
            left: 0;
            width: 100vw;
            height: calc(100vh - 60px);
            background: linear-gradient(135deg, rgba(0, 0, 0, 0.4) 0%, rgba(30, 30, 60, 0.3) 100%);
            backdrop-filter: blur(8px);
            z-index: 1500;
            opacity: 0;
            visibility: hidden;
            transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
        }

        .drawer-overlay.show {
            opacity: 1;
            visibility: visible;
        }

        /* Enhanced main container adjustments */
        .main-container {
            transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
            flex: 1;
            display: flex;
            flex-direction: row; /* Changed to row to accommodate sidebar */
            height: calc(100vh - 60px);
            overflow: hidden;
        }

        .main-container.drawer-open {
            margin-right: 0;
            filter: blur(1px);
            transform: scale(0.98);
        }

        /* Chat History Sidebar Styles */
        .chat-sidebar {
            width: 300px;
            background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
            border-right: 1px solid #e2e8f0;
            display: flex;
            flex-direction: column;
            overflow: hidden;
            box-shadow: 2px 0 10px rgba(0, 0, 0, 0.05);
            transition: all 0.3s ease;
            position: relative;
        }

        .chat-sidebar.collapsed {
            width: 60px;
        }

        .sidebar-header {
            padding: 20px;
            background: #f8f9fa;
            color: #2c3e50;
            display: flex;
            align-items: center;
            justify-content: space-between;
            border-bottom: 1px solid #e2e8f0;
        }

        .sidebar-title {
            font-weight: 600;
            font-size: 16px;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .sidebar-toggle {
            background: rgba(44, 62, 80, 0.1);
            border: none;
            color: #2c3e50;
            width: 32px;
            height: 32px;
            border-radius: 8px;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: all 0.3s ease;
        }

        .sidebar-toggle:hover {
            background: rgba(44, 62, 80, 0.2);
            transform: scale(1.1);
        }

        .sidebar-content {
            flex: 1;
            overflow-y: auto;
            padding: 10px;
            background: #fafbfc;
        }

        .new-chat-btn {
            width: 100%;
            padding: 12px 16px;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            border: none;
            border-radius: 12px;
            cursor: pointer;
            font-weight: 600;
            margin-bottom: 16px;
            transition: all 0.3s ease;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
        }

        .new-chat-btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 8px 25px rgba(102, 126, 234, 0.3);
        }

        .chat-history-list {
            display: flex;
            flex-direction: column;
            gap: 8px;
        }

        .chat-history-item {
            padding: 12px 16px;
            background: white;
            border-radius: 12px;
            border: 1px solid #e2e8f0;
            cursor: pointer;
            transition: all 0.3s ease;
            position: relative;
            overflow: hidden;
        }

        .chat-history-item:hover {
            background: #f8fafc;
            border-color: #cbd5e0;
            transform: translateX(4px);
        }

        .chat-history-item.active {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            border-color: transparent;
            box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);
        }

        .chat-item-title {
            font-weight: 600;
            font-size: 14px;
            margin-bottom: 4px;
            display: -webkit-box;
            -webkit-line-clamp: 1;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        .chat-item-preview {
            font-size: 12px;
            opacity: 0.7;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
            line-height: 1.3;
        }

        .chat-item-time {
            position: absolute;
            top: 8px;
            right: 12px;
            font-size: 11px;
            opacity: 0.5;
        }

        .chat-item-delete {
            position: absolute;
            bottom: 8px;
            right: 12px;
            background: rgba(255, 87, 87, 0.1);
            border: none;
            color: #ff5757;
            width: 24px;
            height: 24px;
            border-radius: 6px;
            cursor: pointer;
            opacity: 0;
            transition: all 0.3s ease;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 12px;
        }

        .chat-history-item:hover .chat-item-delete {
            opacity: 1;
        }

        .chat-item-delete:hover {
            background: #ff5757;
            color: white;
        }

        .sidebar-collapsed .sidebar-title,
        .sidebar-collapsed .sidebar-content {
            display: none;
        }

        .sidebar-collapsed .sidebar-header {
            padding: 20px 10px;
            justify-content: center;
        }

        /* Reopen button for collapsed sidebar */
        .sidebar-reopen-btn {
            position: fixed;
            top: 80px;
            left: 10px;
            width: 40px;
            height: 40px;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            border: none;
            border-radius: 50%;
            color: white;
            cursor: pointer;
            display: none;
            align-items: center;
            justify-content: center;
            font-size: 18px;
            box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);
            transition: all 0.3s ease;
            z-index: 1000;
        }

        .sidebar-reopen-btn:hover {
            transform: scale(1.1);
            box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4);
        }

        /* Show reopen button when sidebar is collapsed */
        .main-container.sidebar-collapsed .sidebar-reopen-btn {
            display: flex !important;
        }

        .loading-placeholder {
            opacity: 0.6;
            animation: pulse 2s infinite;
        }

        @keyframes pulse {
            0% { opacity: 0.6; }
            50% { opacity: 0.3; }
            100% { opacity: 0.6; }
        }

        .chat-container {
            flex: 1;
            display: flex;
            flex-direction: column;
            width: 100%;
            background: white;
            border-radius: 0;
            box-shadow: none;
            overflow: hidden;
            height: 100%;
        }

        .chat-header {
            background: #ffffff;
            color: #333;
            padding: 20px 40px;
            text-align: center;
            border-bottom: 1px solid #e1e8ed;
            box-shadow: none;
        }

        .chat-header h1 {
            font-size: 28px;
            margin-bottom: 8px;
            color: #2c3e50;
            font-weight: 300;
        }

        .chat-header p {
            opacity: 0.7;
            font-size: 16px;
            color: #666;
        }

        .status-indicator {
            display: inline-block;
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background: #27ae60;
            margin-right: 8px;
            animation: pulse 2s infinite;
        }

        @keyframes pulse {
            0% {
                opacity: 1;
            }

            50% {
                opacity: 0.5;
            }

            100% {
                opacity: 1;
            }
        }

        .chat-messages {
            flex: 1;
            overflow-y: auto;
            padding: 40px 80px;
            background: #ffffff;
            width: 100%;
        }

        .message {
            margin-bottom: 10px; /* Réduit de 20px à 10px */
            opacity: 0;
            animation: slideIn 0.3s ease-out forwards;
            display: flex;
            align-items: flex-start;
            gap: 8px; /* Réduit de 12px à 8px */
        }

        @keyframes slideIn {
            from {
                opacity: 0;
                transform: translateY(20px);
            }

            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .message.user {
            flex-direction: row-reverse;
        }

        .message.bot {
            flex-direction: row;
        }

        .message-avatar {
            width: 32px;
            height: 32px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 16px;
            flex-shrink: 0;
            margin-top: 4px;
        }

        .message.user .message-avatar {
            background: linear-gradient(135deg, #8e44ad, #e91e63);
            color: white;
        }

        .message.bot .message-avatar {
            background: linear-gradient(135deg, #2c3e50, #3498db);
            color: white;
        }

        .message-content {
            max-width: 80%;
            padding: 16px 20px;
            border-radius: 18px;
            word-wrap: break-word;
            line-height: 1.5;
            position: relative;
        }

        .message.user .message-content {
            background: linear-gradient(135deg, #8e44ad, #e91e63);
            color: white;
            border-bottom-right-radius: 4px;
        }

        .message.bot .message-content {
            background: #f8f9fa;
            color: #333;
            border: 1px solid #e1e8ed;
            border-bottom-left-radius: 4px;
        }
        
        .greeting-message.message-content {
            background: #edf7ed !important;
            border: 1px solid #c3e6cb !important;
            color: #285b2a !important;
            font-style: italic;
        }

        .message-time {
            font-size: 11px;
            opacity: 0.6;
            margin-top: 4px; /* Réduit de 8px à 4px */
            margin-bottom: 12px; /* Ajouter une marge basse spécifique */
            text-align: center;
            color: #666;
        }

        .message-meta {
            font-size: 12px;
            opacity: 0.8;
            margin-top: 12px;
            padding: 12px;
            background: #f0f0f0;
            border-radius: 10px;
            border-left: 4px solid #3498db;
        }

        /* Modern Welcome Section Styles */
        .welcome-section {
            padding: 20px;
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 45vh;
        }

        .welcome-card {
            background: linear-gradient(145deg, #ffffff 0%, #f8fafc 100%);
            border-radius: 20px;
            padding: 30px;
            max-width: 700px;
            width: 100%;
            box-shadow: 0 15px 30px rgba(0, 0, 0, 0.08), 0 8px 15px rgba(0, 0, 0, 0.04);
            border: 1px solid rgba(255, 255, 255, 0.8);
            backdrop-filter: blur(10px);
            position: relative;
            overflow: hidden;
            animation: welcomeSlideIn 0.8s cubic-bezier(0.25, 0.8, 0.25, 1);
        }

        .welcome-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 4px;
            background: linear-gradient(135deg, #2c3e50 0%, #8e44ad 50%, #e91e63 100%);
        }

        @keyframes welcomeSlideIn {
            from {
                opacity: 0;
                transform: translateY(30px) scale(0.95);
            }
            to {
                opacity: 1;
                transform: translateY(0) scale(1);
            }
        }

        .welcome-header {
            display: flex;
            align-items: center;
            margin-bottom: 25px;
            gap: 15px;
        }

        .welcome-avatar {
            position: relative;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .avatar-icon {
            width: 60px;
            height: 60px;
            background: linear-gradient(135deg, #2c3e50 0%, #8e44ad 50%, #e91e63 100%);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 24px;
            color: white;
            position: relative;
            z-index: 2;
            box-shadow: 0 8px 20px rgba(142, 68, 173, 0.3);
        }

        .avatar-pulse {
            position: absolute;
            top: 0;
            left: 0;
            width: 60px;
            height: 60px;
            border-radius: 50%;
            background: linear-gradient(135deg, #2c3e50 0%, #8e44ad 50%, #e91e63 100%);
            opacity: 0.3;
            animation: pulse 2s infinite;
        }

        @keyframes pulse {
            0% { transform: scale(1); opacity: 0.3; }
            50% { transform: scale(1.1); opacity: 0.1; }
            100% { transform: scale(1.2); opacity: 0; }
        }

        .welcome-title h2 {
            font-size: 24px;
            font-weight: 700;
            color: #2c3e50;
            margin: 0 0 6px 0;
            background: linear-gradient(135deg, #2c3e50 0%, #8e44ad 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }

        .welcome-title p {
            font-size: 14px;
            color: #64748b;
            margin: 0;
            font-weight: 400;
        }

        .capabilities-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
            gap: 16px;
            margin-bottom: 25px;
        }

        .capability-card {
            background: rgba(255, 255, 255, 0.8);
            border-radius: 12px;
            padding: 18px;
            text-align: center;
            transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
            border: 1px solid rgba(255, 255, 255, 0.5);
            backdrop-filter: blur(5px);
        }

        .capability-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
            background: rgba(255, 255, 255, 0.95);
        }

        .capability-icon {
            font-size: 24px;
            margin-bottom: 12px;
            display: block;
        }

        .capability-card h4 {
            font-size: 16px;
            font-weight: 600;
            color: #2c3e50;
            margin: 0 0 6px 0;
        }

        .capability-card p {
            font-size: 13px;
            color: #64748b;
            margin: 0;
            line-height: 1.4;
        }

        .example-queries {
            margin-bottom: 20px;
        }

        .example-queries h4 {
            font-size: 16px;
            font-weight: 600;
            color: #2c3e50;
            margin: 0 0 15px 0;
            text-align: center;
        }

        .query-buttons {
            display: flex;
            flex-direction: column;
            gap: 10px;
        }

        .query-btn {
            background: linear-gradient(135deg, rgba(44, 62, 80, 0.05) 0%, rgba(142, 68, 173, 0.05) 100%);
            border: 2px solid rgba(142, 68, 173, 0.2);
            border-radius: 10px;
            padding: 12px 16px;
            font-size: 13px;
            color: #2c3e50;
            cursor: pointer;
            transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
            text-align: left;
            font-weight: 500;
            backdrop-filter: blur(5px);
        }

        .query-btn:hover {
            background: linear-gradient(135deg, #2c3e50 0%, #8e44ad 50%, #e91e63 100%);
            color: white;
            transform: translateX(10px);
            box-shadow: 0 8px 25px rgba(142, 68, 173, 0.3);
        }

        .welcome-footer {
            display: flex;
            justify-content: center;
            align-items: center;
        }

        .status-badge {
            display: flex;
            align-items: center;
            gap: 6px;
            background: rgba(16, 185, 129, 0.1);
            color: #059669;
            padding: 8px 16px;
            border-radius: 20px;
            font-size: 13px;
            font-weight: 500;
            border: 1px solid rgba(16, 185, 129, 0.2);
        }

        .status-dot {
            width: 6px;
            height: 6px;
            background: #10b981;
            border-radius: 50%;
            animation: statusPulse 2s infinite;
        }

        @keyframes statusPulse {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.5; }
        }

        /* Mobile responsiveness for welcome section */
        @media (max-width: 768px) {
            .welcome-section {
                padding: 15px 10px;
                min-height: 40vh;
            }

            .welcome-card {
                padding: 20px 16px;
                border-radius: 16px;
            }

            .welcome-header {
                flex-direction: column;
                text-align: center;
                margin-bottom: 20px;
            }

            .welcome-title h2 {
                font-size: 20px;
            }

            .capabilities-grid {
                grid-template-columns: 1fr;
                gap: 12px;
                margin-bottom: 20px;
            }

            .capability-card {
                padding: 16px;
            }

            .avatar-icon, .avatar-pulse {
                width: 50px;
                height: 50px;
            }

            .avatar-icon {
                font-size: 20px;
            }
        }

        .chat-input-container {
            padding: 20px 80px 30px;
            background: white;
            border-top: 1px solid #e1e8ed;
            width: 100%;
        }

        .chat-input-wrapper {
            display: flex;
            gap: 10px;
            align-items: flex-end;
        }

        .chat-input {
            flex: 1;
            padding: 16px 20px;
            border: 2px solid #e1e8ed;
            border-radius: 25px;
            font-size: 16px;
            resize: none;
            max-height: 120px;
            min-height: 54px;
            outline: none;
            transition: all 0.3s ease;
            background: #ffffff;
        }

        .chat-input:focus {
            border-color: #8e44ad;
            box-shadow: 0 0 0 3px rgba(142, 68, 173, 0.1);
        }

        .send-button {
            width: 54px;
            height: 54px;
            border: none;
            background: linear-gradient(135deg, #8e44ad, #e91e63);
            color: white;
            border-radius: 50%;
            cursor: pointer;
            font-size: 20px;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: all 0.2s ease;
            box-shadow: 0 2px 8px rgba(142, 68, 173, 0.3);
        }

        .send-button:hover {
            transform: scale(1.05);
            box-shadow: 0 4px 12px rgba(142, 68, 173, 0.4);
        }

        .send-button:disabled {
            background: #ccc;
            cursor: not-allowed;
            transform: none;
            box-shadow: none;
        }

        .typing-indicator {
            display: none;
            margin-bottom: 32px;
        }

        .typing-indicator.show {
            display: flex;
            align-items: flex-start;
            gap: 12px;
        }

        .typing-indicator .message-avatar {
            width: 32px;
            height: 32px;
            border-radius: 50%;
            background: linear-gradient(135deg, #2c3e50, #3498db);
            color: white;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 16px;
            flex-shrink: 0;
            margin-top: 4px;
        }

        .typing-indicator .message-content {
            background: #f8f9fa;
            border: 1px solid #e1e8ed;
            padding: 16px 20px;
            border-radius: 18px;
            border-bottom-left-radius: 4px;
            max-width: 80%;
        }

        .typing-dots {
            display: inline-block;
        }

        .typing-dots span {
            display: inline-block;
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: #8e44ad;
            margin: 0 2px;
            animation: typing 1.4s infinite ease-in-out;
        }

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

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

        @keyframes typing {

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

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

        .error-message {
            background: #e74c3c !important;
            color: white !important;
        }

        .success-indicator {
            color: #27ae60;
            font-weight: bold;
        }

        .sql-info-container {
            position: relative;
            margin: 2px 0;
            text-align: right;
        }

        .sql-info-button {
            width: 24px;
            height: 24px;
            border-radius: 50%;
            background: #e74c3c;
            color: white;
            border: 2px solid white;
            font-style: italic;
            font-weight: bold;
            cursor: pointer;
            position: relative;
            margin-bottom: 4px;
            margin-top: 2px;
            margin-left: auto;
            margin-right: 10px;
            display: block;
            align-items: center;
            justify-content: center;
            font-size: 14px;
            box-shadow: 0 2px 5px rgba(0,0,0,0.2);
            transition: all 0.2s ease;
        }
        
        .sql-info-button:hover {
            background: #9b59b6;
            transform: scale(1.1);
        }

        .sql-query {
            font-family: 'Courier New', monospace;
            background: #2c3e50;
            color: #ecf0f1;
            padding: 8px;
            border-radius: 8px;
            margin: 6px 0;
            font-size: 13px;
            overflow-x: auto;
            max-height: 0;
            overflow: hidden;
            opacity: 0;
            transition: all 0.3s ease;
        }
        
        .sql-query.show {
            max-height: 500px;
            opacity: 1;
            margin-top: 10px;
            text-align: left;
            border: 2px solid #3498db;
            box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15);
        }

        .response-type {
            display: inline-block;
            background: #8e44ad;
            color: white;
            padding: 6px 12px;
            border-radius: 15px;
            font-size: 12px;
            margin-bottom: 12px;
            font-weight: 500;
        }

        /* Styles pour les visualisations et tableaux */
        .plotly-chart {
            margin: 16px 0;
            border: 1px solid #e1e8ed;
            border-radius: 8px;
            overflow: hidden;
            background: white;
        }

        .data-table {
            margin: 20px 0;
            border-radius: 16px;
            overflow: hidden;
            background: linear-gradient(145deg, #ffffff 0%, #f8fafc 100%);
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08), 0 4px 10px rgba(0, 0, 0, 0.03);
            border: 1px solid rgba(255, 255, 255, 0.8);
            backdrop-filter: blur(10px);
            animation: tableSlideIn 0.6s cubic-bezier(0.25, 0.8, 0.25, 1);
        }

        @keyframes tableSlideIn {
            from {
                opacity: 0;
                transform: translateY(15px) scale(0.98);
            }
            to {
                opacity: 1;
                transform: translateY(0) scale(1);
            }
        }

        .data-table table {
            width: 100%;
            border-collapse: collapse;
            font-size: 14px;
            font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
            background: transparent;
        }

        .data-table th {
            background: #f8fafc;
            color: #334155;
            padding: 16px 20px;
            text-align: left;
            font-weight: 600;
            font-size: 14px;
            border: none;
            border-bottom: 2px solid #e2e8f0;
            position: relative;
        }

        .data-table td {
            padding: 14px 20px;
            border: none;
            border-bottom: 1px solid rgba(226, 232, 240, 0.3);
            color: #334155;
            font-size: 13px;
            line-height: 1.6;
            vertical-align: middle;
            transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
        }

        .data-table tr:nth-child(even) {
            background: rgba(248, 250, 252, 0.5);
        }

        .data-table tr:nth-child(odd) {
            background: rgba(255, 255, 255, 0.8);
        }

        .data-table tr:hover {
            background: linear-gradient(135deg, rgba(44, 62, 80, 0.05) 0%, rgba(142, 68, 173, 0.05) 50%, rgba(233, 30, 99, 0.05) 100%);
            transform: translateX(4px);
            box-shadow: 4px 0 12px rgba(142, 68, 173, 0.15);
        }

        .data-table tr:last-child td {
            border-bottom: none;
        }

        /* Enhanced styling for numeric cells */
        .data-table td.numeric {
            font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace;
            font-weight: 500;
            text-align: right;
            background: rgba(44, 62, 80, 0.02);
            color: #2c3e50;
        }

        /* Modern Table Styles for Auto-Display in Drawer */
        .modern-table-container {
            width: 100%;
            margin: 20px 0;
            border-radius: 16px;
            overflow: hidden;
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08), 0 4px 10px rgba(0, 0, 0, 0.03);
            background: linear-gradient(145deg, #ffffff 0%, #f8fafc 100%);
            border: 1px solid rgba(255, 255, 255, 0.8);
        }

        .modern-data-table {
            width: 100%;
            border-collapse: collapse;
            font-size: 14px;
            font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
            background: transparent;
        }

        .modern-table-header {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%);
            color: white;
            padding: 16px 20px;
            text-align: left;
            font-weight: 600;
            font-size: 13px;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            border: none;
            position: relative;
            overflow: hidden;
        }

        .modern-table-header::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0%, transparent 100%);
            pointer-events: none;
        }

        .modern-table-row {
            transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
            border: none;
        }

        .modern-table-row.even {
            background: rgba(248, 250, 252, 0.5);
        }

        .modern-table-row.odd {
            background: rgba(255, 255, 255, 0.8);
        }

        .modern-table-row:hover {
            background: linear-gradient(135deg, rgba(102, 126, 234, 0.05) 0%, rgba(240, 147, 251, 0.05) 100%);
            transform: translateX(4px);
            box-shadow: 4px 0 12px rgba(102, 126, 234, 0.1);
        }

        .modern-table-cell {
            padding: 14px 20px;
            border: none;
            border-bottom: 1px solid rgba(226, 232, 240, 0.5);
            color: #334155;
            font-size: 13px;
            line-height: 1.5;
            vertical-align: middle;
        }

        .modern-table-row:last-child .modern-table-cell {
            border-bottom: none;
        }

        /* Enhanced styling for numeric cells */
        .modern-table-cell.numeric {
            font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace;
            font-weight: 500;
            text-align: right;
            background: rgba(102, 126, 234, 0.02);
        }

        /* Responsive table for drawer */
        .chart-drawer .modern-table-container {
            margin: 10px 0;
            border-radius: 12px;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
        }

        .chart-drawer .modern-data-table {
            font-size: 12px;
        }

        .chart-drawer .modern-table-header {
            padding: 12px 16px;
            font-size: 11px;
        }

        .chart-drawer .modern-table-cell {
            padding: 10px 16px;
            font-size: 12px;
        }

        .visualization-container {
            margin: 20px 0;
            padding: 0;
            background: linear-gradient(145deg, #ffffff 0%, #f8fafc 100%);
            border-radius: 16px;
            border: 1px solid rgba(255, 255, 255, 0.8);
            overflow: hidden;
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08), 0 4px 10px rgba(0, 0, 0, 0.03);
            backdrop-filter: blur(10px);
            transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
        }

        .visualization-container:hover {
            transform: translateY(-2px);
            box-shadow: 0 15px 35px rgba(0, 0, 0, 0.12), 0 8px 15px rgba(0, 0, 0, 0.06);
        }

        .visualization-title {
            background: #f8fafc;
            color: #334155;
            padding: 16px 20px;
            font-weight: 600;
            font-size: 14px;
            border-bottom: 2px solid #e2e8f0;
            position: relative;
        }

        /* Mobile responsiveness */
        @media (max-width: 768px) {
            .navbar {
                padding: 0 1rem;
            }

            .navbar-nav {
                gap: 1rem;
            }

            .nav-item {
                font-size: 14px;
                padding: 6px 12px;
            }

            .chat-messages {
                padding: 20px;
            }

            .chat-input-container {
                padding: 15px 20px 20px;
            }

            .message-content {
                max-width: 90%;
            }

            .chat-input {
                font-size: 16px;
                /* Prevent zoom on iOS */
            }

            .data-table {
                font-size: 12px;
            }

            .data-table th,
            .data-table td {
                padding: 8px 10px;
            }

            /* Mobile chart drawer adjustments */
            .chart-drawer {
                width: 100vw;
                right: -100vw;
            }

            .chart-drawer.open {
                right: 0;
            }

            .chart-drawer-content {
                padding: 1rem;
            }

            #chartContainer {
                padding: 1rem;
                min-height: 300px;
            }

            .main-container.drawer-open {
                filter: blur(2px);
                transform: scale(0.95);
            }
        }

        @media (max-width: 1024px) {
            .chat-messages {
                padding: 30px 40px;
            }

            .chat-input-container {
                padding: 20px 40px 25px;
            }

            /* Tablet chart drawer adjustments */
            .chart-drawer {
                width: 90vw;
                right: -90vw;
            }

            .chart-drawer-content {
                padding: 1.5rem;
            }
        }

        /* Scrollbar styling */
        .chat-messages::-webkit-scrollbar {
            width: 6px;
        }

        .chat-messages::-webkit-scrollbar-track {
            background: #f1f1f1;
        }

        .chat-messages::-webkit-scrollbar-thumb {
            background: #c1c1c1;
            border-radius: 3px;
        }

        .chat-messages::-webkit-scrollbar-thumb:hover {
            background: #a8a8a8;
        }

        /* Proactive Suggestions Panel Styles */
        .suggestions-panel {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            border-radius: 16px;
            margin: 12px 20px;
            padding: 20px;
            color: white;
            box-shadow: 0 8px 25px rgba(102, 126, 234, 0.3);
            border: 1px solid rgba(255, 255, 255, 0.2);
            backdrop-filter: blur(10px);
            animation: slideUp 0.3s ease-out;
        }

        .suggestions-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 15px;
            padding-bottom: 12px;
            border-bottom: 1px solid rgba(255, 255, 255, 0.2);
        }

        .suggestions-icon {
            font-size: 20px;
            margin-right: 8px;
        }

        .suggestions-title {
            font-weight: 600;
            font-size: 16px;
            color: white;
        }

        .close-suggestions {
            background: none;
            border: none;
            color: rgba(255, 255, 255, 0.8);
            font-size: 20px;
            cursor: pointer;
            padding: 4px 8px;
            border-radius: 4px;
            transition: all 0.2s ease;
        }

        .close-suggestions:hover {
            background: rgba(255, 255, 255, 0.1);
            color: white;
        }

        .suggestions-list {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
        }

        .suggestion-item {
            background: rgba(255, 255, 255, 0.15);
            border: 1px solid rgba(255, 255, 255, 0.2);
            border-radius: 20px;
            padding: 8px 16px;
            font-size: 14px;
            color: white;
            cursor: pointer;
            transition: all 0.2s ease;
            backdrop-filter: blur(5px);
            display: flex;
            align-items: center;
            gap: 6px;
        }

        .suggestion-item:hover {
            background: rgba(255, 255, 255, 0.25);
            border-color: rgba(255, 255, 255, 0.4);
            transform: translateY(-1px);
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
        }

        .suggestion-item::before {
            content: "→";
            font-size: 12px;
            opacity: 0.8;
        }

        @keyframes slideUp {
            from {
                opacity: 0;
                transform: translateY(20px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        /* Responsive adjustments for suggestions */
        @media (max-width: 768px) {
            .suggestions-panel {
                margin: 8px 12px;
                padding: 16px;
            }

            .suggestion-item {
                font-size: 13px;
                padding: 6px 12px;
            }
        }

        /* Explorer d'avantage card styles - Classy & Refined Design */
        .explore-more-container {
            margin-top: 16px;
            animation: fadeInUp 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
        }

        .explore-card {
            background: linear-gradient(145deg, #ffffff 0%, #fafbfc 100%);
            border: 1px solid rgba(226, 232, 240, 0.6);
            border-radius: 12px;
            padding: 16px 20px;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.03), 0 1px 3px rgba(0, 0, 0, 0.08);
            transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
            position: relative;
            overflow: hidden;
        }

        .explore-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 2px;
            background: linear-gradient(135deg, #64748b 0%, #8e44ad 50%, #e91e63 100%);
            opacity: 0.7;
        }

        .explore-card:hover {
            transform: translateY(-1px);
            box-shadow: 0 8px 12px rgba(0, 0, 0, 0.06), 0 3px 6px rgba(0, 0, 0, 0.1);
            border-color: rgba(142, 68, 173, 0.2);
        }

        .explore-header {
            display: flex;
            align-items: center;
            margin-bottom: 10px;
        }

        .explore-icon {
            font-size: 16px;
            margin-right: 8px;
            color: #64748b;
            opacity: 0.8;
        }

        .explore-title {
            font-size: 14px;
            font-weight: 500;
            color: #374151;
            letter-spacing: 0.1px;
        }

        .explore-description {
            color: #6b7280;
            font-size: 12px;
            margin-bottom: 12px;
            line-height: 1.4;
            font-weight: 400;
        }

        .explore-button {
            background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
            color: #374151;
            border: 1px solid rgba(203, 213, 225, 0.8);
            border-radius: 8px;
            padding: 8px 16px;
            font-size: 13px;
            font-weight: 500;
            cursor: pointer;
            display: flex;
            align-items: center;
            gap: 6px;
            transition: all 0.3s ease;
            width: 100%;
            justify-content: center;
            position: relative;
            box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
        }

        .explore-button:hover {
            background: linear-gradient(135deg, #2c3e50 0%, #8e44ad 50%, #e91e63 100%);
            color: white;
            border-color: transparent;
            transform: translateY(-1px);
            box-shadow: 0 4px 8px rgba(142, 68, 173, 0.25);
        }

        .explore-button:active {
            transform: translateY(0);
            box-shadow: 0 2px 4px rgba(142, 68, 173, 0.2);
        }

        .explore-button-icon {
            font-size: 14px;
            transition: transform 0.3s ease;
        }

        .explore-button:hover .explore-button-icon {
            transform: translateX(2px);
        }

        .explore-button-text {
            font-weight: 500;
            letter-spacing: 0.2px;
        }

        @keyframes fadeInUp {
            from {
                opacity: 0;
                transform: translateY(15px) scale(0.98);
            }
            to {
                opacity: 1;
                transform: translateY(0) scale(1);
            }
        }

        /* Responsive adjustments for explore card */
        @media (max-width: 768px) {
            .explore-card {
                padding: 14px 16px;
                border-radius: 10px;
                margin-top: 14px;
            }

            .explore-title {
                font-size: 13px;
            }

            .explore-description {
                font-size: 11px;
                margin-bottom: 10px;
            }

            .explore-button {
                padding: 7px 14px;
                font-size: 12px;
                border-radius: 6px;
            }

            .explore-icon {
                font-size: 14px;
                margin-right: 6px;
            }
        }

        /* Analysis Response Styles */
        .explore-analysis-response {
            background: linear-gradient(145deg, #f8fafc 0%, #e2e8f0 100%);
            border: 1px solid rgba(142, 68, 173, 0.2);
            border-radius: 12px;
            padding: 16px 20px;
            margin: 16px 0;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
        }

        .explore-analysis-response .response-type {
            background: linear-gradient(135deg, #2c3e50 0%, #8e44ad 50%, #e91e63 100%);
            color: white;
            padding: 6px 12px;
            border-radius: 15px;
            font-size: 12px;
            margin-bottom: 12px;
            display: inline-block;
            font-weight: 500;
        }

        /* Analysis report styles */
        .explore-analysis-report {
            background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
            border: 1px solid #dee2e6;
            border-radius: 12px;
            padding: 20px;
            margin: 16px 0;
        }

        .explore-analysis-report h3 {
            color: #2c3e50;
            margin-bottom: 20px;
            font-size: 18px;
            font-weight: 600;
        }

        .analysis-content {
            background: white;
            border: 1px solid #e1e8ed;
            border-radius: 8px;
            padding: 16px;
            line-height: 1.6;
            color: #495057;
        }

        .analysis-content p {
            margin-bottom: 12px;
        }

        .analysis-content strong {
            color: #2c3e50;
            font-weight: 600;
        }

        .analysis-section {
            background: white;
            border: 1px solid #e1e8ed;
            border-radius: 8px;
            padding: 16px;
            margin-bottom: 16px;
        }

        .analysis-section h4 {
            color: #8e44ad;
            margin-bottom: 8px;
            font-size: 16px;
        }

        .analysis-result {
            margin-top: 12px;
        }

        .error-result {
            color: #dc3545;
            background: #f8d7da;
            padding: 8px;
            border-radius: 4px;
            border: 1px solid #f5c6cb;
        }

        .natural-response {
            line-height: 1.6;
            color: #495057;
        }

        .data-summary {
            background: #e8f5e8;
            color: #155724;
            padding: 8px 12px;
            border-radius: 4px;
            margin-top: 8px;
            font-size: 14px;
            border: 1px solid #c3e6cb;
        }

        .raw-result {
            background: #f8f9fa;
            padding: 12px;
            border-radius: 4px;
            border: 1px solid #e9ecef;
            font-family: monospace;
            font-size: 12px;
            max-height: 200px;
            overflow-y: auto;
        }

        /* New analysis styles for better readability */
        .analysis-question {
            background: #e3f2fd;
            padding: 12px;
            border-radius: 8px;
            margin-bottom: 15px;
            border-left: 4px solid #2196f3;
        }

        .sample-data {
            background: #fff9e6;
            padding: 15px;
            border-radius: 8px;
            margin: 10px 0;
            border-left: 4px solid #ffc107;
        }

        .sample-data ul {
            margin: 10px 0;
            padding-left: 20px;
        }

        .sample-data li {
            margin: 5px 0;
            padding: 5px 0;
            border-bottom: 1px solid #eee;
        }

        .sql-section {
            margin-top: 15px;
        }

        .sql-toggle {
            background: #6c757d;
            color: white;
            border: none;
            padding: 8px 15px;
            border-radius: 5px;
            cursor: pointer;
            font-size: 0.9rem;
            transition: background-color 0.3s;
        }

        .sql-toggle:hover {
            background: #5a6268;
        }

        .sql-query-collapsible {
            display: none;
            background: #f8f9fa;
            padding: 15px;
            border-radius: 5px;
            margin-top: 10px;
            border: 1px solid #dee2e6;
            max-height: 200px;
            overflow-y: auto;
        }

        .sql-query-collapsible.show {
            display: block;
        }

        .sql-query-collapsible code {
            background: transparent;
            color: #495057;
            font-family: 'Courier New', monospace;
            font-size: 0.9rem;
            white-space: pre-wrap;
            word-break: break-word;
        }