@import "tailwindcss"; /* Base styles */ body { margin: 0; padding: 0; font-family: "Nunito Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-size: 14px; line-height: 1.6; color: #2e3438; background-color: #f6f9fc; } /* Storybook-specific styles */ .storybook-header { font-family: "Nunito Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; } /* Override link styles for Storybook design */ a { color: inherit; text-decoration: none; } /* Button reset for Storybook style */ button { font-family: inherit; border: none; cursor: pointer; background: none; } /* Input styles for controls */ input, select { font-family: inherit; } /* Storybook accent colors */ :root { --storybook-primary: #F87701; --storybook-secondary: #ff4785; --storybook-green: #37d67a; --storybook-orange: #fc521f; --storybook-yellow: #ffae00; --storybook-red: #fa5a5a; --storybook-gray-1: #f6f9fc; --storybook-gray-2: #e0e0e0; --storybook-gray-3: #999; --storybook-gray-4: #666; --storybook-gray-5: #333; --storybook-gray-6: #2b2b2b; --storybook-gray-7: #1a1a1a; } /* Gradio Dataframe CSS Variables */ :root { --gr-df-table-bg-even: #ffffff; --gr-df-table-bg-odd: #f9fafb; --gr-df-copied-cell-color: #dbeafe; --gr-df-table-border: #e5e7eb; --gr-df-table-text: #374151; --gr-df-accent: #3b82f6; --gr-df-accent-soft: #dbeafe; --gr-df-font-size: 14px; --gr-df-font-mono: ui-monospace, SFMono-Regular, monospace; --gr-df-font-sans: system-ui, -apple-system, sans-serif; --gr-df-table-radius: 8px; } /* Custom theme examples */ .purple-theme { --gr-df-accent: #7c3aed; --gr-df-accent-soft: #ede9fe; --gr-df-copied-cell-color: #ede9fe; } .green-theme { --gr-df-accent: #059669; --gr-df-accent-soft: #d1fae5; --gr-df-copied-cell-color: #d1fae5; } .orange-theme { --gr-df-accent: #ea580c; --gr-df-accent-soft: #fed7aa; --gr-df-copied-cell-color: #fed7aa; } /* Dark Mode Theme */ .dark { /* Override root CSS variables for dark mode */ --gr-df-table-bg-even: #1f2937; --gr-df-table-bg-odd: #111827; --gr-df-copied-cell-color: #374151; --gr-df-table-border: #374151; --gr-df-table-text: #f9fafb; --gr-df-accent: #60a5fa; --gr-df-accent-soft: #1e3a8a; /* Dark mode for body and base elements */ background-color: #0f172a; color: #f1f5f9; } /* Dark mode specific overrides for the interface */ .dark .bg-white { background-color: #1e293b; } .dark .bg-\[#f6f9fc\] { background-color: #0f172a; } .dark .bg-\[#f8fafc\] { background-color: #1e293b; } /* Dark mode for dataframe container background */ .dark div[class*="bg-[#f8fafc]"] { background-color: #1e293b; } .dark .rounded-lg.bg-\[#f8fafc\] { background-color: #1e293b; } .dark .rounded-xl.bg-\[#f8fafc\] { background-color: #1e293b; } /* Comprehensive dark mode overrides for all light backgrounds */ .dark div, .dark section, .dark main, .dark header, .dark footer, .dark aside, .dark nav { /* Override common light background colors */ } .dark [class*="bg-white"]:not(button):not(.btn):not([role="button"]) { background-color: #1e293b; } .dark [class*="bg-[#f6f9fc]"]:not(button):not(.btn):not([role="button"]) { background-color: #0f172a; } .dark [class*="bg-[#f8fafc]"]:not(button):not(.btn):not([role="button"]) { background-color: #1e293b; } .dark [class*="bg-[#f9fafb]"]:not(button):not(.btn):not([role="button"]) { background-color: #1e293b; } .dark [class*="bg-[#fafafa]"]:not(button):not(.btn):not([role="button"]) { background-color: #1e293b; } .dark [class*="bg-gray-50"]:not(button):not(.btn):not([role="button"]) { background-color: #1e293b; } .dark [class*="bg-gray-100"]:not(button):not(.btn):not([role="button"]) { background-color: #334155; } /* Dark mode for all text colors */ .dark [class*="text-[#2e3438]"] { color: #f1f5f9; } .dark [class*="text-[#374151]"] { color: #e2e8f0 ; } .dark [class*="text-[#64748b]"] { color: #94a3b8 ; } .dark [class*="text-[#9ca3af]"] { color: #6b7280 ; } .dark [class*="text-[#6b7280]"] { color: #9ca3af ; } /* Dark mode for all border colors */ .dark [class*="border-[#e0e0e0]"] { border-color: #475569; } .dark [class*="border-[#e5e7eb]"] { border-color: #475569; } .dark [class*="border-[#d1d5db]"] { border-color: #475569; } .dark [class*="border-[#e2e8f0]"] { border-color: #475569; } .dark .border-\[#d1d5db\] { border-color: #475569; } .dark .border-\[#e0e0e0\] { border-color: #475569; } .dark .border-\[#e2e8f0\] { border-color: #475569; } .dark .text-\[#2e3438\] { color: #f1f5f9; } .dark .text-\[#73828c\] { color: #cbd5e1; } .dark .text-\[#64748b\] { color: #94a3b8 ; } .dark .text-\[#374151\] { color: #e2e8f0 ; } .dark .text-\[#1e293b\] { color: #f8fafc ; } .dark .text-\[#9ca3af\] { color: #6b7280 ; } /* Dark mode hover states */ .dark .hover\:bg-\[#f6f9fc\]:hover { background-color: #334155; } .dark .hover\:text-\[#2e3438\]:hover { color: #f1f5f9; } .dark .hover\:border-\[#cbd5e1\]:hover { border-color: #64748b ; } /* Dark mode focus states */ .dark .focus\:ring-\[#F87701\]:focus { --tw-ring-color: #f97316 ; } .dark .focus\:border-\[#F87701\]:focus { border-color: #f97316 ; } /* Dark mode for example cards */ .dark .bg-\[#f1f5f9\] { background-color: #475569; } .dark .bg-\[#fef7f0\] { background-color: #1e3a8a ; } .dark .border-\[#F87701\] { border-color: #60a5fa ; } /* Dark mode for selected example card backgrounds - more specific selectors */ .dark .rounded-xl.border-2.bg-\[#fef7f0\] { background-color: #1e3a8a ; border-color: #60a5fa ; } .dark .rounded-xl.border-2.border-\[#F87701\] { background-color: #1e3a8a ; border-color: #60a5fa ; } /* Dark mode for example card selected state colors */ .dark .bg-\[#F87701\] { background-color: #60a5fa ; } /* Force dark mode on selected example cards using attribute selectors */ .dark div[class*="bg-[#fef7f0]"] { background-color: #1e3a8a ; } .dark div[class*="border-[#F87701]"] { border-color: #60a5fa ; } .dark div[class*="bg-[#F87701]"] { background-color: #60a5fa ; } /* Maximum specificity override for selected example cards in dark mode */ html.dark body div.space-y-2 button div.rounded-xl { background-color: #1e3a8a ; border-color: #60a5fa ; } /* Target any div with the specific orange background class in dark mode */ html.dark [class~="bg-[#fef7f0]"] { background-color: #1e3a8a ; } html.dark [class~="border-[#F87701]"] { border-color: #60a5fa ; } /* Nuclear option - override any element with these exact classes */ .dark * { --selected-bg: #1e3a8a; --selected-border: #60a5fa; } .dark .bg-\[#fef7f0\], .dark [style*="background"], .dark .rounded-xl[class*="bg-[#fef7f0]"] { background-color: var(--selected-bg) ; background: var(--selected-bg) ; } .dark .border-\[#F87701\], .dark .rounded-xl[class*="border-[#F87701]"] { border-color: var(--selected-border) ; } /* Dark mode for select dropdown */ .dark select { background-color: #1e293b; color: #f1f5f9; border-color: #475569; } .dark select option { background-color: #1e293b; color: #f1f5f9; } /* Dark mode for gradients */ .dark .bg-gradient-to-r { background: linear-gradient(to right, #1e293b, #0f172a) ; } /* Dark mode for shadows */ .dark .shadow-lg { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -2px rgba(0, 0, 0, 0.2) ; } .dark .hover\:shadow-sm:hover { box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.3) ; } /* Dark mode for code blocks and syntax highlighting */ .dark code { background-color: #374151 ; color: #f9fafb ; } .dark pre { background-color: #1f2937 ; border-color: #475569; } /* Dark mode for tables */ .dark table { background-color: #1e293b; } .dark th, .dark td { border-color: #475569; color: #f1f5f9; } .dark thead { background-color: #374151 ; } .dark tbody tr:hover { background-color: #334155; } /* Dark mode for mobile overlay */ .dark .bg-black { background-color: rgba(0, 0, 0, 0.8) ; } /* Additional dark mode text color fixes */ .dark h1, .dark h2, .dark h3, .dark h4, .dark h5, .dark h6 { color: #f1f5f9; } .dark p { color: #cbd5e1; } .dark label { color: #f1f5f9; } /* Dark mode for specific text color classes that might be missed */ .dark .text-gray-600 { color: #94a3b8 ; } .dark .text-gray-700 { color: #cbd5e1; } .dark .text-gray-800 { color: #e2e8f0 ; } .dark .text-gray-900 { color: #f1f5f9; } /* Dark mode for any remaining light backgrounds */ .dark .bg-gray-50 { background-color: #1e293b; } .dark .bg-gray-100 { background-color: #334155; } .dark .bg-gray-200 { background-color: #475569; } /* Dark mode for input placeholders */ .dark input::placeholder { color: #94a3b8 ; } .dark textarea::placeholder { color: #94a3b8 ; } /* Dark mode for any white text that should be dark in light mode but light in dark mode */ .dark .text-white { color: #f1f5f9; } /* Ensure dataframe component inherits dark theme properly */ .dark [data-testid="dataframe"] { background-color: #1e293b; color: #f1f5f9; } /* Dark mode for any remaining border colors */ .dark .border-gray-200 { border-color: #475569; } .dark .border-gray-300 { border-color: #64748b ; } /* Dark mode for button text that might not be covered */ .dark button { color: inherit ; } /* Dark mode for links */ .dark a { color: #60a5fa ; } .dark a:hover { color: #93c5fd ; } /* Force dark mode on all text elements that might be using default colors */ .dark * { border-color: #475569; } /* Specific overrides for components that might not inherit properly */ .dark .text-current { color: #f1f5f9; } /* Dark mode for any remaining light text colors */ .dark .text-black { color: #f1f5f9; } /* Dark mode for the dataframe component wrapper */ .dark div[class*="dataframe"] { background-color: #1e293b; color: #f1f5f9; } /* Dark mode for any input elements */ .dark input { background-color: #1e293b; color: #f1f5f9; border-color: #475569; } /* Dark mode for checkboxes and form controls */ .dark input[type="checkbox"] { background-color: #374151 ; border-color: #6b7280 ; } .dark input[type="checkbox"]:checked { background-color: #60a5fa ; border-color: #60a5fa ; } /* Page titles */ .page-title { @apply text-lg md:text-xl lg:text-2xl font-bold text-[#2e3438] mb-3 md:mb-4 tracking-tight; } /* Section titles */ .section-title { @apply text-lg font-bold text-[#2e3438] mb-4; } /* Subsection titles */ .subsection-title { @apply text-base font-bold text-[#2e3438] mb-2; } /* Content cards */ .content-card { @apply bg-white rounded-xl md:rounded-2xl shadow-lg border border-[#e0e0e0] p-4 sm:p-6 md:p-6 lg:p-8 xl:p-12; } /* Navigation buttons */ .nav-button { @apply flex items-center py-1 px-2 text-xs mb-1 font-medium transition-all duration-200 rounded-sm; } .nav-button-active { @apply border-[#F87701] bg-[#fef7f0]; } .nav-button-inactive { @apply text-[#73828c] hover:text-[#2e3438] hover:bg-[#f6f9fc]; } .example-card { @apply flex items-center py-1 px-2 text-xs font-medium transition-all duration-200 rounded-sm; } /* Example card containers */ .example-card-active { @apply border-[#F87701] bg-[#fef7f0]; } .example-card-inactive { @apply border-[#e2e8f0] bg-white; } /* Example card icons */ .example-icon { @apply w-6 h-6 rounded-lg flex items-center justify-center mr-2 transition-colors duration-200; } .example-icon-active { @apply bg-[#F87701] text-white; } .example-icon-inactive { @apply bg-[#f1f5f9] text-[#64748b]; } /* Text styles */ .description-text { @apply text-sm md:text-base lg:text-lg text-[#73828c] leading-relaxed font-medium; } .feature-text { @apply text-sm text-[#64748b] leading-relaxed font-medium; } /* Event sections */ .event-section { @apply border border-[#e2e8f0] rounded-xl p-8 bg-gradient-to-r from-[#f8fafc] to-white; } /* Main layout containers */ .main-container { @apply max-w-full md:max-w-3xl lg:max-w-5xl xl:max-w-6xl mx-auto ; } .page-wrapper { @apply flex-1 bg-[#f6f9fc] p-4 sm:p-6 md:p-6 lg:p-8 xl:p-12 overflow-auto; } /* Dark mode overrides for new classes */ .dark .page-title, .dark .section-title, .dark .subsection-title { color: #f1f5f9; } .dark .content-card { background-color: #1e293b; border-color: #475569; } .dark .nav-button-active { background-color: #1e3a8a; } .dark .nav-button-inactive { color: #cbd5e1; } .dark .nav-button-inactive:hover { color: #f1f5f9; background-color: #334155; } .dark .example-card-active { background-color: #1e3a8a; } .dark .example-card-inactive { background-color: #1e293b ; } .dark .example-card-inactive:hover { background-color: #334155; } .dark .example-icon-active { background-color: #60a5fa; } .dark .description-text, .dark .feature-text { color: #cbd5e1; } .dark .event-section { background: linear-gradient(to right, #1e293b, #0f172a); border-color: #475569; } div[role*="slider"] { border-top: 1px solid #d1d5db; } /* Resizable controls panel styling */ .drag-handle { user-select: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; } .drag-handle:hover { background-color: #f9fafb; } .drag-handle.dragging { background-color: #f3f4f6; cursor: ns-resize; } /* Dark mode for drag handle */ .dark .drag-handle:hover { background-color: #374151; } .dark .drag-handle.dragging { background-color: #4b5563; } /* Prevent text selection during drag */ body.dragging { user-select: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; cursor: ns-resize; }