// resources/css/design-system.css // Design System pour plateforme LMS :root{--color-primary: #3b82f6;--color-primary-dark: #1e40af;--color-primary-light: #60a5fa;--color-primary-lighter: #dbeafe;--color-secondary: #6366f1;--color-secondary-dark: #4338ca;--color-secondary-light: #818cf8;--color-success: #10b981;--color-success-light: #d1fae5;--color-success-dark: #047857;--color-danger: #ef4444;--color-danger-light: #fee2e2;--color-danger-dark: #dc2626;--color-warning: #f97316;--color-warning-light: #fed7aa;--color-warning-dark: #c2410c;--color-info: #06b6d4;--color-info-light: #cffafe;--color-info-dark: #0891b2;--color-white: #ffffff;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-black: #000000;--font-family-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-mono: "Fira Code", "Courier New", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 2.5rem;--spacing-3xl: 3rem;--spacing-4xl: 4rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--transition-fast: .15s ease-in-out;--transition-base: .25s ease-in-out;--transition-slow: .35s ease-in-out}.btn-primary{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background-color:var(--color-primary);color:var(--color-white);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);border:none;border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-md)}.btn-primary:hover{background-color:var(--color-primary-dark);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background-color:var(--color-gray-200);color:var(--color-gray-900);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);border:1px solid var(--color-gray-300);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-base)}.btn-secondary:hover{background-color:var(--color-gray-300);border-color:var(--color-gray-400)}.btn-danger{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background-color:var(--color-danger);color:var(--color-white);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);border:none;border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-base)}.btn-danger:hover{background-color:var(--color-danger-dark)}.card{background-color:var(--color-white);border-radius:var(--radius-xl);border:1px solid var(--color-gray-200);box-shadow:var(--shadow-sm);padding:var(--spacing-lg);transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-md);border-color:var(--color-gray-300)}.card--elevated{box-shadow:var(--shadow-lg)}.badge{display:inline-flex;align-items:center;padding:.375rem .75rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.badge--primary{background-color:var(--color-primary-lighter);color:var(--color-primary-dark)}.badge--success{background-color:var(--color-success-light);color:var(--color-success-dark)}.badge--danger{background-color:var(--color-danger-light);color:var(--color-danger-dark)}.badge--warning{background-color:var(--color-warning-light);color:var(--color-warning-dark)}.input{width:100%;padding:.75rem 1rem;font-size:var(--font-size-base);border:1px solid var(--color-gray-300);border-radius:var(--radius-full);font-family:var(--font-family-sans);transition:all var(--transition-base)}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter)}.input--error{border-color:var(--color-danger)}.input--error:focus{box-shadow:0 0 0 3px var(--color-danger-light)}.label{display:block;margin-bottom:.5rem;font-weight:var(--font-weight-medium);color:var(--color-gray-700);font-size:var(--font-size-sm)}.grid{display:grid;gap:var(--spacing-lg)}.grid--2{grid-template-columns:repeat(2,1fr)}.grid--3{grid-template-columns:repeat(3,1fr)}.grid--4{grid-template-columns:repeat(4,1fr)}@media(max-width:1024px){.grid--4,.grid--3{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.grid--4,.grid--3,.grid--2{grid-template-columns:1fr}}.container{max-width:1280px;margin-left:auto;margin-right:auto;padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}.sidebar-layout{display:grid;grid-template-columns:280px 1fr;gap:var(--spacing-2xl);min-height:100vh}@media(max-width:1024px){.sidebar-layout{grid-template-columns:1fr}}body{font-family:var(--font-family-sans);font-size:var(--font-size-base);color:var(--color-gray-900);line-height:1.6}h1,.h1{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);line-height:1.2;color:var(--color-gray-900)}h2,.h2{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);line-height:1.3;color:var(--color-gray-900)}h3,.h3{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);line-height:1.4;color:var(--color-gray-900)}h4,.h4{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-gray-900)}.text--muted{color:var(--color-gray-500);font-size:var(--font-size-sm)}.text--small{font-size:var(--font-size-sm)}.text--bold{font-weight:var(--font-weight-bold)}.flex{display:flex}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-center{display:flex;justify-content:center;align-items:center}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.m-sm{margin:var(--spacing-sm)}.m-md{margin:var(--spacing-md)}.m-lg{margin:var(--spacing-lg)}.mt-xs{margin-top:var(--spacing-xs)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-full{border-radius:var(--radius-full)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}
