/*#########################################################################
Pont `at_button` → charte attps-builder.
##########################################################################

Ce fichier ne contient QUE des valeurs. Aucun sélecteur de attps-get-field
n'est redéfini, aucune classe `atb-btn-*` n'est réintroduite : le champ
`at_button` garde son vocabulaire `at-btn-*`, on ne lui donne que nos jetons.

C'est ce qui permet de n'avoir qu'un seul vocabulaire de boutons sur le site,
et de faire évoluer la charte sans jamais toucher au plugin.

Les variables `--atb-*` viennent de custom.css et de root.css (généré depuis
les réglages) : la palette custom de l'admin se propage donc automatiquement.
*/

.at-btn {
    /* ---- Palette ------------------------------------------------------
       Les noms coïncident déjà des deux côtés : primaire, secondaire, accent…
       Une couleur changée dans les réglages se répercute ici sans rien faire. */
    --at-primary: var(--atb-primary);
    --at-secondary: var(--atb-secondary);
    --at-accent: var(--atb-accent);
    --at-neutral: var(--atb-neutral);
    --at-info: var(--atb-info);
    --at-warning: var(--atb-warning);
    --at-danger: var(--atb-danger);
    --at-success: var(--atb-success);
    --at-light: var(--atb-light);
    /* « Sur » chaque couleur (lot L7) : calculées par le générateur dans root.css
       (`--atb-on-<couleur>`, par mode). Tant qu'elles n'existent pas, repli sur
       `--atb-light` : rendu identique. */
    --at-on-primary: var(--atb-on-primary, var(--atb-light));
    --at-on-secondary: var(--atb-on-secondary, var(--atb-light));
    --at-on-accent: var(--atb-on-accent, var(--atb-light));
    --at-on-neutral: var(--atb-on-neutral, var(--atb-light));
    --at-on-info: var(--atb-on-info, var(--atb-light));
    --at-on-warning: var(--atb-on-warning, var(--atb-light));
    --at-on-danger: var(--atb-on-danger, var(--atb-light));
    --at-on-success: var(--atb-on-success, var(--atb-light));
    --at-ink-primary: var(--atb-primary-ink, var(--atb-primary));
    --at-ink-secondary: var(--atb-secondary-ink, var(--atb-secondary));
    --at-ink-accent: var(--atb-accent-ink, var(--atb-accent));
    --at-ink-neutral: var(--atb-neutral-ink, var(--atb-neutral));
    --at-ink-info: var(--atb-info-ink, var(--atb-info));
    --at-ink-warning: var(--atb-warning-ink, var(--atb-warning));
    --at-ink-danger: var(--atb-danger-ink, var(--atb-danger));
    --at-ink-success: var(--atb-success-ink, var(--atb-success));

    /* ---- Géométrie ----------------------------------------------------
       On ne touche NI à l'arrondi NI à la bordure : ce sont des réglages du
       champ, pilotés par ses axes. Les imposer ici rendrait le réglage de
       l'utilisateur sans effet — c'est exactement ce qui s'était produit avec
       l'arrondi, figé en pilule pour tous les boutons. */
    --at-btn-font-weight: var(--atb-btn-weight, inherit);
    --at-btn-leading: var(--atb-leading-tight, 1.2);
    --at-btn-duration: 0.2s;

    /* ---- Jetons de THÈME (docs/themes.md) ----------------------------
       Repli = valeur du plugin : sans thème, rien ne change. L'arrondi passe
       par les jetons `default` / `scale-*` que le plugin lit lui-même dans
       ses classes .at-btn-radius-* — jamais par --at-btn-radius (cf. ci-dessus). */
    --at-btn-border: var(--atb-btn-border, 2px);
    --at-btn-radius-default: var(--atb-btn-radius, var(--atgf-radius-md, 0.375rem));
    --at-btn-radius-scale-sm: var(--atb-btn-radius-sm, var(--atgf-radius-sm, 0.25rem));
    --at-btn-radius-scale-md: var(--atb-btn-radius, var(--atgf-radius-md, 0.375rem));
    --at-btn-radius-scale-lg: var(--atb-btn-radius-lg, var(--atgf-radius-lg, 0.5rem));

    /* ---- Échelle des tailles ------------------------------------------
       Valeurs de custom.css, jeton par jeton. Les classes .at-btn-xs…xl du
       plugin ne bougent pas, elles piochent simplement ici. */
    --at-btn-size-xs-font: var(--atb-text-sm, 0.875rem);
    --at-btn-size-xs-py: var(--atb-space-1, 0.25rem);
    --at-btn-size-xs-px: var(--atb-space-3, 0.75rem);

    --at-btn-size-sm-font: var(--atb-text-sm, 0.875rem);
    --at-btn-size-sm-py: var(--atb-space-2, 0.5rem);
    --at-btn-size-sm-px: var(--atb-space-4, 1rem);

    --at-btn-size-md-font: var(--atb-text-base, 1rem);
    --at-btn-size-md-py: var(--atb-space-3, 0.75rem);
    --at-btn-size-md-px: var(--atb-space-6, 1.5rem);

    --at-btn-size-lg-font: var(--atb-text-xl, 1.25rem);
    --at-btn-size-lg-py: var(--atb-space-4, 1rem);
    --at-btn-size-lg-px: var(--atb-space-8, 2rem);

    --at-btn-size-xl-font: var(--atb-text-2xl, 1.5rem);
    --at-btn-size-xl-py: var(--atb-space-4, 1rem);
    --at-btn-size-xl-px: var(--atb-space-10, 2.5rem);

}

/* Rien d'autre. On ne pose JAMAIS `--at-btn-padding-*` ni `--at-btn-font-size`
   directement : cette feuille étant chargée après celle du plugin, elle
   écraserait les classes de taille (même spécificité, source postérieure).
   La base du plugin dérive déjà des jetons `md`, donc un bouton sans classe de
   taille prend nos valeurs md sans qu'on ait à le dire. */

/* Ces quatre propriétés ne sont posées QUE sous un thème (sans thème, .at-btn ne les
   déclare pas et le site hôte reste libre de les régler à spécificité égale). */
html[data-atb-theme]:not([data-atb-theme="classic"]) .at-btn {
    font-family: var(--atb-btn-font, inherit);
    text-transform: var(--atb-btn-transform, none);
    letter-spacing: var(--atb-btn-tracking, normal);
    box-shadow: var(--atb-btn-shadow, none);
}
