/* Police Inter locale */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 300 800;
    font-display: optional;
    src: url('../fonts/inter.woff2') format('woff2');
}

/* Reset & Base */
*, ::before, ::after {
    box-sizing: border-box;
    border-width: 0;
    border-style: solid;
}

body {
    margin: 0;
    line-height: inherit;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
}

/* Layout */
.min-h-screen { min-height: 100vh; }
.flex { display: flex; }
.grid { display: grid; }
.block { display: block; }
.relative { position: relative; }
.justify-center { justify-content: center; }
.items-center { align-items: center; }
.text-center { text-align: center; }
.w-full { width: 100%; }
.h-5 { height: 1.25rem; }
.w-5 { width: 1.25rem; }
.max-w-md { max-width: 28rem; }
.grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* Spacing */
.p-3 { padding: 0.75rem; }
.p-4 { padding: 1rem; }
.p-8 { padding: 2rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.mb-1 { margin-bottom: 0.25rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mb-3 { margin-bottom: 0.75rem; }
.mb-6 { margin-bottom: 1.5rem; }
.mb-8 { margin-bottom: 2rem; }
.ml-3 { margin-left: 0.75rem; }
.mr-2 { margin-left: 0.5rem; }
.mt-8 { margin-top: 2rem; }
.space-x-6 > * + * { margin-left: 1.5rem; }
.space-y-6 > * + * { margin-top: 1.5rem; }
.gap-3 { gap: 0.75rem; }

/* Border */
.border-2 { border-width: 2px; }
.border-l-4 { border-left-width: 4px; }
.border-gray-200 { border-color: rgb(229 231 235); }
.border-red-500 { border-color: rgb(239 68 68); }
.rounded-xl { border-radius: 0.75rem; }
.rounded-2xl { border-radius: 1rem; }
.rounded-lg { border-radius: 0.5rem; }

/* Background */
.bg-red-50 { background-color: rgb(254 242 242); }
.bg-gradient-to-r { background-image: linear-gradient(to right, var(--tw-gradient-stops)); }
.bg-gradient-to-br { background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)); }
.from-blue-600 { --tw-gradient-from: rgb(37 99 235); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(37 99 235 / 0)); }
.to-blue-700 { --tw-gradient-to: rgb(29 78 216); }
.from-blue-700 { --tw-gradient-from: rgb(29 78 216); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(29 78 216 / 0)); }
.to-blue-800 { --tw-gradient-to: rgb(30 64 175); }
.from-purple-600 { --tw-gradient-from: rgb(147 51 234); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(147 51 234 / 0)); }
.to-purple-700 { --tw-gradient-to: rgb(126 34 206); }

/* Text */
.text-xs { font-size: 0.75rem; line-height: 1rem; }
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.font-bold { font-weight: 700; }
.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.text-white { color: rgb(255 255 255); }
.text-gray-700 { color: rgb(55 65 81); }
.text-gray-900 { color: rgb(17 24 39); }
.text-red-400 { color: rgb(248 113 113); }
.text-red-700 { color: rgb(185 28 28); }
.opacity-90 { opacity: 0.9; }
.min-h-\[2\.5rem\] { min-height: 2.5rem; }

/* Effects */
.shadow-lg { box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); }
.shadow-2xl { box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); }
.cursor-pointer { cursor: pointer; }
.transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }
.duration-200 { transition-duration: 200ms; }

/* Focus states */
.focus\:outline-none:focus { outline: 2px solid transparent; outline-offset: 2px; }
.focus\:border-blue-500:focus { border-color: rgb(59 130 246); }
.focus\:ring-2:focus { box-shadow: 0 0 0 2px var(--tw-ring-color); }
.focus\:ring-blue-200:focus { --tw-ring-color: rgb(191 219 254); }
.focus\:ring-4:focus { box-shadow: 0 0 0 4px var(--tw-ring-color); }

/* Hover states */
.hover\:from-blue-700:hover { --tw-gradient-from: rgb(29 78 216); }
.hover\:to-blue-800:hover { --tw-gradient-to: rgb(30 64 175); }
.hover\:scale-102:hover { transform: scale(1.02); }

/* Radio peer states */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0; }
.peer:checked ~ .peer-checked\:ring-4 { box-shadow: 0 0 0 4px var(--tw-ring-color); }
.peer:checked ~ .peer-checked\:ring-blue-200 { --tw-ring-color: rgb(191 219 254); }
.peer:checked ~ .peer-checked\:ring-brown-200 { --tw-ring-color: rgb(234 221 215); }
.peer:checked ~ .peer-checked\:ring-purple-200 { --tw-ring-color: rgb(233 213 255); }
.peer:checked ~ .peer-checked\:scale-105 { transform: scale(1.05); }

/* Flex shrink */
.flex-shrink-0 { flex-shrink: 0; }

/* Custom classes */
.glass {
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
}

.gradient-sipd {
    background: linear-gradient(135deg, #1e40af 0%, #3b82f6 100%);
}

.gradient-bcssi {
    background: linear-gradient(135deg, #977669 0%, #bfa094 100%);
}

/* Désactiver animations pour CLS */
.animate-wave, .animate-fade-in, .animate-slide-up {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
}

/* Images */
picture { height: 96px; display: inline-block; }
img { height: 96px; width: auto; max-width: 144px; }
