/* =============================================================================
   theme-ignea.css — habillage Ignea de la forge
   -----------------------------------------------------------------------------
   Le NOM DU FICHIER FAIT LE NOM DU THÈME : « ignea ». Il est posé par deploy.sh
   dans /srv/igneagit/data/forgejo/gitea/public/assets/css/ — $GITEA_CUSTOM vaut
   /data/gitea dans l'image officielle Forgejo — et sélectionné par défaut par
   [ui] DEFAULT_THEME de app.ini. Chacun garde la main : /user/settings/appearance
   permet de revenir à forgejo-auto.

   POURQUOI UN @import ET NON UNE COPIE DU THÈME DE BASE. Un thème Forgejo est un
   fichier autonome : il porte les 272 variables de couleur, la coloration
   syntaxique (.chroma) et quelques règles de composants. Le recopier pour n'en
   changer que les couleurs de marque, c'est se condamner à rater tout correctif
   et toute variable NOUVELLE d'une montée de version — et une variable manquante
   ne se voit pas, elle se lit comme un élément resté gris. On importe donc le
   thème clair officiel et on ne surcharge que ce qui porte la marque.

   POURQUOI LA RAMPE NEUTRE EST CALCULÉE ET NON CHOISIE À L'ŒIL. Forgejo bâtit
   toutes ses surfaces et ses textes sur une rampe neutre FROIDE (--zinc-*, teinte
   bleutée), qui jure sur un fond beige. Chaque cran est remplacé ici par un ton
   de l'axe #FFFCF5 → #2A0010 (fond de charte → encre Ignea) de MÊME LUMINANCE
   RELATIVE que l'original : la teinte change, aucun contraste ne bouge, et les
   rapports de lisibilité éprouvés par Forgejo sont conservés tels quels. C'est
   ce qui permet de réchauffer 200 variables sémantiques en n'en touchant que 18.

   CE QUI N'EST VOLONTAIREMENT PAS TOUCHÉ : rouge, vert, violet, orange, badges,
   diff, error/success/warning/info. Ces couleurs sont le LANGAGE de la forge —
   vert « ouvert », violet « fusionné », rouge « échec ». Les repeindre en
   bordeaux ferait une jolie page où l'on ne distingue plus un build en échec d'un
   bouton. La marque prend le châssis, pas la sémantique.

   L'OR NE PORTE JAMAIS DE TEXTE : #C9A96E sur le fond de charte donne 2,1:1,
   très en dessous du minimum lisible. Il ne sert qu'en filet.

   Jetons de marque : Aurora/Marque/palette.css (source : IgneaLogoLong.svg).
   ============================================================================= */

@import url("/assets/css/theme-forgejo-light.css");

