All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 1m52s
874 lines
24 KiB
CSS
874 lines
24 KiB
CSS
@import "tailwindcss";
|
|
@import "tw-animate-css";
|
|
@import "react-day-picker/style.css";
|
|
|
|
@custom-variant dark (&:is(.dark *));
|
|
|
|
:root {
|
|
/* Background fintech ultra-moderne avec dégradé vibrant */
|
|
--background: oklch(0.98 0.008 280);
|
|
--foreground: oklch(0.1 0.015 280);
|
|
|
|
/* Cards avec glassmorphism très prononcé */
|
|
--card: oklch(1 0 0 / 0.5);
|
|
--card-foreground: oklch(0.1 0.015 280);
|
|
--card-hover: oklch(1 0 0 / 0.65);
|
|
|
|
/* Popover avec backdrop blur très fort */
|
|
--popover: oklch(1 0 0 / 0.95);
|
|
--popover-foreground: oklch(0.1 0.015 280);
|
|
|
|
/* Primary: Bleu/violet fintech très vibrant avec gradient */
|
|
--primary: oklch(0.6 0.25 270);
|
|
--primary-foreground: oklch(0.99 0 0);
|
|
--primary-gradient: linear-gradient(
|
|
135deg,
|
|
oklch(0.6 0.25 270) 0%,
|
|
oklch(0.65 0.22 300) 50%,
|
|
oklch(0.62 0.24 250) 100%
|
|
);
|
|
--primary-light: oklch(0.7 0.2 270);
|
|
|
|
/* Secondary avec teinte subtile */
|
|
--secondary: oklch(0.97 0.008 280);
|
|
--secondary-foreground: oklch(0.25 0.015 280);
|
|
|
|
/* Muted plus doux */
|
|
--muted: oklch(0.96 0.006 280);
|
|
--muted-foreground: oklch(0.5 0.012 280);
|
|
|
|
/* Accent avec couleur très vibrante */
|
|
--accent: oklch(0.95 0.015 260);
|
|
--accent-foreground: oklch(0.6 0.25 270);
|
|
|
|
/* Destructive moderne */
|
|
--destructive: oklch(0.6 0.26 25);
|
|
--destructive-foreground: oklch(0.99 0 0);
|
|
|
|
/* Bordures fines et subtiles */
|
|
--border: oklch(0.9 0.008 280 / 0.4);
|
|
--input: oklch(0.97 0.006 280);
|
|
--ring: oklch(0.6 0.25 270 / 0.5);
|
|
|
|
/* Chart colors très vibrantes */
|
|
--chart-1: oklch(0.65 0.25 270);
|
|
--chart-2: oklch(0.7 0.22 180);
|
|
--chart-3: oklch(0.75 0.2 120);
|
|
--chart-4: oklch(0.7 0.25 320);
|
|
--chart-5: oklch(0.65 0.22 40);
|
|
|
|
/* Success et Warning pour fintech */
|
|
--success: oklch(0.68 0.2 150);
|
|
--success-foreground: oklch(0.99 0 0);
|
|
--warning: oklch(0.78 0.2 80);
|
|
--warning-foreground: oklch(0.1 0.015 280);
|
|
|
|
--radius: 1.25rem;
|
|
|
|
/* Sidebar moderne avec glassmorphism très prononcé */
|
|
--sidebar: oklch(1 0 0 / 0.5);
|
|
--sidebar-foreground: oklch(0.2 0.015 280);
|
|
--sidebar-primary: oklch(0.6 0.25 270);
|
|
--sidebar-primary-foreground: oklch(0.99 0 0);
|
|
--sidebar-accent: oklch(0.96 0.015 260);
|
|
--sidebar-accent-foreground: oklch(0.25 0.015 280);
|
|
--sidebar-border: oklch(0.9 0.008 280 / 0.3);
|
|
--sidebar-ring: oklch(0.6 0.25 270 / 0.4);
|
|
}
|
|
|
|
.dark {
|
|
/* Background sombre fintech avec dégradé vibrant */
|
|
--background: oklch(0.1 0.015 280);
|
|
--foreground: oklch(0.97 0.005 280);
|
|
|
|
/* Cards avec effet glassmorphism sombre très prononcé */
|
|
--card: oklch(0.15 0.015 280 / 0.5);
|
|
--card-foreground: oklch(0.97 0.005 280);
|
|
--card-hover: oklch(0.18 0.015 280 / 0.65);
|
|
|
|
/* Popover avec backdrop blur très fort */
|
|
--popover: oklch(0.15 0.015 280 / 0.95);
|
|
--popover-foreground: oklch(0.97 0.005 280);
|
|
|
|
/* Primary: Bleu/violet très brillant pour dark mode */
|
|
--primary: oklch(0.72 0.28 270);
|
|
--primary-foreground: oklch(0.1 0.015 280);
|
|
--primary-gradient: linear-gradient(
|
|
135deg,
|
|
oklch(0.72 0.28 270) 0%,
|
|
oklch(0.75 0.25 300) 50%,
|
|
oklch(0.73 0.27 250) 100%
|
|
);
|
|
--primary-light: oklch(0.78 0.23 270);
|
|
|
|
/* Secondary avec plus de contraste */
|
|
--secondary: oklch(0.22 0.015 280);
|
|
--secondary-foreground: oklch(0.95 0.005 280);
|
|
|
|
/* Muted plus visible */
|
|
--muted: oklch(0.22 0.015 280);
|
|
--muted-foreground: oklch(0.7 0.012 280);
|
|
|
|
/* Accent très vibrant */
|
|
--accent: oklch(0.26 0.02 260);
|
|
--accent-foreground: oklch(0.72 0.28 270);
|
|
|
|
/* Destructive moderne */
|
|
--destructive: oklch(0.68 0.27 25);
|
|
--destructive-foreground: oklch(0.97 0 0);
|
|
|
|
/* Bordures subtiles */
|
|
--border: oklch(0.25 0.015 280 / 0.4);
|
|
--input: oklch(0.22 0.015 280);
|
|
--ring: oklch(0.72 0.28 270 / 0.6);
|
|
|
|
/* Chart colors très vibrantes pour dark */
|
|
--chart-1: oklch(0.75 0.27 270);
|
|
--chart-2: oklch(0.8 0.25 180);
|
|
--chart-3: oklch(0.85 0.23 120);
|
|
--chart-4: oklch(0.8 0.27 320);
|
|
--chart-5: oklch(0.75 0.25 40);
|
|
|
|
/* Success et Warning pour fintech dark */
|
|
--success: oklch(0.73 0.22 150);
|
|
--success-foreground: oklch(0.1 0.015 280);
|
|
--warning: oklch(0.8 0.22 80);
|
|
--warning-foreground: oklch(0.1 0.015 280);
|
|
|
|
/* Sidebar dark moderne avec glassmorphism très prononcé */
|
|
--sidebar: oklch(0.12 0.015 280 / 0.5);
|
|
--sidebar-foreground: oklch(0.95 0.005 280);
|
|
--sidebar-primary: oklch(0.72 0.28 270);
|
|
--sidebar-primary-foreground: oklch(0.1 0.015 280);
|
|
--sidebar-accent: oklch(0.26 0.02 260);
|
|
--sidebar-accent-foreground: oklch(0.95 0.005 280);
|
|
--sidebar-border: oklch(0.25 0.015 280 / 0.3);
|
|
--sidebar-ring: oklch(0.72 0.28 270 / 0.5);
|
|
}
|
|
|
|
@theme inline {
|
|
--font-sans: "Geist", "Geist Fallback";
|
|
--font-mono: "Geist Mono", "Geist Mono Fallback";
|
|
--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-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);
|
|
--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);
|
|
}
|
|
|
|
@layer base {
|
|
* {
|
|
@apply border-border outline-ring/50;
|
|
}
|
|
body {
|
|
@apply bg-background text-foreground;
|
|
font-feature-settings:
|
|
"rlig" 1,
|
|
"calt" 1;
|
|
letter-spacing: -0.01em;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
|
|
h1,
|
|
h2,
|
|
h3,
|
|
h4,
|
|
h5,
|
|
h6 {
|
|
letter-spacing: -0.02em;
|
|
font-weight: 700;
|
|
}
|
|
|
|
p {
|
|
letter-spacing: -0.005em;
|
|
}
|
|
|
|
/* Animations fintech modernes et fluides */
|
|
@keyframes fade-in {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(8px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
@keyframes slide-in {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateX(-12px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateX(0);
|
|
}
|
|
}
|
|
|
|
@keyframes scale-in {
|
|
from {
|
|
opacity: 0;
|
|
transform: scale(0.96);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: scale(1);
|
|
}
|
|
}
|
|
|
|
@keyframes shimmer {
|
|
0% {
|
|
background-position: -1000px 0;
|
|
}
|
|
100% {
|
|
background-position: 1000px 0;
|
|
}
|
|
}
|
|
|
|
@keyframes gradient-shift {
|
|
0%,
|
|
100% {
|
|
background-position: 0% 50%;
|
|
}
|
|
50% {
|
|
background-position: 100% 50%;
|
|
}
|
|
}
|
|
|
|
/* Smooth scrolling */
|
|
html {
|
|
scroll-behavior: smooth;
|
|
}
|
|
|
|
/* Transitions globales désactivées */
|
|
* {
|
|
transition: none !important;
|
|
}
|
|
|
|
/* Désactiver COMPLÈTEMENT toutes les animations pour les popovers et selects - APPROCHE AGRESSIVE */
|
|
[data-slot="popover-content"],
|
|
[data-slot="select-content"],
|
|
[data-slot="dropdown-menu-content"],
|
|
[data-slot="popover-content"] *,
|
|
[data-slot="select-content"] *,
|
|
[data-slot="dropdown-menu-content"] *,
|
|
[data-radix-popper-content-wrapper],
|
|
[data-radix-select-content],
|
|
[data-radix-dropdown-menu-content] {
|
|
animation: none !important;
|
|
transition: none !important;
|
|
/* Ne pas toucher au transform car il est utilisé pour le positionnement */
|
|
opacity: 1 !important;
|
|
will-change: auto !important;
|
|
}
|
|
|
|
/* Désactiver TOUTES les classes Tailwind d'animation - sélecteurs ultra-spécifiques */
|
|
[data-slot="popover-content"].animate-in,
|
|
[data-slot="select-content"].animate-in,
|
|
[data-slot="dropdown-menu-content"].animate-in,
|
|
[data-slot="popover-content"].animate-out,
|
|
[data-slot="select-content"].animate-out,
|
|
[data-slot="dropdown-menu-content"].animate-out,
|
|
[data-slot="popover-content"][class*="fade"],
|
|
[data-slot="select-content"][class*="fade"],
|
|
[data-slot="dropdown-menu-content"][class*="fade"],
|
|
[data-slot="popover-content"][class*="zoom"],
|
|
[data-slot="select-content"][class*="zoom"],
|
|
[data-slot="dropdown-menu-content"][class*="zoom"],
|
|
[data-slot="popover-content"][class*="slide"],
|
|
[data-slot="select-content"][class*="slide"],
|
|
[data-slot="dropdown-menu-content"][class*="slide"],
|
|
[data-slot="popover-content"][class*="animate"],
|
|
[data-slot="select-content"][class*="animate"],
|
|
[data-slot="dropdown-menu-content"][class*="animate"] {
|
|
animation: none !important;
|
|
transition: none !important;
|
|
/* Ne pas toucher au transform car il est utilisé pour le positionnement */
|
|
opacity: 1 !important;
|
|
will-change: auto !important;
|
|
}
|
|
|
|
/* Override pour tous les états data-state */
|
|
[data-slot="popover-content"][data-state="open"],
|
|
[data-slot="popover-content"][data-state="closed"],
|
|
[data-slot="select-content"][data-state="open"],
|
|
[data-slot="select-content"][data-state="closed"],
|
|
[data-slot="dropdown-menu-content"][data-state="open"],
|
|
[data-slot="dropdown-menu-content"][data-state="closed"] {
|
|
animation: none !important;
|
|
transition: none !important;
|
|
/* Ne pas toucher au transform car il est utilisé pour le positionnement */
|
|
opacity: 1 !important;
|
|
}
|
|
|
|
/* Glassmorphism effect très prononcé */
|
|
.glass {
|
|
background: var(--card);
|
|
backdrop-filter: blur(40px) saturate(200%);
|
|
-webkit-backdrop-filter: blur(40px) saturate(200%);
|
|
border: 1px solid var(--border);
|
|
box-shadow:
|
|
0 8px 32px -8px color-mix(in srgb, var(--primary) 10%, transparent),
|
|
inset 0 1px 0 0 color-mix(in srgb, white 20%, transparent);
|
|
}
|
|
|
|
/* Gradient text effect */
|
|
.gradient-text {
|
|
background: var(--primary-gradient);
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
font-weight: 700;
|
|
}
|
|
|
|
/* Card hover effect désactivé */
|
|
.card-hover {
|
|
position: relative;
|
|
}
|
|
|
|
.card-hover::before {
|
|
display: none;
|
|
}
|
|
|
|
/* Background fintech moderne avec dégradés animés et formes abstraites */
|
|
.page-background {
|
|
position: relative;
|
|
background: linear-gradient(
|
|
135deg,
|
|
oklch(0.98 0.01 280) 0%,
|
|
oklch(0.97 0.012 270) 50%,
|
|
oklch(0.98 0.01 290) 100%
|
|
);
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* Fonds personnalisables */
|
|
.page-background.bg-default {
|
|
background: linear-gradient(
|
|
135deg,
|
|
oklch(0.98 0.01 280) 0%,
|
|
oklch(0.97 0.012 270) 50%,
|
|
oklch(0.98 0.01 290) 100%
|
|
);
|
|
}
|
|
|
|
.page-background.bg-gradient-blue {
|
|
background: linear-gradient(135deg, #e0f2fe 0%, #bae6fd 50%, #7dd3fc 100%);
|
|
}
|
|
|
|
.page-background.bg-gradient-purple {
|
|
background: linear-gradient(135deg, #f3e8ff 0%, #e9d5ff 50%, #d8b4fe 100%);
|
|
}
|
|
|
|
.page-background.bg-gradient-green {
|
|
background: linear-gradient(135deg, #dcfce7 0%, #bbf7d0 50%, #86efac 100%);
|
|
}
|
|
|
|
.page-background.bg-gradient-orange {
|
|
background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 50%, #fed7aa 100%);
|
|
}
|
|
|
|
.page-background.bg-solid-light {
|
|
background: #ffffff;
|
|
}
|
|
|
|
.page-background.bg-solid-dark {
|
|
background: #0f172a !important;
|
|
}
|
|
|
|
.page-background.bg-custom-image {
|
|
background-image: var(--custom-background-image);
|
|
background-size: cover;
|
|
background-position: center;
|
|
background-repeat: no-repeat;
|
|
background-attachment: fixed;
|
|
}
|
|
|
|
.page-background.bg-custom-image::before,
|
|
.page-background.bg-solid-light::before,
|
|
.page-background.bg-solid-dark::before {
|
|
display: none;
|
|
}
|
|
|
|
.page-background::before {
|
|
content: "";
|
|
position: fixed;
|
|
top: -50%;
|
|
left: -50%;
|
|
right: -50%;
|
|
bottom: -50%;
|
|
z-index: 0;
|
|
background:
|
|
/* Formes abstraites circulaires */
|
|
radial-gradient(
|
|
circle 800px at 10% 20%,
|
|
color-mix(in srgb, var(--primary) 15%, transparent) 0%,
|
|
transparent 50%
|
|
),
|
|
radial-gradient(
|
|
circle 600px at 90% 80%,
|
|
color-mix(in srgb, var(--chart-2) 12%, transparent) 0%,
|
|
transparent 50%
|
|
),
|
|
radial-gradient(
|
|
circle 500px at 50% 50%,
|
|
color-mix(in srgb, var(--chart-3) 10%, transparent) 0%,
|
|
transparent 60%
|
|
),
|
|
radial-gradient(
|
|
circle 400px at 20% 70%,
|
|
color-mix(in srgb, var(--chart-4) 8%, transparent) 0%,
|
|
transparent 65%
|
|
),
|
|
radial-gradient(
|
|
circle 300px at 80% 30%,
|
|
color-mix(in srgb, var(--primary-light) 6%, transparent) 0%,
|
|
transparent 70%
|
|
);
|
|
background-size: 200% 200%;
|
|
pointer-events: none;
|
|
opacity: 1;
|
|
}
|
|
|
|
.dark .page-background.bg-default {
|
|
background: linear-gradient(
|
|
135deg,
|
|
oklch(0.1 0.015 280) 0%,
|
|
oklch(0.11 0.018 270) 50%,
|
|
oklch(0.1 0.015 290) 100%
|
|
);
|
|
}
|
|
|
|
.dark .page-background.bg-gradient-blue {
|
|
background: linear-gradient(135deg, #0c4a6e 0%, #075985 50%, #0369a1 100%);
|
|
}
|
|
|
|
.dark .page-background.bg-gradient-purple {
|
|
background: linear-gradient(135deg, #581c87 0%, #6b21a8 50%, #7c3aed 100%);
|
|
}
|
|
|
|
.dark .page-background.bg-gradient-green {
|
|
background: linear-gradient(135deg, #14532d 0%, #166534 50%, #16a34a 100%);
|
|
}
|
|
|
|
.dark .page-background.bg-gradient-orange {
|
|
background: linear-gradient(135deg, #7c2d12 0%, #9a3412 50%, #c2410c 100%);
|
|
}
|
|
|
|
.dark .page-background.bg-solid-light {
|
|
background: #f8fafc;
|
|
}
|
|
|
|
.dark .page-background.bg-solid-dark {
|
|
background: #0f172a !important;
|
|
}
|
|
|
|
.dark .page-background::before {
|
|
background:
|
|
radial-gradient(
|
|
circle 800px at 10% 20%,
|
|
color-mix(in srgb, var(--primary) 22%, transparent) 0%,
|
|
transparent 50%
|
|
),
|
|
radial-gradient(
|
|
circle 600px at 90% 80%,
|
|
color-mix(in srgb, var(--chart-2) 18%, transparent) 0%,
|
|
transparent 50%
|
|
),
|
|
radial-gradient(
|
|
circle 500px at 50% 50%,
|
|
color-mix(in srgb, var(--chart-3) 15%, transparent) 0%,
|
|
transparent 60%
|
|
),
|
|
radial-gradient(
|
|
circle 400px at 20% 70%,
|
|
color-mix(in srgb, var(--chart-4) 12%, transparent) 0%,
|
|
transparent 65%
|
|
),
|
|
radial-gradient(
|
|
circle 300px at 80% 30%,
|
|
color-mix(in srgb, var(--primary-light) 10%, transparent) 0%,
|
|
transparent 70%
|
|
);
|
|
opacity: 1;
|
|
}
|
|
|
|
.page-content {
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
/* Fintech card styles avec effet glassmorphism prononcé */
|
|
.fintech-card {
|
|
background: color-mix(in srgb, var(--card) 70%, transparent);
|
|
backdrop-filter: blur(60px) saturate(200%) brightness(1.05);
|
|
-webkit-backdrop-filter: blur(60px) saturate(200%) brightness(1.05);
|
|
border: none;
|
|
border-radius: calc(var(--radius) + 0.25rem);
|
|
box-shadow:
|
|
0 2px 8px 0 color-mix(in srgb, var(--foreground) 6%, transparent),
|
|
0 8px 24px -4px color-mix(in srgb, var(--primary) 8%, transparent),
|
|
0 16px 48px -8px color-mix(in srgb, var(--foreground) 3%, transparent),
|
|
inset 0 1px 0 0 color-mix(in srgb, white 40%, transparent),
|
|
inset 0 -1px 0 0 color-mix(in srgb, var(--foreground) 2%, transparent);
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* Texture subtile avec grain/noise */
|
|
.fintech-card::before {
|
|
content: "";
|
|
position: absolute;
|
|
inset: 0;
|
|
background-image: radial-gradient(
|
|
circle at 1px 1px,
|
|
color-mix(in srgb, var(--foreground) 2%, transparent) 1px,
|
|
transparent 0
|
|
);
|
|
background-size: 20px 20px;
|
|
opacity: 0.15;
|
|
pointer-events: none;
|
|
z-index: 1;
|
|
}
|
|
|
|
.dark .fintech-card::before {
|
|
background-image: radial-gradient(
|
|
circle at 1px 1px,
|
|
color-mix(in srgb, white 3%, transparent) 1px,
|
|
transparent 0
|
|
);
|
|
opacity: 0.1;
|
|
}
|
|
|
|
/* Texture plus prononcée pour les cards de statistiques */
|
|
.stat-card-textured::before {
|
|
background-image:
|
|
radial-gradient(
|
|
circle at 1px 1px,
|
|
color-mix(in srgb, var(--foreground) 3%, transparent) 1px,
|
|
transparent 0
|
|
),
|
|
radial-gradient(
|
|
circle at 11px 11px,
|
|
color-mix(in srgb, var(--foreground) 1.5%, transparent) 1px,
|
|
transparent 0
|
|
);
|
|
background-size:
|
|
16px 16px,
|
|
24px 24px;
|
|
opacity: 0.2;
|
|
z-index: 1;
|
|
}
|
|
|
|
.dark .stat-card-textured::before {
|
|
background-image:
|
|
radial-gradient(
|
|
circle at 1px 1px,
|
|
color-mix(in srgb, white 4%, transparent) 1px,
|
|
transparent 0
|
|
),
|
|
radial-gradient(
|
|
circle at 11px 11px,
|
|
color-mix(in srgb, white 2%, transparent) 1px,
|
|
transparent 0
|
|
);
|
|
opacity: 0.15;
|
|
}
|
|
|
|
/* Effet glass renforcé pour les cards de contenu */
|
|
.fintech-card.card-hover {
|
|
background: color-mix(in srgb, var(--card) 60%, transparent);
|
|
backdrop-filter: blur(80px) saturate(220%) brightness(1.08);
|
|
-webkit-backdrop-filter: blur(80px) saturate(220%) brightness(1.08);
|
|
}
|
|
|
|
.dark .fintech-card.card-hover {
|
|
background: color-mix(in srgb, var(--card) 55%, transparent);
|
|
backdrop-filter: blur(80px) saturate(220%) brightness(0.92);
|
|
-webkit-backdrop-filter: blur(80px) saturate(220%) brightness(0.92);
|
|
}
|
|
|
|
.dark .fintech-card {
|
|
background: color-mix(in srgb, var(--card) 65%, transparent);
|
|
backdrop-filter: blur(60px) saturate(200%) brightness(0.95);
|
|
-webkit-backdrop-filter: blur(60px) saturate(200%) brightness(0.95);
|
|
border: none;
|
|
box-shadow:
|
|
0 2px 8px 0 color-mix(in srgb, var(--foreground) 12%, transparent),
|
|
0 8px 24px -4px color-mix(in srgb, var(--primary) 12%, transparent),
|
|
0 16px 48px -8px color-mix(in srgb, black 50%, transparent),
|
|
inset 0 1px 0 0 color-mix(in srgb, white 12%, transparent),
|
|
inset 0 -1px 0 0 color-mix(in srgb, var(--foreground) 4%, transparent);
|
|
}
|
|
|
|
.fintech-card::after {
|
|
content: "";
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 2px;
|
|
background: linear-gradient(
|
|
90deg,
|
|
transparent 0%,
|
|
color-mix(in srgb, white 60%, transparent) 20%,
|
|
color-mix(in srgb, white 80%, transparent) 50%,
|
|
color-mix(in srgb, white 60%, transparent) 80%,
|
|
transparent 100%
|
|
);
|
|
opacity: 0.7;
|
|
z-index: 2;
|
|
}
|
|
|
|
.dark .fintech-card::after {
|
|
opacity: 0.25;
|
|
background: linear-gradient(
|
|
90deg,
|
|
transparent 0%,
|
|
color-mix(in srgb, white 30%, transparent) 20%,
|
|
color-mix(in srgb, white 40%, transparent) 50%,
|
|
color-mix(in srgb, white 30%, transparent) 80%,
|
|
transparent 100%
|
|
);
|
|
}
|
|
|
|
/* Gradient backgrounds for stat cards - design moderne et subtil */
|
|
.stat-card-gradient-1 {
|
|
background: linear-gradient(
|
|
135deg,
|
|
color-mix(in srgb, var(--primary) 8%, var(--card)) 0%,
|
|
color-mix(in srgb, var(--primary-light) 5%, var(--card)) 50%,
|
|
color-mix(in srgb, var(--primary) 4%, var(--card)) 100%
|
|
);
|
|
position: relative;
|
|
overflow: hidden;
|
|
border-color: color-mix(in srgb, var(--primary) 20%, var(--border));
|
|
}
|
|
|
|
.stat-card-gradient-1::before {
|
|
content: "";
|
|
position: absolute;
|
|
top: -30%;
|
|
right: -20%;
|
|
width: 150%;
|
|
height: 150%;
|
|
background: radial-gradient(
|
|
circle,
|
|
color-mix(in srgb, var(--primary) 15%, transparent) 0%,
|
|
transparent 60%
|
|
);
|
|
opacity: 0.4;
|
|
}
|
|
|
|
.dark .stat-card-gradient-1 {
|
|
background: linear-gradient(
|
|
135deg,
|
|
color-mix(in srgb, var(--primary) 12%, var(--card)) 0%,
|
|
color-mix(in srgb, var(--primary-light) 8%, var(--card)) 50%,
|
|
color-mix(in srgb, var(--primary) 6%, var(--card)) 100%
|
|
);
|
|
border-color: color-mix(in srgb, var(--primary) 30%, var(--border));
|
|
}
|
|
|
|
.dark .stat-card-gradient-1::before {
|
|
opacity: 0.25;
|
|
}
|
|
|
|
.stat-card-gradient-2 {
|
|
background: linear-gradient(
|
|
135deg,
|
|
color-mix(in srgb, var(--success) 8%, var(--card)) 0%,
|
|
color-mix(in srgb, var(--success) 5%, var(--card)) 50%,
|
|
color-mix(in srgb, var(--success) 4%, var(--card)) 100%
|
|
);
|
|
position: relative;
|
|
overflow: hidden;
|
|
border-color: color-mix(in srgb, var(--success) 20%, var(--border));
|
|
}
|
|
|
|
.stat-card-gradient-2::before {
|
|
content: "";
|
|
position: absolute;
|
|
top: -30%;
|
|
right: -20%;
|
|
width: 150%;
|
|
height: 150%;
|
|
background: radial-gradient(
|
|
circle,
|
|
color-mix(in srgb, var(--success) 15%, transparent) 0%,
|
|
transparent 60%
|
|
);
|
|
opacity: 0.4;
|
|
}
|
|
|
|
.dark .stat-card-gradient-2 {
|
|
background: linear-gradient(
|
|
135deg,
|
|
color-mix(in srgb, var(--success) 12%, var(--card)) 0%,
|
|
color-mix(in srgb, var(--success) 8%, var(--card)) 50%,
|
|
color-mix(in srgb, var(--success) 6%, var(--card)) 100%
|
|
);
|
|
border-color: color-mix(in srgb, var(--success) 30%, var(--border));
|
|
}
|
|
|
|
.dark .stat-card-gradient-2::before {
|
|
opacity: 0.25;
|
|
}
|
|
|
|
.stat-card-gradient-3 {
|
|
background: linear-gradient(
|
|
135deg,
|
|
color-mix(in srgb, var(--destructive) 8%, var(--card)) 0%,
|
|
color-mix(in srgb, var(--destructive) 5%, var(--card)) 50%,
|
|
color-mix(in srgb, var(--destructive) 4%, var(--card)) 100%
|
|
);
|
|
position: relative;
|
|
overflow: hidden;
|
|
border-color: color-mix(in srgb, var(--destructive) 20%, var(--border));
|
|
}
|
|
|
|
.stat-card-gradient-3::before {
|
|
content: "";
|
|
position: absolute;
|
|
top: -30%;
|
|
right: -20%;
|
|
width: 150%;
|
|
height: 150%;
|
|
background: radial-gradient(
|
|
circle,
|
|
color-mix(in srgb, var(--destructive) 15%, transparent) 0%,
|
|
transparent 60%
|
|
);
|
|
opacity: 0.4;
|
|
}
|
|
|
|
.dark .stat-card-gradient-3 {
|
|
background: linear-gradient(
|
|
135deg,
|
|
color-mix(in srgb, var(--destructive) 12%, var(--card)) 0%,
|
|
color-mix(in srgb, var(--destructive) 8%, var(--card)) 50%,
|
|
color-mix(in srgb, var(--destructive) 6%, var(--card)) 100%
|
|
);
|
|
border-color: color-mix(in srgb, var(--destructive) 30%, var(--border));
|
|
}
|
|
|
|
.dark .stat-card-gradient-3::before {
|
|
opacity: 0.25;
|
|
}
|
|
|
|
.stat-card-gradient-4 {
|
|
background: linear-gradient(
|
|
135deg,
|
|
color-mix(in srgb, var(--chart-4) 8%, var(--card)) 0%,
|
|
color-mix(in srgb, var(--chart-4) 5%, var(--card)) 50%,
|
|
color-mix(in srgb, var(--chart-4) 4%, var(--card)) 100%
|
|
);
|
|
position: relative;
|
|
overflow: hidden;
|
|
border-color: color-mix(in srgb, var(--chart-4) 20%, var(--border));
|
|
}
|
|
|
|
.stat-card-gradient-4::before {
|
|
content: "";
|
|
position: absolute;
|
|
top: -30%;
|
|
right: -20%;
|
|
width: 150%;
|
|
height: 150%;
|
|
background: radial-gradient(
|
|
circle,
|
|
color-mix(in srgb, var(--chart-4) 15%, transparent) 0%,
|
|
transparent 60%
|
|
);
|
|
opacity: 0.4;
|
|
}
|
|
|
|
.dark .stat-card-gradient-4 {
|
|
background: linear-gradient(
|
|
135deg,
|
|
color-mix(in srgb, var(--chart-4) 12%, var(--card)) 0%,
|
|
color-mix(in srgb, var(--chart-4) 8%, var(--card)) 50%,
|
|
color-mix(in srgb, var(--chart-4) 6%, var(--card)) 100%
|
|
);
|
|
border-color: color-mix(in srgb, var(--chart-4) 30%, var(--border));
|
|
}
|
|
|
|
.dark .stat-card-gradient-4::before {
|
|
opacity: 0.25;
|
|
}
|
|
|
|
.stat-card-gradient-5 {
|
|
background: linear-gradient(
|
|
135deg,
|
|
color-mix(in srgb, var(--chart-5) 8%, var(--card)) 0%,
|
|
color-mix(in srgb, var(--chart-5) 5%, var(--card)) 50%,
|
|
color-mix(in srgb, var(--chart-5) 4%, var(--card)) 100%
|
|
);
|
|
position: relative;
|
|
overflow: hidden;
|
|
border-color: color-mix(in srgb, var(--chart-5) 20%, var(--border));
|
|
}
|
|
|
|
.stat-card-gradient-5::before {
|
|
content: "";
|
|
position: absolute;
|
|
top: -30%;
|
|
right: -20%;
|
|
width: 150%;
|
|
height: 150%;
|
|
background: radial-gradient(
|
|
circle,
|
|
color-mix(in srgb, var(--chart-5) 15%, transparent) 0%,
|
|
transparent 60%
|
|
);
|
|
opacity: 0.4;
|
|
}
|
|
|
|
.dark .stat-card-gradient-5 {
|
|
background: linear-gradient(
|
|
135deg,
|
|
color-mix(in srgb, var(--chart-5) 12%, var(--card)) 0%,
|
|
color-mix(in srgb, var(--chart-5) 8%, var(--card)) 50%,
|
|
color-mix(in srgb, var(--chart-5) 6%, var(--card)) 100%
|
|
);
|
|
border-color: color-mix(in srgb, var(--chart-5) 30%, var(--border));
|
|
}
|
|
|
|
.dark .stat-card-gradient-5::before {
|
|
opacity: 0.25;
|
|
}
|
|
}
|