/**
 * @project: poesie
 * @version: 0.2.0
 * @encoding: UTF-8
 * @compliance: GDPR, EU-Accessibility, Data Sovereignty
 * @copyright: (c) 2025-2026 kwargs SRL
 * @description: Design tokens, 8 couleurs + assignation des rôles.
 */

/* ── POESIE : PALETTE ─────────────────────────────────────────── */
/*                                                                  */
/*  SEUL FICHIER À MODIFIER pour changer l'identité visuelle.      */
/*                                                                  */
/*  1. Remplacer les 8 hex ci-dessous par la nouvelle palette.     */
/*  2. Mettre à jour les valeurs RGB correspondantes.              */
/*  3. Adapter l'assignation des rôles si nécessaire.              */
/*  4. C'est tout, colors.css fait le reste automatiquement.      */
/*                                                                  */
/*  Ce fichier porte aussi les ÉCHELLES du système (§3 à §10) :    */
/*  rayons, densité, espacement, rythme, ombres, durées, plans,    */
/*  largeurs. Un produit hérite de tout ce qu'il ne redéclare pas.  */
/*  Cadrage et motifs : SPEC.md. Garde-fou : poesie.frontend.scales */
/*                                                                  */
/* ─────────────────────────────────────────────────────────────── */

:root {

    /* ── 1. Les 8 couleurs ──────────────────────────────────────── */

    --ks-linen:   #faf6f0;     /* lin, clair, doux                  */
    --ks-ink:     #1e2433;     /* encre, profond, sérieux            */
    --ks-copper:  #b5651d;     /* cuivre, chaud, distinctif          */
    --ks-slate:   #6c7a89;     /* ardoise, neutre, sobre             */
    --ks-fern:    #3d8b5e;     /* fougère, frais, naturel            */
    --ks-ember:   #c1403d;     /* braise, vif, urgent                */
    --ks-honey:   #e09f3e;     /* miel, lumineux, chaleureux         */
    --ks-steel:   #4d8399;     /* acier, calme, informatif           */

    /* ── 2. Assignation des rôles ───────────────────────────────── */
    /*                                                                */
    /*  surface-light → fond de page clair, cartes, modales           */
    /*  surface-dark  → fond de page sombre, texte en mode clair      */
    /*  primary       → action principale, boutons d'appel            */
    /*  secondary     → actions secondaires, éléments discrets        */
    /*  success       → confirmations, validations, badges positifs   */
    /*  danger        → erreurs, suppressions, alertes critiques      */
    /*  warning       → avertissements, actions à confirmer           */
    /*  info          → messages informatifs, badges neutres          */
    /*                                                                */

    --ks-surface-light: var(--ks-linen);
    --ks-surface-dark:  var(--ks-ink);

    --ks-primary:       var(--ks-copper);
    --ks-primary-rgb:   181, 101, 29;

    --ks-secondary:     var(--ks-slate);
    --ks-secondary-rgb: 108, 122, 137;

    --ks-success:       var(--ks-fern);
    --ks-success-rgb:   61, 139, 94;

    --ks-danger:        var(--ks-ember);
    --ks-danger-rgb:    193, 64, 61;

    --ks-warning:       var(--ks-honey);
    --ks-warning-rgb:   224, 159, 62;

    --ks-info:          var(--ks-steel);
    --ks-info-rgb:      77, 131, 153;

    /* ── 3. Rayons ────────────────────────────────────────────────── */
    /*                                                                */
    /*  Le rayon de base appartient au produit ; les variantes en      */
    /*  dérivent par rapport, et non par valeur absolue. Un produit    */
    /*  angulaire le reste donc partout, ce qu'un jeu de constantes    */
    /*  ne garantirait pas.                                            */
    /*                                                                */
    /*  `xs` vaut la moitié de `sm`. Il vient d'une mesure : hors du   */
    /*  socle, trois produits écrivaient un arrondi plus petit que     */
    /*  `sm` faute d'un cran pour le porter (2px sur une case de 12,   */
    /*  3px sur une barre). L'échelle s'arrêtait au-dessus du besoin.  */
    /*                                                                */

    --ks-border-radius:        0;    /* 0 = angulaire, 0.375rem = Bootstrap défaut */
    --ks-border-radius-xs:     calc(var(--ks-border-radius) * 0.3125);
    --ks-border-radius-sm:     calc(var(--ks-border-radius) * 0.625);
    --ks-border-radius-lg:     calc(var(--ks-border-radius) * 1.5);
    --ks-border-radius-pill:   50rem;
    --ks-border-radius-circle: 50%;

    /* ── 4. Densité ───────────────────────────────────────────────── */
    /*                                                                */
    /*  La densité est un réglage, pas une seconde charte : les deux   */
    /*  références partagent la même palette et ne diffèrent que par   */
    /*  la base typographique.                                         */
    /*                                                                */
    /*  Densité applicative (back-office), sur choix du produit :      */
    /*    base 0.875rem, sm 0.8125rem, xs 0.75rem, lg 1rem             */
    /*                                                                */

    --ks-font-size-base: 1rem;
    --ks-font-size-sm:   0.875rem;
    --ks-font-size-xs:   0.75rem;
    --ks-font-size-lg:   1.25rem;

    /*  Ratios de titres, ceux de Bootstrap, déclarés pour cesser      */
    /*  d'être implicites. Le jeu compact de la densité applicative    */
    /*  (1.6125 / 1.5 / 1.3125 / 1.125 / 1 / 0.875) accompagnera le    */
    /*  squelette de back-office, pas ce lot.                          */

    --ks-ratio-h1: 2.5;
    --ks-ratio-h2: 2;
    --ks-ratio-h3: 1.75;
    --ks-ratio-h4: 1.5;
    --ks-ratio-h5: 1.25;
    --ks-ratio-h6: 1;

    /* ── 5. Espacement, dans un composant ─────────────────────────── */
    /*                                                                */
    /*  Onze crans, à l'usage des composants du socle.                 */
    /*                                                                */
    /*  Les utilitaires Bootstrap (.m-*, .p-*) ne sont PAS redéfinis : */
    /*  leur cran 5 vaut 3rem chez Bootstrap et 2rem ici. Les aligner  */
    /*  ferait mentir la documentation de Bootstrap pour quiconque     */
    /*  écrit un gabarit, et le socle vendore une feuille compilée.    */
    /*                                                                */

    --ks-space-0:  0;
    --ks-space-1:  0.25rem;
    --ks-space-2:  0.5rem;
    --ks-space-3:  1rem;
    --ks-space-4:  1.5rem;
    --ks-space-5:  2rem;
    --ks-space-6:  2.5rem;
    --ks-space-7:  3rem;
    --ks-space-8:  3.5rem;
    --ks-space-9:  4rem;
    --ks-space-10: 4.5rem;

    /* ── 6. Rythme, entre les sections ────────────────────────────── */
    /*                                                                */
    /*  Échelle distincte de la précédente : l'espacement DANS un      */
    /*  composant et le rythme ENTRE les sections ne se règlent pas    */
    /*  au même pas. Les classes .content-space-* lisent ces jetons.   */
    /*                                                                */

    --ks-rhythm-1: 3rem;
    --ks-rhythm-2: 5rem;
    --ks-rhythm-3: 7.5rem;
    --ks-rhythm-4: 10rem;
    --ks-rhythm-5: 12.5rem;

    /* ── 7. Ombres ────────────────────────────────────────────────── */
    /*                                                                */
    /*  Le survol se signale par l'élévation, pas par un changement    */
    /*  de teinte : c'est ce qui distingue --ks-shadow-hover d'une     */
    /*  ombre de repos plus marquée.                                   */
    /*                                                                */
    /*  La couleur est un jeton à part, pour qu'une maison sombre ne   */
    /*  subisse pas une ombre calculée pour un fond clair.             */
    /*                                                                */

    --ks-shadow-color-rgb: var(--ks-secondary-rgb);

    --ks-shadow-sm:    0 0.375rem 0.75rem rgba(var(--ks-shadow-color-rgb), 0.075);
    --ks-shadow:       0 0.375rem 1.5rem 0 rgba(var(--ks-shadow-color-rgb), 0.125);
    --ks-shadow-lg:    0 0.6125rem 2.5rem 0.6125rem rgba(var(--ks-shadow-color-rgb), 0.175);
    --ks-shadow-xl:    0 3.75rem 5rem 0 rgba(var(--ks-shadow-color-rgb), 0.3);
    --ks-shadow-hover: 0 0.1875rem 0.75rem rgba(var(--ks-shadow-color-rgb), 0.25);

    /* ── 8. Durées ────────────────────────────────────────────────── */
    /*                                                                */
    /*  Les noms disent la vitesse. La référence nomme ses trois       */
    /*  durées sm / base / md, ce qui laisse croire que md est         */
    /*  intermédiaire alors qu'elle est la plus longue.                */
    /*                                                                */

    --ks-duration-fast: 0.2s;   /* état d'un contrôle : survol, focus       */
    --ks-duration:      0.3s;   /* ouverture et fermeture d'un bloc         */
    --ks-duration-slow: 0.4s;   /* déplacement d'un panneau, barre latérale */
    --ks-duration-spin: 0.6s;   /* période d'une rotation continue (chargement) */
    --ks-easing:        ease-in-out;   /* unique pour tout changement d'état  */
    --ks-easing-linear: linear;        /* mouvement continu, sans arrivée     */

    /* ── 8 bis. Thème sombre : plancher de clarté ─────────────────── */
    /*                                                                */
    /*  Les recettes du thème sombre éclaircissent chaque rôle d'un   */
    /*  pourcentage fixe vers le blanc et y posent l'encre en texte.  */
    /*  Un pourcentage fixe suppose une mi-teinte ; un primaire       */
    /*  profond (l'espresso de rylm, L = 0,23) rend un fond que        */
    /*  l'encre ne lit pas. Chaque couleur dérivée du thème sombre    */
    /*  est donc relevée à cette clarté OKLCH quand elle est en        */
    /*  dessous, teinte et chrominance gardées (colors.css, bloc      */
    /*  @supports). 0,64 est la clarté minimale que l'encre la plus   */
    /*  claire de la maison, celle du socle (L = 0,26), lit à 4,5:1 ; */
    /*  mesuré sur les neuf palettes (SPEC §5.9, 08/09/2026). Un      */
    /*  produit à l'encre plus sombre peut l'abaisser dans sa palette, */
    /*  le mécanisme de contraste lit la valeur déclarée.             */
    /*                                                                */

    --ks-dark-floor: 0.64;

    /* ── 9. Plans ─────────────────────────────────────────────────── */
    /*                                                                */
    /*  Nommés par intention, jamais par valeur.                        */
    /*                                                                */

    --ks-z-under:   -1;   /* décor passant sous le contenu          */
    --ks-z-base:     0;   /* plan du contenu                        */
    --ks-z-raised:   1;   /* élément détaché de son fond            */
    --ks-z-overlay:  2;   /* voile local                            */
    --ks-z-float:    3;   /* contrôle flottant                      */
    --ks-z-field:    4;   /* dans un input-group : au-dessus du bouton (2) */
                          /* et de l'état valide (3), sous le champ        */
                          /* focalisé (5). Valeurs internes à Bootstrap.   */
    --ks-z-aside:   99;   /* barre latérale et son voile            */
    --ks-z-top:    999;   /* plafond du socle                       */

    /*  Alignés sur la pile de Bootstrap 5.3.8, qui ne les expose PAS  */
    /*  en :root (ils vivent dans la règle de chaque composant). À     */
    /*  resynchroniser à chaque montée de Bootstrap.                    */

    --ks-z-sticky:   1020;   /* .sticky-top   */
    --ks-z-fixed:    1030;   /* .fixed-top    */
    --ks-z-backdrop: 1050;   /* --bs-backdrop-zindex */
    --ks-z-modal:    1055;   /* --bs-modal-zindex    */

    /* ── 10. Largeurs de conteneur ────────────────────────────────── */
    /*                                                                */
    /*  Déclarées, NON appliquées : élargir .container changerait la   */
    /*  mise en page de toutes les pages des huit produits, ce qu'un   */
    /*  lot de règles n'a pas à faire. Le jeton existe pour que        */
    /*  l'élargissement, le jour où un produit le veut, se fasse en    */
    /*  une ligne et à la bonne valeur.                                 */
    /*                                                                */

    --ks-container-xl:  1320px;   /* Bootstrap : 1140px */
    --ks-container-xxl: 1480px;   /* Bootstrap : 1320px */

    /* ── 11. Squelette applicatif ─────────────────────────────────── */
    /*                                                                */
    /*  Deux largeurs de barre laterale, deployee et reduite. La       */
    /*  reduite doit loger une icone et son aire de clic : la          */
    /*  descendre sous 3rem rend la cible tactile trop etroite.        */
    /*                                                                */

    --ks-sidebar-width:      16rem;
    --ks-sidebar-mini-width: 4.5rem;
    --ks-app-header-height:  4rem;
}
