"""Tokens de marque luxury · CLAUDE.md contrainte #4 (source unique de vérité).

Dark + doré : `#0a0a12` fond · `#f0b429` accent doré.
Typographies : Fraunces (titres) + Cormorant Garamond (corps éditorial).

Ces constantes sont importées par le générateur ET vérifiées par la baseline QA
Playwright (tests/e2e/_shared/contract.ts) — garder les valeurs synchronisées.
"""

from __future__ import annotations

# Couleurs canoniques (contrainte #4).
COLOR_BG = "#0a0a12"        # fond dark
COLOR_ACCENT = "#f0b429"    # doré
COLOR_INK = "#f5f3ee"       # texte clair sur fond dark
COLOR_MUTED = "#8b8778"     # texte secondaire

# Typographies canoniques (contrainte #4).
FONT_DISPLAY = "Fraunces"
FONT_BODY = "Cormorant Garamond"

# Devises canoniques (contrainte #10 · USD + DOP).
DEVISE_PRIMAIRE = "USD"
DEVISE_SECONDAIRE = "DOP"

# Libellés de statut affichés sur le site public (FR par défaut).
STATUT_LABELS = {
    "disponible": "Disponible",
    "en_developpement": "En développement",
    "bientot": "Bientôt",
    "en_processus": "En processus",
}

# Statuts pour lesquels on affiche « Prochainement · Détails à venir »
# au lieu d'une grille de prix (jamais de prix inventé — contrainte #6).
STATUTS_SANS_PRIX = {"en_developpement", "bientot", "en_processus"}


def statut_label(statut: str) -> str:
    return STATUT_LABELS.get(statut, statut)
