rinogeek's picture
Update for deployment
62fe6d4
@import "tailwindcss";
@import "tw-animate-css";
@custom-variant dark (&:where(.dark, .dark *));
@theme inline {
--radius-sm: calc(var(--radius) - 4px);
--radius-md: calc(var(--radius) - 2px);
--radius-lg: var(--radius);
--radius-xl: calc(var(--radius) + 4px);
--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-border: var(--border);
--color-input: var(--input);
--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);
--color-sidebar: var(--sidebar);
--color-sidebar-foreground: var(--sidebar-foreground);
--color-sidebar-primary: var(--sidebar-primary);
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
--color-sidebar-accent: var(--sidebar-accent);
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
--color-sidebar-border: var(--sidebar-border);
--color-sidebar-ring: var(--sidebar-ring);
}
:root {
--radius: 1rem;
/* AfriDataHub - Palette Vert / Jaune / Blanc */
--background: oklch(0.985 0.005 140);
--foreground: oklch(0.18 0.04 150);
--card: oklch(1 0 0);
--card-foreground: oklch(0.18 0.04 150);
--popover: oklch(1 0 0);
--popover-foreground: oklch(0.18 0.04 150);
--primary: oklch(0.52 0.17 155);
/* Rich Emerald Green */
--primary-foreground: oklch(0.99 0.005 140);
--secondary: oklch(0.78 0.16 85);
/* Warm Golden Yellow */
--secondary-foreground: oklch(0.2 0.04 85);
--muted: oklch(0.94 0.015 140);
--muted-foreground: oklch(0.45 0.04 150);
--accent: oklch(0.75 0.14 140);
/* Fresh Lime Green */
--accent-foreground: oklch(0.18 0.04 150);
--destructive: oklch(0.6 0.2 25);
--border: oklch(0.91 0.02 140);
--input: oklch(0.91 0.02 140);
--ring: oklch(0.52 0.17 155);
--glass-bg: rgba(255, 255, 255, 0.75);
--glass-border: rgba(34, 120, 60, 0.12);
--glass-shadow: 0 8px 32px 0 rgba(34, 120, 60, 0.08);
}
.dark {
--background: oklch(0.14 0.03 155);
--foreground: oklch(0.95 0.01 140);
--card: oklch(0.18 0.035 155);
--card-foreground: oklch(0.95 0.01 140);
--popover: oklch(0.18 0.035 155);
--popover-foreground: oklch(0.95 0.01 140);
--primary: oklch(0.62 0.17 155);
--primary-foreground: oklch(0.14 0.03 155);
--secondary: oklch(0.8 0.15 85);
--secondary-foreground: oklch(0.14 0.03 155);
--muted: oklch(0.22 0.04 155);
--muted-foreground: oklch(0.7 0.02 140);
--accent: oklch(0.5 0.12 140);
--accent-foreground: oklch(0.95 0.01 140);
--destructive: oklch(0.5 0.2 25);
--border: oklch(0.26 0.04 155);
--input: oklch(0.26 0.04 155);
--ring: oklch(0.62 0.17 155);
--glass-bg: rgba(10, 30, 15, 0.65);
--glass-border: rgba(120, 200, 100, 0.12);
--glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4);
}
@layer utilities {
.glass {
background: var(--glass-bg);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border: 1px solid var(--glass-border);
box-shadow: var(--glass-shadow);
}
.text-gradient {
background: linear-gradient(135deg, var(--primary), var(--secondary));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.bg-mesh {
background-color: var(--background);
background-image:
radial-gradient(at 0% 0%, oklch(0.52 0.17 155 / 0.12) 0px, transparent 50%),
radial-gradient(at 100% 0%, oklch(0.78 0.16 85 / 0.12) 0px, transparent 50%),
radial-gradient(at 100% 100%, oklch(0.75 0.14 140 / 0.08) 0px, transparent 50%),
radial-gradient(at 0% 100%, oklch(0.52 0.17 155 / 0.08) 0px, transparent 50%);
}
.animate-float {
animation: float 6s ease-in-out infinite;
}
.shadow-premium {
box-shadow: 0 20px 50px -12px rgba(0, 0, 0, 0.1), 0 10px 20px -10px rgba(0, 0, 0, 0.05);
}
.hover-lift {
transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s ease;
}
.hover-lift:hover {
transform: translateY(-8px) scale(1.02);
box-shadow: 0 30px 60px -12px rgba(0, 0, 0, 0.15);
}
@keyframes float {
0% {
transform: translateY(0px);
}
50% {
transform: translateY(-10px);
}
100% {
transform: translateY(0px);
}
}
}
@layer base {
* {
@apply border-border outline-ring/50;
}
body {
@apply bg-background text-foreground;
}
}
/* Prose styles for Markdown parsing */
.prose {
max-width: none;
color: inherit;
}
.prose p {
margin-bottom: 1.25em;
}
.prose strong {
font-weight: 700;
color: inherit;
}
.prose ul {
list-style-type: disc;
padding-left: 1.625em;
margin-bottom: 1.25em;
}
.prose li {
margin-bottom: 0.5em;
}
.prose h1,
.prose h2,
.prose h3 {
font-weight: 700;
margin-top: 1.5em;
margin-bottom: 0.75em;
}
.prose-lg {
font-size: 1.125rem;
line-height: 1.75;
}
.prose-green {
--tw-prose-bullets: var(--color-primary);
}