/*
 * Components CSS
 * Composants réutilisables du thème (boutons, cartes, badges, pagination...).
 */

/* Layout et Structure */
.ant-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr); gap: 28px; }
.ant-content { background: #fff; border-radius: var(--ant-radius); padding: 32px; border: 1px solid var(--ant-line); }
.ant-sidebox { background: #fff; border-radius: var(--ant-radius); padding: 22px; border: 1px solid var(--ant-line); margin-bottom: 20px; }
.ant-sidebox h3 { margin-top: 0; color: var(--ant-blue); }

/* Boutons */
.ant-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px; }
.ant-btn { display: inline-flex; align-items: center; justify-content: center; padding: 12px 18px; border-radius: 10px; font-weight: 800; border: 2px solid transparent; }
.ant-btn-primary { background: var(--ant-yellow); color: #1b2433; }
.ant-btn-outline { border-color: #fff; color: #fff; }
.ant-btn-light { background: #fff; color: var(--ant-blue); border-color: var(--ant-line); }

.cdc-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 18px; border-radius: 7px; font-weight: 800; }
.cdc-btn-gold { background: #fecb00; color: #172033; }
.cdc-btn-outline { border: 1px solid rgba(255,255,255,.85); color: #fff; background: rgba(0,38,100,.18); }

/* Cartes classiques */
.ant-card { background: #fff; border: 1px solid var(--ant-line); border-radius: var(--ant-radius); overflow: hidden; box-shadow: 0 6px 22px rgba(18,40,76,.05); }
.ant-card-body { padding: 20px; }
.ant-card h3 { margin: 0 0 8px; font-size: 1.05rem; }
.ant-card p { color: var(--ant-muted); font-size: .92rem; }
.ant-card-image { aspect-ratio: 16/9; width: 100%; object-fit: cover; background: #e7ebf2; }

/* Méta et Badges */
.ant-meta { font-size: .85rem; color: var(--ant-muted); }
.ant-pill { display: inline-block; background: rgba(0,38,100,.08); color: var(--ant-blue); padding: 4px 8px; border-radius: 999px; font-size: .76rem; font-weight: 700; margin: 3px 4px 3px 0; }

/* Listes et Pagination */
.ant-list-stack { display: grid; gap: 16px; margin-top: 24px; }
.ant-list-card { display: flex; align-items: center; justify-content: space-between; gap: 28px; background: #fff; border: 1px solid #dbe3ee; border-radius: 16px; padding: 22px 24px; box-shadow: 0 8px 22px rgba(0,39,102,.05); }
.ant-list-card h2 { margin: 5px 0 8px; font-size: 1.25rem; }
.ant-list-card p { margin: 0; color: #5f6f86; line-height: 1.6; }
.ant-pagination { margin: 40px auto 20px; text-align: center; display: flex !important; justify-content: center !important; width: 100% !important; }
.ant-pagination ul.page-numbers, .ant-pagination ul { display: flex !important; flex-direction: row !important; flex-wrap: wrap !important; justify-content: center !important; align-items: center !important; list-style: none !important; padding: 0 !important; margin: 0 !important; gap: 8px !important; }
.ant-pagination ul.page-numbers li, .ant-pagination ul li { list-style: none !important; display: inline-flex !important; margin: 0 !important; padding: 0 !important; }
.ant-pagination .page-numbers { display: inline-flex !important; align-items: center !important; justify-content: center !important; min-width: 42px !important; height: 42px !important; padding: 0 14px !important; border: 1px solid #dbe3ee !important; border-radius: 8px !important; background: #fff !important; color: #002664 !important; text-decoration: none !important; font-weight: 600 !important; font-size: 0.95rem !important; transition: all 0.2s ease !important; }
.ant-pagination .page-numbers:hover { border-color: #002664 !important; background: #f1f5f9 !important; color: #002664 !important; }
.ant-pagination .page-numbers.current, .ant-pagination span.page-numbers.current { background: #002664 !important; color: #fff !important; border-color: #002664 !important; }

/* Détails */
.ant-detail-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); gap: 24px; }
.ant-detail-card { background: #fff; border: 1px solid #dbe3ee; border-radius: 16px; padding: 26px; }
.ant-facts { display: grid; grid-template-columns: 1fr; gap: 6px; }
.ant-facts dt { font-weight: 700; color: var(--ant-blue); margin-top: 10px; }
.ant-facts dd { margin: 0; color: #5f6f86; }

/* États vides */
.ant-empty { text-align: center; background: #f8fafc; border: 1px dashed var(--ant-line); padding: 42px; border-radius: var(--ant-radius); color: var(--ant-muted); line-height: 1.6; }

/* Filtres */
.ant-filterbar { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 24px; background: #fff; padding: 16px; border-radius: 12px; border: 1px solid var(--ant-line); }

@media (max-width: 900px) {
  .ant-layout { grid-template-columns: 1fr; }
}

@media (max-width: 800px) {
  .ant-list-card { align-items: flex-start; flex-direction: column; }
  .ant-detail-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .ant-content, .ant-detail-card { padding: 20px; }
}
