/*
 * BIBLIOTHEQUE D ICONES ETENDUE — BRAINROT FORTNITE
 * =================================================
 *
 * FICHIER GENERE. Ne pas editer a la main :
 *   node tools/icons/build.js
 *
 * Les nouvelles icones reprennent le comportement exact des icones
 * Vikinger d origine : taille 20 px et couleur #616a82 par defaut,
 * pilotees ensuite par le contexte (menu, bouton, carte...).
 *
 * POURQUOI :where() ?
 * La regle de base est enveloppee dans :where(), donc de specificite
 * NULLE. Toutes les regles contextuelles deja presentes dans
 * css/styles.min.css (.menu-item-link-icon, .action-list-item-icon,
 * .button-icon...) continuent donc de gagner, exactement comme pour les
 * 90 icones d origine, quel que soit l ordre de chargement des feuilles.
 * Sans :where(), ce fichier etant charge apres styles.min.css, il aurait
 * ecrase la couleur des icones de menu.
 */

:where(
  .icon-cart, .icon-order, .icon-secure-payment, .icon-credit-card,
  .icon-invoice, .icon-promotion, .icon-coupon, .icon-refund,
  .icon-subscription, .icon-license, .icon-marketplace-middleman, .icon-commission,
  .icon-delivery, .icon-stock, .icon-transaction, .icon-payment-history,
  .icon-gift-card, .icon-seller-verified, .icon-coin, .icon-auction,
  .icon-help, .icon-help-center, .icon-support-agent, .icon-support-ticket,
  .icon-live-support, .icon-faq, .icon-documentation, .icon-guide,
  .icon-tutorial, .icon-bug, .icon-service-status, .icon-contact,
  .icon-knowledge-base, .icon-troubleshoot, .icon-suggestion, .icon-feedback,
  .icon-lifebuoy, .icon-community, .icon-invitation, .icon-staff,
  .icon-administrator, .icon-moderator, .icon-verified-member, .icon-ambassador,
  .icon-reputation, .icon-leaderboard, .icon-rank, .icon-external-link,
  .icon-link, .icon-broadcast, .icon-radio, .icon-gallery,
  .icon-playlist, .icon-video-camera, .icon-media, .icon-moderation-tools,
  .icon-role, .icon-permission, .icon-check-circle, .icon-report-flag,
  .icon-ban, .icon-mute, .icon-folder-lock, .icon-eye,
  .icon-eye-off, .icon-edit, .icon-read-only, .icon-move,
  .icon-audit, .icon-history, .icon-shield, .icon-anti-scam,
  .icon-escrow, .icon-account-security, .icon-two-factor, .icon-sessions,
  .icon-devices, .icon-api-key, .icon-webhook, .icon-unlock,
  .icon-dashboard, .icon-configuration, .icon-api, .icon-sync,
  .icon-database, .icon-migration, .icon-logs, .icon-performance,
  .icon-cron, .icon-automation, .icon-import, .icon-export,
  .icon-backup, .icon-cache, .icon-maintenance, .icon-server,
  .icon-server-error, .icon-terminal
) {
  fill: #616a82;
  width: 20px;
  height: 20px;
}

/* ------------------------------------------------------------------
   Modificateurs optionnels. Specificite normale : ils s appliquent
   quand on les demande explicitement dans le markup.
   ------------------------------------------------------------------ */

/* Tailles de la grille : 16, 20, 24 et 32 px. */
.icon--16 { width: 16px; height: 16px; }
.icon--20 { width: 20px; height: 20px; }
.icon--24 { width: 24px; height: 24px; }
.icon--32 { width: 32px; height: 32px; }

/* Couleur heritee du texte : utile dans les boutons et les badges. */
.icon--current { fill: currentColor; }

/* Alignement optique sur une ligne de texte. */
.icon--inline {
  vertical-align: -0.15em;
  flex: 0 0 auto;
}

/* Etats. Ils n imposent rien : ils suivent la couleur du parent. */
.icon--current:where(a:hover *, button:hover *, .active *) { fill: currentColor; }
.icon--muted { opacity: .55; }

:where(a, button, [role="button"]):disabled .icon--current,
:where(a, button, [role="button"])[aria-disabled="true"] .icon--current,
.is-disabled .icon--current {
  opacity: .4;
}
