# Build brief — keywords/reservoir

> Gabarit de brief (court, orienté build). CdC complet : `keywords/reservoir` (mémoire specs).

- **Route** : `/keywords/reservoir` (route group `(app)`).
- **But** : réservoir de recherche **par site** (≠ rank-tracking).

## Écran
- En-tête : titre + actions ; **sélecteur de site** (déjà dans le shell).
- **DataTable** (TanStack + shadcn), virtualisable, barre de **filtres** + recherche, **bulk-actions bar**, **Sheet** détail.
- Colonnes : `terme · langue · thème · statut · intent · volume · KD · CPC · croissance% · tendance(sparkline) · sources · maj`.
- Filtres : langue, thème, **statut**, intent, source, plages (volume / KD / CPC / croissance).

## Composants shadcn
Table/DataTable · Input (search) · Select/Combobox (filtres) · Badge (statut/intent) · Sheet (détail) · DropdownMenu (bulk) · mini-sparkline (custom).

## Données (mock)
Fixtures typées : `Keyword[]` avec **métriques par source** + **série mensuelle** (réutiliser l'exemple Mangools). ~30 lignes variées. Statuts : `idea · watch · active · archived`.

## États
Vide · chargement (skeleton) · erreur.

## Critères d'acceptation (proto)
- Filtrer met à jour la table.
- La **sparkline** reflète la série mensuelle.
- Le **Sheet** affiche les métriques **multi-sources**.
- Le **switch de site** re-mock les données (isolation).
- Clavier + focus visibles.

## Hors proto
API réelle, dédup/merge, persistence, re-check Google.
