body, html { margin: 0; padding: 0; height: 100%; overflow-x: hidden; } body::before { content: ''; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-image: linear-gradient(rgba(59, 130, 246, 0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(59, 130, 246, 0.03) 1px, transparent 1px); background-size: 60px 60px; pointer-events: none; z-index: 0; background: radial-gradient(circle at 20% 15%, rgba(59, 130, 246, 0.12), transparent 40%), radial-gradient(circle at 80% 25%, rgba(139, 92, 246, 0.1), transparent 45%), radial-gradient(circle at 50% 70%, rgba(16, 185, 129, 0.08), transparent 50%), radial-gradient(circle at 10% 85%, rgba(236, 72, 153, 0.08), transparent 45%), linear-gradient(135deg, #0a0e27 0%, #1a1f3a 25%, #0f1629 50%, #1e2139 75%, #0d1425 100%) !important; /* animation: gridScroll 30s linear infinite; */ } /* Hexagon pattern overlay */ body::after { content: ''; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-image: repeating-linear-gradient(45deg, transparent, transparent 25px, rgba(174, 246, 59, 0.015) 35px, rgba(93, 205, 18, 0.015) 70px), repeating-linear-gradient(-45deg, transparent, transparent 25px, rgba(139, 92, 246, 0.015) 35px, rgba(139, 92, 246, 0.015) 70px); pointer-events: none; z-index: 0; opacity: 0.6; } /* ------------------------- */ /* FORCE GRADIO TO NOT WRAP */ /* ------------------------- */ /* Outer Gradio container */ .gradio-container, .gradio-container .wrap, .gradio-container .contain { display: flex !important; flex-wrap: nowrap !important; justify-content: space-between !important; align-items: stretch !important; } /* Prevent Gradio auto-min-width */ .gradio-container .contain>div[id^="component-"] { min-width: auto !important; flex: 1 !important; } /* Space between cards */ .gradio-container .contain>div[id^="component-"]>.gr-group, .gradio-container .contain>div[id^="component-"]>div { margin: 10px 15px !important; } .gradio-container.gradio-container-6-1-0 .contain input[class*="svelte-"] { color: white; } /* .gradio-container { max-width: 100% !important; width: 100% !important; margin: 0 !important; padding: 0 !important; background-color: #17203D !important; min-height: 100vh; } */ .header-box { position: relative; padding: 0px 30px; background: radial-gradient(circle at 20% 10%, rgba(255, 255, 255, 0.25), transparent 55%), radial-gradient(circle at 85% 20%, rgba(45, 135, 255, 0.22), transparent 70%), linear-gradient(135deg, #0e1a2b, #0f1032, #03011a); color: white; border-bottom-left-radius: 40px; border-bottom-right-radius: 40px; box-shadow: 0 50px 90px -20px rgba(0, 0, 0, 0.6); display: flex; justify-content: space-; align-items: center; /* width:100%; */ } .header-title { font-size: 28px; font-weight: bold; color: white; margin: 0; text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3); } .compact-section { background-color: rgba(255, 255, 255, 0.95); padding: 12px; border-radius: 10px; margin: 8px; height: calc(100vh - 180px); overflow-y: auto; } .card-box { background-color: rgba(255, 255, 255, 0.95); padding: 15px; border-radius: 12px; margin: 10px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); border: 1px solid #e0e0e0; } /* Compact Upload Box */ .compact-upload-box { background-color: rgba(255, 255, 255, 0.95); padding: 12px; border-radius: 12px; margin: 10px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); border: 1px solid #e0e0e0; max-width: 280px; } .compact-upload-box .upload-container { height: 180px !important; min-height: 180px !important; } .compact-upload-box input[type="file"] { height: 140px !important; min-height: 140px !important; } .how-to-use h3, .how-to-use li { color: white; } .how-to-use { background: rgba(255, 255, 255, 0.12); /* frosted glass transparency */ backdrop-filter: blur(12px) saturate(160%); /* glass blur effect */ -webkit-backdrop-filter: blur(12px) saturate(160%); border-radius: 18px; border: 1px solid rgba(255, 255, 255, 0.25); margin-bottom: 20px; max-height: 196px; height: 100%; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25); /* soft floating shadow */ transition: all 0.3s ease; } .how-to-use:hover { background: rgba(255, 255, 255, 0.18); border-color: rgba(255, 255, 255, 0.4); transform: translateY(-3px); } .upload-card { background: rgba(255, 255, 255, 0.12); backdrop-filter: blur(14px) saturate(160%); -webkit-backdrop-filter: blur(14px) saturate(160%); max-height: 100px; height: 100%; padding: 22px; border-radius: 18px; border: 1px solid rgba(255, 255, 255, 0.25); box-shadow: 0 6px 26px rgba(0, 0, 0, 0.25); transition: 0.3s ease; } .first-row { max-height: 250px; height: 100%; } .upload-card:hover { background: rgba(255, 255, 255, 0.18); border-color: rgba(255, 255, 255, 0.35); } /* Floating Ask Me Button */ button.floating-chat-btn, .floating-chat-btn { position: fixed !important; bottom: 30px !important; right: 30px !important; z-index: 1000 !important; width: 65px !important; height: 65px !important; min-width: 65px !important; min-height: 65px !important; max-width: 65px !important; max-height: 65px !important; border-radius: 50% !important; padding: 0 !important; margin: 0 !important; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important; border: 3px solid rgba(255, 255, 255, 0.3) !important; box-shadow: 0 8px 24px rgba(102, 126, 234, 0.6) !important; cursor: pointer !important; font-size: 32px !important; line-height: 1 !important; transition: all 0.3s ease !important; display: flex !important; align-items: center !important; justify-content: center !important; } button.floating-chat-btn:hover, .floating-chat-btn:hover { transform: scale(1.15) rotate(5deg) !important; box-shadow: 0 10px 30px rgba(102, 126, 234, 0.8) !important; border-color: rgba(255, 255, 255, 0.5) !important; } /* Chat Popup Container */ .chat-popup-box { position: fixed !important; bottom: 110px !important; right: 30px !important; width: 480px !important; max-height: 75vh !important; z-index: 999 !important; background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(250, 250, 255, 0.98) 100%) !important; border-radius: 20px !important; box-shadow: 0 12px 45px rgba(0, 0, 0, 0.35), 0 0 0 1px rgba(102, 126, 234, 0.2) !important; overflow: hidden !important; animation: slideInUp 0.3s ease-out !important; } @keyframes slideInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } /* Chat Header */ .chat-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important; padding: 20px 24px !important; color: white !important; border-radius: 20px 20px 0 0 !important; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important; } .chat-header h3 { margin: 0 !important; font-size: 20px !important; font-weight: 600 !important; color: white !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) !important; } /* Chat Content */ .chat-content-area { padding: 20px !important; max-height: calc(75vh - 80px) !important; overflow-y: auto !important; background: transparent !important; pointer-events: auto !important; position: relative !important; z-index: 1 !important; } .chat-content-area>* { margin-bottom: 15px !important; } /* Sample Questions */ .sample-questions-box { background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%) !important; border-radius: 12px !important; padding: 15px 18px !important; margin-bottom: 18px !important; border: 1px solid rgba(102, 126, 234, 0.15) !important; } .sample-questions-box h4 { margin: 0 0 12px 0 !important; color: #333 !important; font-size: 15px !important; font-weight: 600 !important; } .sample-q-text { color: rgb(0, 0, 0) !important; font-size: 13px !important; margin: 0px !important; line-height: 1.15 !important; padding: 0px !important; } .sample-q-text p { color: rgb(0, 0, 0) !important; margin: 0px !important; padding: 0px !important; } /* Question Input */ .question-input-box { margin-top: 20px !important; margin-bottom: 12px !important; } .question-input-box h4 { margin: 0 0 10px 0 !important; color: #333 !important; font-size: 15px !important; font-weight: 600 !important; } /* Minimal textbox styling - let Gradio handle rendering */ .chat-content-area .chat-question-input { margin: 12px 0 !important; } .chat-content-area textarea, .chat-content-area input[type="text"] { background: #ffffff !important; border: 2px solid #667eea !important; border-radius: 10px !important; padding: 14px !important; font-size: 14px !important; } .chat-content-area textarea:focus, .chat-content-area input:focus { border-color: #764ba2 !important; box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.15) !important; outline: none !important; } /* Submit Button in Chat */ .chat-submit-btn { width: 100% !important; padding: 14px !important; margin: 15px 0 !important; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important; border: none !important; border-radius: 10px !important; color: white !important; font-size: 16px !important; font-weight: 600 !important; cursor: pointer !important; transition: all 0.3s ease !important; box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3) !important; } .chat-submit-btn:hover { transform: translateY(-2px) !important; box-shadow: 0 6px 18px rgba(102, 126, 234, 0.5) !important; } /* Response Section */ .response-box { margin-top: 20px !important; border-top: 2px solid #e9ecef !important; padding-top: 20px !important; } .response-box h4 { margin: 0 0 15px 0 !important; color: #333 !important; font-size: 15px !important; font-weight: 600 !important; } /* Tabs in Chat */ .chat-content-area .gr-tabs { background: transparent !important; border: none !important; } .chat-content-area .gr-tab { color: #555 !important; background: #f8f9fa !important; border: 1px solid #e9ecef !important; border-radius: 8px 8px 0 0 !important; padding: 10px 16px !important; margin-right: 4px !important; } .chat-content-area .gr-tab.selected { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important; color: white !important; border-color: #667eea !important; } /* Output fields in chat */ .chat-content-area .gr-textbox, .chat-content-area .gr-plot, .chat-content-area .gr-dataframe { background: #ffffff !important; border: 1px solid #e9ecef !important; border-radius: 10px !important; padding: 12px !important; } .chat-content-area .gr-textbox textarea { color: #333 !important; background: #f8f9fa !important; border: 1px solid #e9ecef !important; } /* Scrollbar for chat content */ .chat-content-area::-webkit-scrollbar { width: 6px; } .chat-content-area::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.05); border-radius: 10px; } .chat-content-area::-webkit-scrollbar-thumb { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 10px; } .chat-content-area::-webkit-scrollbar-thumb:hover { background: linear-gradient(135deg, #764ba2 0%, #667eea 100%); } /* ------------------------- */ /* FORCE GRADIO TO NOT WRAP */ /* ------------------------- */ .first-row, .gr-row, .gr-column { display: flex !important; flex-wrap: nowrap !important; justify-content: space-between !important; align-items: stretch !important; } /* General card layout - VISIBLE BORDERS */ .upload-section, .how-to-use, .card-box, .upload-card, .gr-group, .gr-column>.gr-group, .gr-column>div.gr-group { background: rgba(255, 255, 255, 0.03) !important; backdrop-filter: blur(14px) saturate(160%) !important; -webkit-backdrop-filter: blur(14px) saturate(160%) !important; border-radius: 18px !important; border: 3px solid rgba(255, 255, 255, 0.7) !important; padding: 20px !important; box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25) !important; transition: 0.25s ease-in-out !important; } /* Hover effect */ .upload-section:hover, .how-to-use:hover, .gr-group:hover { transform: translateY(-4px) !important; border-color: rgba(255, 255, 255, 0.7) !important; background: rgba(255, 255, 255, 0.06) !important; } /* REMOVE borders from specific sections */ .header-box, .header-box * { border: none !important; } /* Remove borders from Sample Questions markdown sections */ .gr-markdown h3:contains("Sample Questions"), .gr-markdown:has(h3) { border: none !important; } /* Remove borders from Analysis Results and related output sections */ [id*="output"], [id*="answer"], [id*="result"], .gr-textbox, .gr-plot, .gr-dataframe { border: 1px solid rgba(255, 255, 255, 0.1) !important; } /* TARGET THE EXACT 3 BOXES BY ID - WHITE BORDERS ONLY */ #display-format-box, #analysis-type-box, #visualization-box { border: 6px solid #FFFFFF !important; border-radius: 18px !important; padding: 20px !important; } /* ------------------------- */ /* CARD SIZING & SPACING */ /* ------------------------- */ .first-row>div, .first-row>.gr-column, .first-row>.gr-group { flex: 1 !important; margin: 10px 15px !important; } /* Prevent shrinking */ .gr-group { flex-shrink: 0 !important; } /* Upload + Display + How-to-use row fixes */ .first-row { margin-top: 20px !important; padding: 0 25px !important; margin-bottom: 80px !important; min-height: 200px !important; } /* Second row - fixed spacing */ .second-row { margin-top: 80px !important; padding: 0 25px !important; clear: both !important; } /* Ensure proper spacing between rows */ .first-row .gr-group { margin-bottom: 20px !important; } /* Upload section dynamic height */ #upload-wrapper { min-height: 180px !important; transition: height 0.3s ease !important; } /* When upload info is present, expand */ #upload-wrapper .upload-info:not(:empty) { min-height: 60px !important; padding: 10px !important; margin-top: 10px !important; } .upload-section { width: 100% !important; min-height: 165px !important; } /* Display Format card width */ .display-format-card { min-width: 260px !important; } /* ------------------------- */ /* SECOND ROW (Analysis, Viz, Handling) */ /* ------------------------- */ .gr-row:nth-of-type(2)>.gr-group { flex: 1 !important; margin: 10px 15px !important; min-height: 170px !important; } /* ------------------------- */ /* DATA PREVIEW + ANALYSIS */ /* ------------------------- */ .gr-column>.gr-markdown, .gr-dataframe, .gr-plot, .gr-textbox { background: rgba(255, 255, 255, 0.12) !important; border-radius: 14px !important; padding: 16px !important; border: 1px solid rgba(255, 255, 255, 0.15) !important; } /* Improve titles */ .gr-markdown h3, .gr-markdown h1, .gr-markdown h2, .gr-markdown h4, .gr-markdown h5, .gr-markdown h6 { color: white !important; text-shadow: 0 0 6px rgba(255, 255, 255, 0.3) !important; } /* Force all headings white */ h1, h2, h3, h4, h5, h6 { color: white !important; } /* Specific markdown content */ .gr-group .gr-markdown, .gr-group .gr-markdown * { color: white !important; } /* Make internal elements visible with white text */ .gr-textbox, .gr-textbox input, .gr-textbox textarea, .gr-file, .gr-file input { background: rgba(255, 255, 255, 0.05) !important; border: 1px solid rgba(255, 255, 255, 0.1) !important; border-radius: 8px !important; color: white !important; } .gr-dropdown:hover, .gr-textbox:hover, .gr-file:hover { background: rgba(255, 255, 255, 0.08) !important; border-color: rgba(255, 255, 255, 0.15) !important; } .gr-dropdown:focus-within, .gr-textbox:focus-within, .gr-file:focus-within { background: rgba(255, 255, 255, 0.1) !important; border-color: rgba(59, 130, 246, 0.4) !important; } /* Dropdown options */ .gr-dropdown .dropdown-content, .gr-dropdown .dropdown-menu { background: rgba(30, 41, 59, 0.95) !important; border: 1px solid rgba(255, 255, 255, 0.1) !important; backdrop-filter: blur(10px) !important; } /* Labels */ .gr-form label { color: #d1d5db !important; } /* Make all text content white */ .gr-markdown, .gr-markdown h1, .gr-markdown h2, .gr-markdown h3, .gr-markdown h4, .gr-markdown p, .gr-html, .gr-html ul, .gr-html li, .gr-button, .gr-dropdown label, .gr-textbox label, .gr-file label, span, div, p { background: transparent !important; color: white !important; } /* Dropdown styling - Force white text */ .gr-dropdown, .gr-dropdown select, .gr-dropdown .wrap, .gr-dropdown input, .gr-dropdown .selected-option { background: rgba(0, 0, 0, 0.3) !important; color: white !important; border: 1px solid rgba(255, 255, 255, 0.3) !important; font-weight: 500 !important; } /* Dropdown text visibility */ .gr-dropdown * { color: white !important; } /* Dropdown options menu */ .gr-dropdown .dropdown-content, .gr-dropdown .dropdown-menu, .gr-dropdown option, .gr-dropdown select option { background: rgba(30, 41, 59, 0.95) !important; color: white !important; border: 1px solid rgba(255, 255, 255, 0.1) !important; } /* Force all dropdown text white - AGGRESSIVE */ select, select option, .gr-dropdown select, .gr-dropdown select option, .gr-dropdown .wrap select, .gr-dropdown .wrap, .gr-dropdown input[type="text"], .gr-dropdown .selected-text, .gr-dropdown .current-selection { color: white !important; background: rgba(0, 0, 0, 0.6) !important; -webkit-text-fill-color: white !important; text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8) !important; } /* Gradio specific dropdown classes */ .gr-dropdown .wrap>*, .gr-dropdown .wrap input, .gr-dropdown .wrap select, .gr-dropdown .wrap .selected, .gr-dropdown .wrap .value { color: white !important; background: rgba(0, 0, 0, 0.5) !important; -webkit-text-fill-color: white !important; } /* Override any theme colors */ * [class*="dropdown"] { color: white !important; } * [class*="dropdown"] * { color: white !important; } /* File upload text */ .gr-file .file-preview, .gr-file .upload-text { background: transparent !important; color: white !important; } /* Button text and borders - HIGHLY VISIBLE */ .gr-button, button { background: rgba(255, 255, 255, 0.05) !important; border: 3px solid rgba(255, 255, 255, 0.5) !important; color: white !important; } /* ------------------------- */ /* BUTTON ENHANCEMENTS */ /* ------------------------- */ .gr-button-primary, button[class*="primary"] { background: linear-gradient(135deg, #4f63e4, #7a3cff) !important; border-radius: 10px !important; border: 3px solid rgba(255, 255, 255, 0.7) !important; box-shadow: 0 4px 14px rgba(79, 99, 228, 0.4) !important; transition: 0.25s ease !important; } .gr-button-primary:hover, button[class*="primary"]:hover { transform: translateY(-3px) !important; box-shadow: 0 6px 20px rgba(79, 99, 228, 0.55) !important; border-color: rgba(255, 255, 255, 0.9) !important; } .gr-button-secondary, button[class*="secondary"] { background: rgba(255, 255, 255, 0.12) !important; border: 3px solid rgba(255, 255, 255, 0.6) !important; border-radius: 10px !important; } .gr-button-secondary:hover, button[class*="secondary"]:hover { background: rgba(255, 255, 255, 0.22) !important; border-color: rgba(255, 255, 255, 0.8) !important; } /* ------------------------- */ /* FIX MISALIGNED ELEMENTS */ /* ------------------------- */ .gr-group>* { width: 100% !important; } .upload-section .gr-markdown { margin-bottom: 8px !important; } .overflow-class { overflow: visible; } /* ---------- Upload wrapper: force size and glass style ---------- */ #upload-wrapper { width: 100% !important; /* full width of its column */ min-width: 360px !important; /* avoid collapsing on narrow screens */ max-width: 520px !important; /* adjust as needed */ display: flex !important; flex-direction: column !important; gap: 12px !important; padding: 20px !important; margin: 8px 12px !important; border-radius: 16px !important; background: transparent; /* border: 1px solid rgba(255,255,255,0.12) !important; */ backdrop-filter: blur(18px) saturate(140%) !important; -webkit-backdrop-filter: blur(18px) saturate(140%) !important; box-shadow: 0 12px 30px rgba(2, 6, 23, 0.45) inset, 0 8px 28px rgba(6, 12, 40, 0.45) !important; align-self: flex-start !important; /* keep it aligned inside row */ } /* Make the title look consistent */ #upload-wrapper .upload-title h3 { color: #e6f0ff !important; font-weight: 600 !important; margin: 0 0 6px 0 !important; } /* Make the file control visually large and centered */ #upload-wrapper .upload-card, #upload-wrapper .gr-file, #upload-wrapper input[type="file"] { width: 100% !important; min-height: 110px !important; padding: 16px !important; border-radius: 12px !important; background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02)) !important; border: 1px solid rgba(255, 255, 255, 0.06) !important; box-shadow: 0 8px 20px rgba(12, 18, 40, 0.35) !important; } /* dataset info text area - BLACK TEXT FOR VISIBILITY */ #upload-wrapper .upload-info, #upload-wrapper .gr-markdown { color: #000000 !important; background: rgba(255, 255, 255, 0.85) !important; padding: 12px !important; border-radius: 8px !important; font-size: 13px !important; } /* Make the markdown text content black */ #upload-wrapper .upload-info *, #upload-wrapper .gr-markdown *, .upload-info, .upload-info strong, .upload-info p { color: #000000 !important; } /* clear button alignment and style */ #upload-wrapper .upload-clear-btn { align-self: flex-end !important; margin-top: 6px !important; } /* if Gradio wraps the file input in an inner container */ #upload-wrapper [class*="file"], #upload-wrapper [class*="upload"] { width: 100% !important; } /* Ensure it doesn't collapse when Gradio enforces min-width elsewhere */ #upload-wrapper>* { min-width: 0 !important; } /* Optional responsive tweak: allow it to expand on larger screens */ @media (min-width: 1280px) { #upload-wrapper { max-width: 640px !important; } } /* How to Use Box - Top Right Corner */ .how-to-use-sidebar { position: fixed !important; top: 150px !important; right: 20px !important; left: auto !important; transform: none !important; width: 260px !important; z-index: 1000 !important; pointer-events: auto !important; } .how-to-use-content { background: rgba(255, 255, 255, 0.12) !important; backdrop-filter: blur(12px) saturate(160%) !important; -webkit-backdrop-filter: blur(12px) saturate(160%) !important; border-radius: 12px !important; border: 1px solid rgba(255, 255, 255, 0.25) !important; padding: 18px !important; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25) !important; transition: all 0.3s ease !important; } .how-to-use-content:hover { background: rgba(255, 255, 255, 0.18) !important; border-color: rgba(255, 255, 255, 0.4) !important; transform: translateY(-3px) !important; } .how-to-use-content h3 { color: white !important; margin: 0 0 10px 0 !important; font-size: 17px !important; font-weight: 600 !important; text-shadow: 0 0 6px rgba(255, 255, 255, 0.3) !important; } .how-to-use-content ul { list-style: none !important; padding: 0 !important; margin: 0 !important; } .how-to-use-content li { color: white !important; margin: 7px 0 !important; padding-left: 0 !important; line-height: 1.4 !important; font-size: 13px !important; opacity: 0.9 !important; } /* Main container - Full width to cover left area */ .gradio-container { margin-left: 0 !important; padding-left: 20px !important; } /* Responsive: Remove margin on smaller screens */ @media (max-width: 1200px) { .gradio-container { margin-left: 0 !important; padding-left: 0 !important; } .how-to-use-sidebar { display: none !important; } } /* Custom Dropdown Styling */ .custom-dropdown { width: 100%; } .custom-dropdown label { color: white !important; font-size: 14px; margin-bottom: 8px; display: block; } .dropdown-container { position: relative; width: 100%; } .dropdown-button { background: white; border: 1px solid rgba(255, 255, 255, 0.3); border-radius: 8px; padding: 12px 16px; cursor: pointer; display: flex; justify-content: space-between; align-items: center; color: #333; } .dropdown-button:hover { border-color: rgba(59, 130, 246, 0.5); } .dropdown-arrow { color: #666; font-size: 12px; } .dropdown-menu { display: none; position: absolute; top: 100%; left: 0; right: 0; background: white; border: 1px solid #ccc; border-radius: 8px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); max-height: 200px; overflow-y: auto; z-index: 1000; } .dropdown-item { padding: 12px 16px; cursor: pointer; color: #333; border-bottom: 1px solid #eee; } .dropdown-item:hover { background: #f0f8ff; } .dropdown-item.selected { background: #3b82f6; color: white; } .selected-columns { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 6px; } .selected-tag { background: #3b82f6; color: white; padding: 4px 8px; border-radius: 6px; font-size: 12px; display: flex; align-items: center; gap: 4px; } .selected-tag span { cursor: pointer; font-weight: bold; opacity: 0.8; } .selected-tag span:hover { opacity: 1; } /* ========================= */ /* FIX: Prevent Dropdown Text Input */ /* ========================= */ /* Make dropdown input read-only - prevent typing */ .gr-dropdown input[type="text"] { cursor: pointer !important; user-select: none !important; caret-color: transparent !important; } /* Allow clicking on the dropdown container itself */ .gr-dropdown .wrap { pointer-events: auto !important; cursor: pointer !important; } /* Ensure ALL dropdowns are clickable */ .gr-dropdown, .gr-dropdown *, .gr-dropdown button, .gr-dropdown .wrap, .gr-dropdown select { pointer-events: auto !important; cursor: pointer !important; } /* Make sure dropdown button/arrow is visible and clickable */ .gr-dropdown button, .gr-dropdown button svg, .gr-dropdown .icon, button[aria-label*="dropdown"], button[class*="dropdown"] { display: block !important; visibility: visible !important; opacity: 1 !important; pointer-events: auto !important; cursor: pointer !important; } /* Ensure Group containers don't block dropdowns */ #display-format-box, #analysis-type-box, #visualization-box { pointer-events: auto !important; } #display-format-box *, #analysis-type-box *, #visualization-box * { pointer-events: auto !important; } /* Ensure column selector appears in correct order */ .gr-checkbox-group { order: 0 !important; } /* FORCE Column Selector Labels to be BLACK - Very Specific */ [data-testid="checkbox-group"] label, [data-testid="checkbox-group"] label span, [data-testid="checkbox-group"] span, .wrap[data-testid="checkbox-group"] label, .wrap[data-testid="checkbox-group"] span, label[class*="svelte"] span, .checkbox-group label, .checkbox-group span { color: #000000 !important; -webkit-text-fill-color: #000000 !important; } /* Target any span inside checkbox labels */ input[type="checkbox"]+span, input[type="checkbox"]~span, label:has(input[type="checkbox"]) span { color: #000000 !important; -webkit-text-fill-color: #000000 !important; } /* Force all spans near checkboxes to be black */ span[class*="svelte"] { color: #000000 !important; } /* Transparent background for checkbox container */ [data-testid="checkbox-group"], [data-testid="checkbox-group"]>div { background: transparent !important; } /* Match wrap sizes for dropdowns */ div.wrap.svelte-vomtx { min-height: auto !important; height: auto !important; } div.wrap.svelte-vomtx, div.secondarywrap { padding: 8px !important; } /* Make dropdown labels white */ .gr-dropdown label, .gr-dropdown .label { color: white !important; } /* Display Format dropdown label - white text */ .gradio-container.gradio-container-4-20-0 .contain span[class*="svelte"] { color: rgb(255, 255, 255) !important; } /* =========================================================== FIX: Force white text for the Gradio block-info label =========================================================== */ span[data-testid="block-info"], .gradio-container span[data-testid="block-info"] { color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; } /* If the framework switches from to

, also cover this */ p[data-testid="block-info"] { color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; } .svelte-vomtxz.container { border: 2px solid white !important; border-radius: 8px !important; padding: 10px !important; } /* Remove ALL purple outlines and focus states */ *, *:focus, *:focus-visible, *:active, button, button:focus, button:focus-visible, button:active, input, input:focus, input:focus-visible, textarea, textarea:focus, textarea:focus-visible, select, select:focus, .gr-button, .gr-button:focus, .gr-textbox, .gr-textbox:focus, .gr-tab, .gr-tab:focus, .gr-tab:active, [role="tab"], [role="tab"]:focus, [role="tab"]:active, .floating-chat-btn:focus, .chat-close-btn:focus, .chat-popup-box *, .chat-popup-box *:focus, .chat-popup-box *:active { outline: none !important; box-shadow: none !important; border: none !important; } /* Force remove Gradio default focus styles */ .gradio-container *:focus { outline: none !important; box-shadow: none !important; } /* Remove browser default focus ring */ :focus { outline: none !important; } /* Remove any purple/blue focus indicators */ *[style*="outline"], *[style*="box-shadow"] { outline: none !important; box-shadow: none !important; }