/* Styles propres au module rewards (compléments de app.css ; .reward-price et --primary-text sont dans community.css). */

/* --- Catalogue --- */
.balance-pill { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 12px; padding: 8px 14px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); font-size: .9rem; }
.reward-item .media-body { gap: 5px; }
.reward-partner { color: var(--text-muted); font-size: .82rem; font-weight: 600; }
.reward-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.reward-item .media-aside { justify-content: center; }
.reward-chevron { font-size: 1.6rem; line-height: 1; color: var(--text-muted); }
.reward-item.reward-affordable { border-color: rgba(255, 122, 0, .45); }
.reward-item.is-soldout .media-thumb { opacity: .5; filter: grayscale(1); }
.reward-item.is-locked .media-thumb img { filter: grayscale(.6); }

/* --- Détail --- */
.reward-cover { aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--radius) var(--radius) 0 0; background: var(--surface-2); }
.reward-cover img { width: 100%; height: 100%; object-fit: cover; }
/* Illustration par défaut (carrée) : affichée en entier sur la couleur de son type. */
.reward-cover-default img { object-fit: contain; }
.reward-cover-discount { background: #e5484d; } .reward-cover-voucher { background: #ff7a00; } .reward-cover-gift { background: #2d7ff9; }
.reward-cover-invitation { background: #7c3aed; } .reward-cover-experience { background: #1f9d55; } .reward-cover-access { background: #15151a; }
.reward-sheet { border-top: 0; border-radius: 0 0 var(--radius) var(--radius); }
.reward-title-lg { margin: 4px 0 8px; }
.reward-cost-line { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.reward-price-lg { padding: 6px 16px; font-size: 1rem; }
.reward-cta { margin-top: 16px; }

/* --- Mes récompenses --- */
.redemption-card { display: grid; gap: 10px; align-content: start; }
.redemption-card > * { margin-top: 0; margin-bottom: 0; }
.redemption-head { display: flex; align-items: flex-start; gap: 12px; }
.redemption-head .media-body { gap: 4px; }
.redemption-head .badge { margin-left: auto; }
.redemption-thumb { flex: 0 0 auto; width: 56px; height: 56px; border-radius: var(--radius-sm); }
.redemption-card.is-past .media-thumb { opacity: .6; filter: grayscale(1); }
.redemption-card:target { border-color: var(--primary); }
.redemption-check code { font-size: 1.05rem; letter-spacing: .08em; }

/* --- Espace partenaire --- */
.partner-check { border: 2px solid var(--primary); }

/* --- Administration : indicateurs et définitions --- */
.kpi-card .stat-value { font-size: 1.6rem; }
.kpi-definition { margin: 6px 0 0; color: var(--text-muted); font-size: .82rem; }
.quick-links { display: grid; gap: 12px; grid-template-columns: 1fr; margin-bottom: 16px; }
/* Chiffre au-dessus de son libellé : les deux span en ligne se collaient (« 0participations… »). */
.quick-links .card-link { display: grid; gap: 2px; }
@media (min-width: 640px) { .quick-links { grid-template-columns: repeat(3, 1fr); } }
.audit-details { max-width: 420px; white-space: pre-wrap; word-break: break-word; font-size: .8rem; margin: 0; }
.thumb { width: 56px; height: 40px; object-fit: cover; border-radius: var(--radius-sm); }
.actions-cell { display: flex; flex-wrap: wrap; gap: 6px; }
