@import "tailwindcss"; @custom-variant dark (&:is(.dark *)); @theme { --color-background: 0 0% 100%; --color-foreground: 222.2 84% 4.9%; --color-card: 0 0% 100%; --color-card-foreground: 222.2 84% 4.9%; --color-popover: 0 0% 100%; --color-popover-foreground: 222.2 84% 4.9%; --color-primary: 222.2 47.4% 11.2%; --color-primary-foreground: 210 40% 98%; --color-secondary: 210 40% 96%; --color-secondary-foreground: 222.2 84% 4.9%; --color-muted: 210 40% 96%; --color-muted-foreground: 215.4 16.3% 46.9%; --color-accent: 210 40% 96%; --color-accent-foreground: 222.2 84% 4.9%; --color-destructive: 0 84.2% 60.2%; --color-destructive-foreground: 210 40% 98%; --color-border: 214.3 31.8% 91.4%; --color-input: 214.3 31.8% 91.4%; --color-ring: 222.2 84% 4.9%; --radius: 0.5rem; } @theme dark { --color-background: 222.2 84% 4.9%; --color-foreground: 210 40% 98%; --color-card: 222.2 84% 4.9%; --color-card-foreground: 210 40% 98%; --color-popover: 222.2 84% 4.9%; --color-popover-foreground: 210 40% 98%; --color-primary: 210 40% 98%; --color-primary-foreground: 222.2 47.4% 11.2%; --color-secondary: 217.2 32.6% 17.5%; --color-secondary-foreground: 210 40% 98%; --color-muted: 217.2 32.6% 17.5%; --color-muted-foreground: 215 20.2% 65.1%; --color-accent: 217.2 32.6% 17.5%; --color-accent-foreground: 210 40% 98%; --color-destructive: 0 62.8% 30.6%; --color-destructive-foreground: 210 40% 98%; --color-border: 217.2 32.6% 17.5%; --color-input: 217.2 32.6% 17.5%; --color-ring: 212.7 26.8% 83.9%; } @theme inline { --color-background: var(--background); --color-foreground: var(--foreground); --font-sans: var(--font-geist-sans); --font-mono: var(--font-geist-mono); --color-sidebar-ring: var(--sidebar-ring); --color-sidebar-border: var(--sidebar-border); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-accent: var(--sidebar-accent); --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); --color-sidebar-primary: var(--sidebar-primary); --color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar: var(--sidebar); --color-chart-5: var(--chart-5); --color-chart-4: var(--chart-4); --color-chart-3: var(--chart-3); --color-chart-2: var(--chart-2); --color-chart-1: var(--chart-1); --color-ring: var(--ring); --color-input: var(--input); --color-border: var(--border); --color-destructive: var(--destructive); --color-accent-foreground: var(--accent-foreground); --color-accent: var(--accent); --color-muted-foreground: var(--muted-foreground); --color-muted: var(--muted); --color-secondary-foreground: var(--secondary-foreground); --color-secondary: var(--secondary); --color-primary-foreground: var(--primary-foreground); --color-primary: var(--primary); --color-popover-foreground: var(--popover-foreground); --color-popover: var(--popover); --color-card-foreground: var(--card-foreground); --color-card: var(--card); --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); } /* Styles personnalisés pour le slider */ .slider { -webkit-appearance: none; appearance: none; width: 100%; height: 8px; border-radius: 4px; background: #e5e7eb; outline: none; cursor: pointer; } .slider::-webkit-slider-track { width: 100%; height: 8px; border-radius: 4px; background: #e5e7eb; border: 1px solid #d1d5db; } .slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 24px; height: 24px; border-radius: 50%; background: #4f46e5; cursor: pointer; border: 2px solid #ffffff; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); transition: all 0.2s ease; margin-top: -8px; /* Centre le thumb verticalement sur la track */ } .slider::-webkit-slider-thumb:hover { background: #3730a3; transform: scale(1.1); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); } .slider::-moz-range-track { width: 100%; height: 8px; border-radius: 4px; background: #e5e7eb; border: 1px solid #d1d5db; outline: none; } .slider::-moz-range-thumb { width: 24px; height: 24px; border-radius: 50%; background: #4f46e5; cursor: pointer; border: 2px solid #ffffff; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); transition: all 0.2s ease; margin-top: -8px; /* Centre le thumb verticalement sur la track */ } .slider::-moz-range-thumb:hover { background: #3730a3; transform: scale(1.1); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); } :root { --radius: 0.625rem; --background: oklch(1 0 0); --foreground: oklch(0.129 0.042 264.695); --card: oklch(1 0 0); --card-foreground: oklch(0.129 0.042 264.695); --popover: oklch(1 0 0); --popover-foreground: oklch(0.129 0.042 264.695); --primary: oklch(0.208 0.042 265.755); --primary-foreground: oklch(0.984 0.003 247.858); --secondary: oklch(0.968 0.007 247.896); --secondary-foreground: oklch(0.208 0.042 265.755); --muted: oklch(0.968 0.007 247.896); --muted-foreground: oklch(0.554 0.046 257.417); --accent: oklch(0.968 0.007 247.896); --accent-foreground: oklch(0.208 0.042 265.755); --destructive: oklch(0.577 0.245 27.325); --border: oklch(0.929 0.013 255.508); --input: oklch(0.929 0.013 255.508); --ring: oklch(0.704 0.04 256.788); --chart-1: oklch(0.646 0.222 41.116); --chart-2: oklch(0.6 0.118 184.704); --chart-3: oklch(0.398 0.07 227.392); --chart-4: oklch(0.828 0.189 84.429); --chart-5: oklch(0.769 0.188 70.08); --sidebar: oklch(0.984 0.003 247.858); --sidebar-foreground: oklch(0.129 0.042 264.695); --sidebar-primary: oklch(0.208 0.042 265.755); --sidebar-primary-foreground: oklch(0.984 0.003 247.858); --sidebar-accent: oklch(0.968 0.007 247.896); --sidebar-accent-foreground: oklch(0.208 0.042 265.755); --sidebar-border: oklch(0.929 0.013 255.508); --sidebar-ring: oklch(0.704 0.04 256.788); } .dark { --background: oklch(0.129 0.042 264.695); --foreground: oklch(0.984 0.003 247.858); --card: oklch(0.208 0.042 265.755); --card-foreground: oklch(0.984 0.003 247.858); --popover: oklch(0.208 0.042 265.755); --popover-foreground: oklch(0.984 0.003 247.858); --primary: oklch(0.929 0.013 255.508); --primary-foreground: oklch(0.208 0.042 265.755); --secondary: oklch(0.279 0.041 260.031); --secondary-foreground: oklch(0.984 0.003 247.858); --muted: oklch(0.279 0.041 260.031); --muted-foreground: oklch(0.704 0.04 256.788); --accent: oklch(0.279 0.041 260.031); --accent-foreground: oklch(0.984 0.003 247.858); --destructive: oklch(0.704 0.191 22.216); --border: oklch(1 0 0 / 10%); --input: oklch(1 0 0 / 15%); --ring: oklch(0.551 0.027 264.364); --chart-1: oklch(0.488 0.243 264.376); --chart-2: oklch(0.696 0.17 162.48); --chart-3: oklch(0.769 0.188 70.08); --chart-4: oklch(0.627 0.265 303.9); --chart-5: oklch(0.645 0.246 16.439); --sidebar: oklch(0.208 0.042 265.755); --sidebar-foreground: oklch(0.984 0.003 247.858); --sidebar-primary: oklch(0.488 0.243 264.376); --sidebar-primary-foreground: oklch(0.984 0.003 247.858); --sidebar-accent: oklch(0.279 0.041 260.031); --sidebar-accent-foreground: oklch(0.984 0.003 247.858); --sidebar-border: oklch(1 0 0 / 10%); --sidebar-ring: oklch(0.551 0.027 264.364); } @layer base { * { @apply border-border; } body { @apply bg-background text-foreground; } } /* Motif de grille pour le header */ .bg-grid-slate-100 { background-image: linear-gradient(rgba(148, 163, 184, 0.1) 1px, transparent 1px), linear-gradient(90deg, rgba(148, 163, 184, 0.1) 1px, transparent 1px); background-size: 20px 20px; } .bg-grid-slate-800 { background-image: linear-gradient(rgba(148, 163, 184, 0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(148, 163, 184, 0.05) 1px, transparent 1px); background-size: 20px 20px; } /* Styles pour le support Markdown */ .prose { color: hsl(222.2 84% 4.9%); } .prose h1 { font-size: 1.5rem; font-weight: 700; margin-bottom: 1rem; margin-top: 1.5rem; color: hsl(222.2 84% 4.9%); } .prose h2 { font-size: 1.25rem; font-weight: 600; margin-bottom: 0.75rem; margin-top: 1.25rem; color: hsl(222.2 84% 4.9%); } .prose h3 { font-size: 1.125rem; font-weight: 500; margin-bottom: 0.5rem; margin-top: 1rem; color: hsl(222.2 84% 4.9%); } /* Styles spécifiques pour la page de vote - titres markdown plus petits */ .vote-page .prose h1 { font-size: 1.125rem; font-weight: 600; margin-bottom: 0.75rem; margin-top: 1rem; } .vote-page .prose h2 { font-size: 1rem; font-weight: 600; margin-bottom: 0.5rem; margin-top: 0.75rem; } .vote-page .prose h3 { font-size: 0.875rem; font-weight: 500; margin-bottom: 0.375rem; margin-top: 0.5rem; } .prose p { margin-bottom: 0.75rem; line-height: 1.6; } .prose strong { font-weight: 600; color: hsl(222.2 84% 4.9%); } .prose em { font-style: italic; } .prose u { text-decoration: underline; } .prose del { text-decoration: line-through; color: hsl(215.4 16.3% 46.9%); } .prose ul { list-style-type: disc; list-style-position: inside; margin-bottom: 0.75rem; } .prose ol { list-style-type: decimal; list-style-position: inside; margin-bottom: 0.75rem; } .prose li { margin-bottom: 0.25rem; } .prose a { color: hsl(222.2 47.4% 11.2%); text-decoration: underline; transition: color 0.2s; } .prose a:hover { color: hsl(222.2 47.4% 11.2% / 0.8); } .prose hr { border-color: hsl(214.3 31.8% 91.4%); margin: 1rem 0; } .prose br { display: block; } /* Styles pour l'éditeur markdown */ .markdown-editor { font-family: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace; font-size: 0.875rem; } .markdown-editor:focus { outline: none; box-shadow: 0 0 0 2px hsl(222.2 84% 4.9%), 0 0 0 4px hsl(222.2 84% 4.9% / 0.1); } /* Styles pour la prévisualisation */ .markdown-preview { max-width: none; } /* Styles pour les onglets */ .markdown-tabs { border-bottom: 1px solid hsl(214.3 31.8% 91.4%); } .markdown-tab { padding: 0.5rem 1rem; font-size: 0.875rem; font-weight: 500; border-bottom: 2px solid transparent; transition: all 0.2s; } .markdown-tab:hover { border-color: hsl(214.3 31.8% 91.4%); } .markdown-tab.active { border-color: hsl(222.2 47.4% 11.2%); color: hsl(222.2 47.4% 11.2%); } /* Styles pour le mode sombre */ .dark .prose { color: hsl(210 40% 98%); } .dark .prose h1, .dark .prose h2, .dark .prose h3, .dark .prose strong { color: hsl(210 40% 98%); } /* Styles spécifiques pour la page de vote en mode sombre */ .dark .vote-page .prose h1, .dark .vote-page .prose h2, .dark .vote-page .prose h3 { color: hsl(210 40% 98%); } .dark .prose del { color: hsl(215 20.2% 65.1%); } .dark .prose a { color: hsl(210 40% 98%); } .dark .prose a:hover { color: hsl(210 40% 98% / 0.8); } .dark .prose hr { border-color: hsl(217.2 32.6% 17.5%); } .dark .markdown-editor:focus { box-shadow: 0 0 0 2px hsl(210 40% 98%), 0 0 0 4px hsl(210 40% 98% / 0.1); } .dark .markdown-tabs { border-bottom: 1px solid hsl(217.2 32.6% 17.5%); } .dark .markdown-tab:hover { border-color: hsl(217.2 32.6% 17.5%); } .dark .markdown-tab.active { border-color: hsl(210 40% 98%); color: hsl(210 40% 98%); }