Spaces:
Runtime error
Runtime error
| @custom-variant dark (&:is(.dark *)); | |
| :root { | |
| --font-size: 16px; | |
| --background: #f8fafc; /* Slate 50 (Light) */ | |
| --foreground: #0f172a; /* Slate 900 */ | |
| --card: #ffffff; /* White card */ | |
| --card-foreground: #0f172a; | |
| --popover: #ffffff; | |
| --popover-foreground: #0f172a; | |
| --primary: #4f46e5; /* Indigo 600 */ | |
| --primary-foreground: #ffffff; | |
| --secondary: #f1f5f9; /* Slate 100 */ | |
| --secondary-foreground: #0f172a; | |
| --muted: #f1f5f9; | |
| --muted-foreground: #64748b; /* Slate 500 */ | |
| --accent: #e2e8f0; /* Slate 200 */ | |
| --accent-foreground: #0f172a; | |
| --destructive: #e11d48; /* Rose 600 */ | |
| --destructive-foreground: #ffffff; | |
| --border: #e2e8f0; /* Slate 200 */ | |
| --input: #ffffff; | |
| --input-background: #ffffff; | |
| --switch-background: #cbd5e1; | |
| --font-weight-medium: 500; | |
| --font-weight-normal: 400; | |
| --ring: #4f46e5; | |
| --chart-1: #4f46e5; /* Indigo */ | |
| --chart-2: #10b981; /* Emerald */ | |
| --chart-3: #f59e0b; /* Amber */ | |
| --chart-4: #ec4899; /* Pink */ | |
| --chart-5: #06b6d4; /* Cyan */ | |
| --radius: 0.75rem; | |
| } | |
| .dark { | |
| --background: #0b0f19; /* Deep navy (Dark) */ | |
| --foreground: #f8fafc; /* Slate 50 */ | |
| --card: #151d30; /* Dark slate card */ | |
| --card-foreground: #f8fafc; | |
| --popover: #151d30; | |
| --popover-foreground: #f8fafc; | |
| --primary: #6366f1; /* Neon Indigo */ | |
| --primary-foreground: #ffffff; | |
| --secondary: #1e293b; /* Slate 800 */ | |
| --secondary-foreground: #f8fafc; | |
| --muted: #1e293b; | |
| --muted-foreground: #94a3b8; /* Slate 400 */ | |
| --accent: #312e81; /* Deep Indigo accent */ | |
| --accent-foreground: #f8fafc; | |
| --destructive: #f43f5e; /* Rose 500 */ | |
| --destructive-foreground: #ffffff; | |
| --border: rgba(255, 255, 255, 0.08); | |
| --input: #1e293b; | |
| --input-background: #0f172a; | |
| --switch-background: #334155; | |
| --ring: #6366f1; | |
| --chart-1: #6366f1; | |
| --chart-2: #10b981; | |
| --chart-3: #f59e0b; | |
| --chart-4: #ec4899; | |
| --chart-5: #06b6d4; | |
| } | |
| @theme inline { | |
| --color-background: var(--background); | |
| --color-foreground: var(--foreground); | |
| --color-card: var(--card); | |
| --color-card-foreground: var(--card-foreground); | |
| --color-popover: var(--popover); | |
| --color-popover-foreground: var(--popover-foreground); | |
| --color-primary: var(--primary); | |
| --color-primary-foreground: var(--primary-foreground); | |
| --color-secondary: var(--secondary); | |
| --color-secondary-foreground: var(--secondary-foreground); | |
| --color-muted: var(--muted); | |
| --color-muted-foreground: var(--muted-foreground); | |
| --color-accent: var(--accent); | |
| --color-accent-foreground: var(--accent-foreground); | |
| --color-destructive: var(--destructive); | |
| --color-destructive-foreground: var(--destructive-foreground); | |
| --color-border: var(--border); | |
| --color-input: var(--input); | |
| --color-input-background: var(--input-background); | |
| --color-switch-background: var(--switch-background); | |
| --color-ring: var(--ring); | |
| --color-chart-1: var(--chart-1); | |
| --color-chart-2: var(--chart-2); | |
| --color-chart-3: var(--chart-3); | |
| --color-chart-4: var(--chart-4); | |
| --color-chart-5: var(--chart-5); | |
| --radius-sm: calc(var(--radius) - 4px); | |
| --radius-md: calc(var(--radius) - 2px); | |
| --radius-lg: var(--radius); | |
| --radius-xl: calc(var(--radius) + 4px); | |
| } | |
| @layer base { | |
| * { | |
| @apply border-border outline-ring/50; | |
| } | |
| body { | |
| @apply bg-background text-foreground transition-colors duration-300; | |
| } | |
| html { | |
| font-size: var(--font-size); | |
| } | |
| h1 { | |
| font-size: var(--text-2xl); | |
| font-weight: var(--font-weight-medium); | |
| line-height: 1.5; | |
| } | |
| h2 { | |
| font-size: var(--text-xl); | |
| font-weight: var(--font-weight-medium); | |
| line-height: 1.5; | |
| } | |
| h3 { | |
| font-size: var(--text-lg); | |
| font-weight: var(--font-weight-medium); | |
| line-height: 1.5; | |
| } | |
| h4 { | |
| font-size: var(--text-base); | |
| font-weight: var(--font-weight-medium); | |
| line-height: 1.5; | |
| } | |
| label { | |
| font-size: var(--text-base); | |
| font-weight: var(--font-weight-medium); | |
| line-height: 1.5; | |
| } | |
| button { | |
| font-size: var(--text-base); | |
| font-weight: var(--font-weight-medium); | |
| line-height: 1.5; | |
| } | |
| input { | |
| font-size: var(--text-base); | |
| font-weight: var(--font-weight-normal); | |
| line-height: 1.5; | |
| } | |
| } | |
| /* Accessibility overrides for Tailwind hardcoded text, borders, and backdrops in Light Mode */ | |
| html:not(.dark) { | |
| .text-slate-100 { color: #0f172a ; } | |
| .text-slate-200 { color: #1e293b ; } | |
| .text-slate-300 { color: #334155 ; } | |
| .text-slate-400 { color: #475569 ; } | |
| .text-slate-500 { color: #64748b ; } | |
| .text-slate-600 { color: #334155 ; } | |
| .text-slate-700 { color: #1e293b ; } | |
| /* Map glowing neon colors (designed for dark backgrounds) to high-contrast equivalents */ | |
| .text-indigo-400 { color: #4f46e5 ; } /* indigo-600 */ | |
| .text-indigo-300 { color: #3730a3 ; } /* indigo-800 */ | |
| .text-indigo-200 { color: #3730a3 ; } | |
| .text-rose-400 { color: #e11d48 ; } /* rose-600 */ | |
| .text-rose-200 { color: #9f1239 ; } /* rose-800 */ | |
| .text-orange-400 { color: #ea580c ; } /* orange-600 */ | |
| .text-amber-400 { color: #d97706 ; } /* amber-600 */ | |
| .text-emerald-400 { color: #059669 ; } /* emerald-600 */ | |
| .text-emerald-200 { color: #065f46 ; } | |
| .text-cyan-400 { color: #0891b2 ; } /* cyan-600 */ | |
| .text-purple-400 { color: #7c3aed ; } /* purple-600 */ | |
| /* Map dark-theme background overlays to readable light-mode values */ | |
| .bg-slate-900\/30 { background-color: rgba(15, 23, 42, 0.04) ; } | |
| .bg-slate-950\/20 { background-color: rgba(15, 23, 42, 0.03) ; } | |
| .bg-slate-950\/40 { background-color: rgba(15, 23, 42, 0.05) ; } | |
| .bg-slate-900\/40 { background-color: rgba(15, 23, 42, 0.05) ; } | |
| .bg-slate-900\/60 { background-color: rgba(15, 23, 42, 0.04) ; } | |
| .bg-slate-900\/10 { background-color: rgba(15, 23, 42, 0.05) ; } | |
| .bg-card\/40 { background-color: rgba(255, 255, 255, 0.8) ; } | |
| .bg-card\/60 { background-color: rgba(255, 255, 255, 0.8) ; } | |
| /* Bypassing invisible borders on light backgrounds */ | |
| .border-white\/5 { border-color: rgba(15, 23, 42, 0.08) ; } | |
| .border-indigo-500\/20 { border-color: rgba(79, 70, 229, 0.15) ; } | |
| .border-rose-500\/20 { border-color: rgba(225, 29, 72, 0.15) ; } | |
| .border-emerald-500\/20 { border-color: rgba(16, 185, 129, 0.15) ; } | |
| /* Make sure ticking chart tooltips are readable */ | |
| .recharts-tooltip-wrapper { | |
| & > div { | |
| background-color: #ffffff ; | |
| border: 1px solid rgba(0, 0, 0, 0.1) ; | |
| color: #0f172a ; | |
| } | |
| } | |
| } | |