/* --- Layout global --- */
.hidden { display: none; }

.fixed { position: fixed; }
.inset-x-0 { left: 0; right: 0; }
.bottom-0 { bottom: 0; }
.pb-2 { padding-bottom: 0.5rem; }
.sm\:pb-5 { padding-bottom: 1.25rem; } /* appliqué en >=640px */
.z-50 { z-index: 50; }

/* Container centré */
.mx-auto { margin-left: auto; margin-right: auto; }
.max-w-7xl { max-width: 80rem; } /* 1280px */
.px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
.sm\:px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.lg\:px-8 { padding-left: 2rem; padding-right: 2rem; }

/* Notification box */
.rounded-lg { border-radius: 0.5rem; }
.bg-green-100 { background-color: #dcfce7; }
.bg-red-100 { background-color: #fee2e2; }
.bg-blue-100 { background-color: #dbeafe; }
.p-2 { padding: 0.5rem; }
.sm\:p-3 { padding: 0.75rem; }
.shadow-lg {
  box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1),
              0 4px 6px -2px rgba(0,0,0,0.05);
}

/* Flex layout */
.flex { display: flex; }
.flex-wrap { flex-wrap: wrap; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.w-0 { width: 0; }
.flex-1 { flex: 1; }
.flex-shrink-0 { flex-shrink: 0; }
.order-2 { order: 2; }
.sm\:order-3 { order: 3; }
.sm\:ml-2 { margin-left: 0.5rem; }

/* Icône cercle */
.rounded-md { border-radius: 0.375rem; }
.rounded-lg { border-radius: 0.5rem; }
.bg-green-800 { background-color: #166534; }
.bg-red-800 { background-color: #991b1b; }
.bg-blue-800 { background-color: #1e3a8a; }
.p-2 { padding: 0.5rem; }

/* Texte */
.ml-3 { margin-left: 0.75rem; }
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.font-medium { font-weight: 500; }
.text-green-800 { color: #166534; }
.text-red-800 { color: #991b1b; }
.text-blue-800 { color: #1e3a8a; }
.text-white { color: #fff; }

/* Bouton de fermeture */
.-mr-1 { margin-right: -0.25rem; }
.hover\:bg-green-200:hover { background-color: #bbf7d0; }
.focus\:outline-none:focus { outline: none; }
.focus\:ring-2:focus { box-shadow: 0 0 0 2px currentColor; }
.focus\:ring-white:focus { box-shadow: 0 0 0 2px #fff; }

/* Icônes */
.h-6 { height: 1.5rem; }
.w-6 { width: 1.5rem; }

/* Accessibilité */
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}