/*
 * Badges de recommandation et de rareté.
 * Une seule mécanique de teinte : color-mix() dérive fond et bordure de la couleur de rôle,
 * ce qui évite de maintenir un doublon rgba par variante.
 */
.rb-badge {
    display: inline-block;
    padding: 5px 9px;
    border: 1px solid transparent;
    border-radius: 5px;
    font-family: var(--rb-font-sans);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    white-space: nowrap;
}

.rb-badge--compact {
    padding: 3px 7px;
    border-radius: var(--rb-radius-sm);
    font-size: 9.5px;
    letter-spacing: 0.1em;
}

/* Recommandation : texte plein, fond à 12 %, bordure à 33 %. */
.rb-badge--reco {
    color: var(--rb-badge-color);
    background-color: color-mix(in srgb, var(--rb-badge-color) var(--rb-badge-fill-opacity), transparent);
    border-color: color-mix(in srgb, var(--rb-badge-color) var(--rb-badge-border-opacity), transparent);
}

.rb-badge--buy { --rb-badge-color: var(--rb-reco-buy); }
.rb-badge--sell { --rb-badge-color: var(--rb-reco-sell); }
.rb-badge--hold { --rb-badge-color: var(--rb-reco-hold); }
.rb-badge--watch { --rb-badge-color: var(--rb-reco-watch); }
.rb-badge--search-on-vinted { --rb-badge-color: var(--rb-reco-search); }

/* Actions sur le stock (T24) : même mécanique que la recommandation. */
.rb-badge--partial-sell { --rb-badge-color: var(--rb-accent-orange); }
.rb-badge--list { --rb-badge-color: var(--rb-accent-gold); }
.rb-badge--reserve { --rb-badge-color: var(--rb-accent-purple); }

/* Tag d'opportunité (T24) : teinte color-mix, casse normale pour se distinguer d'une recommandation. */
.rb-badge--tag {
    color: var(--rb-badge-color);
    background-color: color-mix(in srgb, var(--rb-badge-color) var(--rb-badge-fill-opacity), transparent);
    border-color: color-mix(in srgb, var(--rb-badge-color) var(--rb-badge-border-opacity), transparent);
    letter-spacing: 0.02em;
    text-transform: none;
}

.rb-badge--tag-hot { --rb-badge-color: var(--rb-accent-orange); }
.rb-badge--tag-overheated { --rb-badge-color: var(--rb-accent-red); }
.rb-badge--tag-sleeper { --rb-badge-color: var(--rb-accent-purple); }
.rb-badge--tag-undervalued { --rb-badge-color: var(--rb-accent-green); }
.rb-badge--tag-rising { --rb-badge-color: var(--rb-accent-cyan); }

/* Rareté : fond transparent, bordure et texte à la couleur de rareté. */
.rb-badge--rarity {
    color: var(--rb-badge-color);
    background-color: transparent;
    border-color: var(--rb-badge-color);
    font-size: 9.5px;
}

.rb-badge--common { --rb-badge-color: var(--rb-rarity-common); }
.rb-badge--uncommon { --rb-badge-color: var(--rb-rarity-uncommon); }
.rb-badge--rare { --rb-badge-color: var(--rb-rarity-rare); }
.rb-badge--legendary { --rb-badge-color: var(--rb-rarity-legendary); }
.rb-badge--champion { --rb-badge-color: var(--rb-rarity-champion); }

/* Produit non rapproché du référentiel Riftcodex (T25) : ni couleur inventée, ni disparition. */
.rb-badge--neutral { --rb-badge-color: var(--rb-text-muted); }

/* Niveau de tournoi (T41) : même mécanique que la recommandation. */
.rb-badge--level-major { --rb-badge-color: var(--rb-accent-gold); }
.rb-badge--level-regional { --rb-badge-color: var(--rb-accent-cyan); }
.rb-badge--level-local { --rb-badge-color: var(--rb-accent-gray); }
