/* CSS Critique COMPLET - Autosuffisant (élimination 125KB bloquant) */

/* === BASE RESET === */
*,::before,::after{box-sizing:border-box;margin:0;padding:0;border:0;font-size:100%;vertical-align:baseline}
html{line-height:1.15;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji"}
body{background:#fff;color:#111827;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img,svg{display:block;max-width:100%;height:auto}

/* === LAYOUT FOUNDATION === */
.container{width:100%;margin:0 auto;padding:0 1rem}
@media(min-width:640px){.container{max-width:640px}}
@media(min-width:768px){.container{max-width:768px}}
@media(min-width:1024px){.container{max-width:1024px}}
@media(min-width:1280px){.container{max-width:1280px}}
@media(min-width:1536px){.container{max-width:1536px}}

/* === DISPLAY === */
.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.grid{display:grid}.hidden{display:none}

/* === POSITIONING === */
.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}
.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}
.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}

/* === FLEX === */
.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}
.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}
.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}

/* === SPACING === */
.m-0{margin:0}.m-1{margin:0.25rem}.m-2{margin:0.5rem}.m-4{margin:1rem}.m-6{margin:1.5rem}.m-8{margin:2rem}
.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-top:1rem;margin-bottom:1rem}
.mt-2{margin-top:0.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}
.mb-2{margin-bottom:0.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}
.p-2{padding:0.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}
.px-2{padding-left:0.5rem;padding-right:0.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}
.py-2{padding-top:0.5rem;padding-bottom:0.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-20{padding-top:5rem;padding-bottom:5rem}

/* === TYPOGRAPHY === */
.text-xs{font-size:0.75rem;line-height:1rem}.text-sm{font-size:0.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}
.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}
.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}
.leading-none{line-height:1}.leading-tight{line-height:1.25}.leading-normal{line-height:1.5}

/* === COLORS === */
.text-white{color:#fff}.text-black{color:#000}.text-gray-600{color:#4b5563}.text-gray-700{color:#374151}.text-gray-800{color:#1f2937}.text-gray-900{color:#111827}
.text-blue-600{color:#2563eb}.text-\[#0077c0\]{color:#0077c0}
.bg-white{background:#fff}.bg-gray-50{background:#f9fafb}.bg-gray-100{background:#f3f4f6}.bg-blue-50{background:#eff6ff}
.bg-\[#0077c0\]{background:#0077c0}

/* === DIMENSIONS === */
.w-full{width:100%}.w-auto{width:auto}.w-4{width:1rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-10{width:2.5rem}.w-12{width:3rem}
.h-full{height:100%}.h-auto{height:auto}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-10{height:2.5rem}.h-12{height:3rem}
.max-w-xs{max-width:20rem}.max-w-sm{max-width:24rem}.max-w-md{max-width:28rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}

/* === BORDERS === */
.border{border-width:1px}.border-2{border-width:2px}.border-gray-200{border-color:#e5e7eb}.border-gray-300{border-color:#d1d5db}
.rounded{border-radius:0.25rem}.rounded-md{border-radius:0.375rem}.rounded-lg{border-radius:0.5rem}.rounded-xl{border-radius:0.75rem}.rounded-full{border-radius:9999px}

/* === SHADOWS === */
.shadow{box-shadow:0 1px 3px 0 rgb(0 0 0/0.1),0 1px 2px -1px rgb(0 0 0/0.1)}.shadow-md{box-shadow:0 4px 6px -1px rgb(0 0 0/0.1),0 2px 4px -2px rgb(0 0 0/0.1)}.shadow-lg{box-shadow:0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1)}

/* === GRADIENTS === */
.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-50{--tw-gradient-from:#eff6ff;--tw-gradient-to:rgb(239 246 255/0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}
.via-white{--tw-gradient-to:rgb(255 255 255/0);--tw-gradient-stops:var(--tw-gradient-from),#fff,var(--tw-gradient-to)}
.to-blue-100{--tw-gradient-to:#dbeafe}

/* === INTERACTIONS === */
.cursor-pointer{cursor:pointer}
.hover\:bg-gray-50:hover{background:#f9fafb}
.hover\:text-blue-600:hover{color:#2563eb}
.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}

/* === RESPONSIVE === */
@media(min-width:640px){
.sm\:block{display:block}.sm\:hidden{display:none}.sm\:flex{display:flex}
.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-5xl{font-size:3rem;line-height:1}
.sm\:py-24{padding-top:6rem;padding-bottom:6rem}
}
@media(min-width:768px){
.md\:block{display:block}.md\:hidden{display:none}.md\:flex{display:flex}
.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}
}
@media(min-width:1024px){
.lg\:block{display:block}.lg\:hidden{display:none}.lg\:flex{display:flex}
.lg\:text-6xl{font-size:3.75rem;line-height:1}
}
@media(min-width:1280px){
.xl\:block{display:block}.xl\:hidden{display:none}.xl\:flex{display:flex}
}

/* === NAVIGATION CRITIQUE === */
nav{background:rgba(255,255,255,0.8);backdrop-filter:blur(10px)}
.nav-link{color:#374151;text-decoration:none;padding:0.5rem 1rem;border-radius:0.375rem;transition:all 0.15s ease}
.nav-link:hover,.nav-link.active{color:#0077c0;background:rgba(0,119,192,0.1)}

/* === BUTTONS CRITIQUES === */
.btn{padding:0.5rem 1rem;border-radius:0.375rem;font-weight:500;text-decoration:none;display:inline-block;transition:all 0.15s ease;cursor:pointer;border:none}
.btn-primary{background:#0077c0;color:#fff}.btn-primary:hover{background:#005a9c}
.btn-secondary{background:transparent;color:#0077c0;border:1px solid #0077c0}.btn-secondary:hover{background:#0077c0;color:#fff}

/* === OVERFLOW CONTROL === */
.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-auto{overflow:auto}