:root {
    /* -------------------------------------------------------------------------
       1. Jetons de marque Ignea — recopiés de Marque/palette.css
       Aucune valeur inventée : tout ce qui suit se mappe sur ces jetons.
       ------------------------------------------------------------------------- */
    --ignea-encre: #2A0010;
    --ignea-bordeaux-900: #3D0017;
    --ignea-bordeaux-800: #4E001E;
    --ignea-bordeaux-700: #580022;
    --ignea-bordeaux-600: #6B0028; /* couleur de référence, charte GreenSpark */
    --ignea-bordeaux-500: #800033;
    --ignea-bordeaux-400: #90003C;
    --ignea-bordeaux-300: #A60048;
    --ignea-rose-fume: #A14068;
    --ignea-blush-300: #EABFCD;
    --ignea-blush-200: #F2DCE3;
    --ignea-blush-100: #F8EEF2;
    --ignea-or: #C9A96E;
    --ignea-fond: #FFFCF5;

    /* -------------------------------------------------------------------------
       2. Rampe neutre chaude — remplace --zinc-* à luminance égale
       Axe #FFFCF5 → #2A0010, interpolé en sRGB LINÉAIRE (un mélange en sRGB
       direct donne des mi-tons boueux), point choisi par bissection sur la
       luminance relative WCAG du cran d'origine. Le ton d'origine est en
       commentaire : il permet de recontrôler l'iso-luminance après une montée
       de version qui aurait changé la rampe de base.
       ------------------------------------------------------------------------- */
    --zinc-50: #FDFAF3;  /* #fafafa */
    --zinc-100: #F7F4ED; /* #f4f4f5 */
    --zinc-150: #EFECE5; /* #ececee */
    --zinc-200: #E7E4DE; /* #e4e4e7 */
    --zinc-250: #DFDCD6; /* #dcdce0 */
    --zinc-300: #D8D4CE; /* #d4d4d8 */
    --zinc-350: #BEBAB5; /* #babac1 */
    --zinc-400: #A6A19D; /* #a1a1aa */
    --zinc-450: #8F8986; /* #898992 */
    --zinc-500: #78706E; /* #71717a */
    --zinc-550: #69605F; /* #61616a */
    --zinc-600: #5B5050; /* #52525b */
    --zinc-650: #524646; /* #484850 */
    --zinc-700: #4A3C3E; /* #3f3f46 */
    --zinc-750: #402F32; /* #333338 */
    --zinc-800: #372126; /* #27272a */
    --zinc-850: #32171E; /* #1f1f23 */
    --zinc-900: #2E0D18; /* #18181b — porte --color-text */

    /* -------------------------------------------------------------------------
       3. Primaire : bordeaux de charte à la place de l'orange brûlé #c2410c
       Forgejo attend une rampe complète. Convention respectée : dark-N s'assombrit
       (survol, appui), light-N s'éclaircit (accents puis fonds). Le saut de clarté
       entre light-4 et light-5 est assumé : il tombe exactement sur la frontière
       d'usage, light-1 à light-4 servant d'ACCENTS (donc de texte et d'aplats
       colorés) et light-5 à light-7 de FONDS. Les tons intermédiaires qui
       manqueraient pour lisser la rampe n'existent pas dans la palette de marque,
       et on n'en invente pas.
       ------------------------------------------------------------------------- */
    --color-primary: var(--ignea-bordeaux-600);
    --color-primary-contrast: #FFFFFF; /* 12,4:1 sur le bordeaux */
    --color-primary-dark-1: var(--ignea-bordeaux-600);
    --color-primary-dark-2: var(--ignea-bordeaux-700); /* --color-primary-hover */
    --color-primary-dark-3: var(--ignea-bordeaux-800);
    --color-primary-dark-4: var(--ignea-bordeaux-900); /* --color-primary-active */
    --color-primary-dark-5: var(--ignea-bordeaux-900);
    --color-primary-dark-6: var(--ignea-encre);
    --color-primary-dark-7: var(--ignea-encre);
    --color-primary-light-1: var(--ignea-bordeaux-500); /* --color-accent */
    --color-primary-light-2: var(--ignea-bordeaux-400);
    --color-primary-light-3: var(--ignea-bordeaux-300);
    --color-primary-light-4: var(--ignea-rose-fume);    /* --color-highlight-fg */
    --color-primary-light-5: var(--ignea-blush-300);    /* --color-small-accent */
    --color-primary-light-6: var(--ignea-blush-200);    /* --color-highlight-bg */
    --color-primary-light-7: var(--ignea-blush-100);

    /* Les alphas ne peuvent pas se composer par var() : la notation #RRGGBBAA
       exige la valeur littérale. Suffixes repris du thème de base. */
    --color-primary-alpha-10: #6B002819;
    --color-primary-alpha-20: #6B002833;
    --color-primary-alpha-30: #6B00284b;
    --color-primary-alpha-40: #6B002866;
    --color-primary-alpha-50: #6B002880;
    --color-primary-alpha-60: #6B002899;
    --color-primary-alpha-70: #6B0028b3;
    --color-primary-alpha-80: #6B0028cc;
    --color-primary-alpha-90: #6B0028e1;

    /* -------------------------------------------------------------------------
       4. Surfaces, textes, états d'interaction
       Le reste suit tout seul : --color-box-body, --color-nav-bg, --color-footer,
       --color-menu, --color-input-border, --color-secondary… sont définis dans le
       thème de base en var(--zinc-*), donc déjà réchauffés par le point 2.
       ------------------------------------------------------------------------- */
    --color-body: var(--ignea-fond); /* le beige est le FOND, jamais un aplat */
    --color-text-dark: var(--ignea-encre);

    /* Étiquettes de tickets, survol et appui : les seuls neutres écrits en dur
       dans le thème de base (donc hors rampe), réchauffés à luminance égale. */
    --color-label-bg: #CDCAC47b;
    --color-label-hover-bg: #CDCAC4a0;
    --color-label-active-bg: #CDCAC4ff;
    --color-label-bg-alt: #CDCAC4ff;
    --color-hover: #E7E4DEaa;
    --color-active: #E5E2DC;

    /* Sélection de texte : bordeaux plein plutôt que le bleu-gris d'acier du
       thème de base, qui est la dernière trace froide visible à l'écran. */
    --color-selection-bg: var(--ignea-bordeaux-500);
    --color-selection-fg: #FFFFFF;

    /* Le doré, en filet et en filet seulement. */
    --fancy-card-border: var(--ignea-or);
}

/* -----------------------------------------------------------------------------
   5. Filet doré sous la barre de navigation
   SEULE règle de ce fichier qui dépend d'un sélecteur du DOM Forgejo, et non
   d'une variable : la bordure de #navbar n'est pas thémable autrement. En
   box-shadow interne plutôt qu'en border, pour ne pas ajouter un pixel à la
   hauteur de la barre et décaler ce qui suit. Si Forgejo renomme #navbar, le
   filet disparaît — et rien d'autre.
   ----------------------------------------------------------------------------- */
#navbar {
    box-shadow: inset 0 -1px 0 var(--ignea-or);
}
