/**
 * prism-jpsymfony.css — Thème de coloration syntaxique « Revue technique » (Axe 5).
 * Remplace le thème Prism par défaut (CDN) : couleurs sur tokens, contrastes
 * AA (≥ 4.5:1) en clair ET en sombre — règle les 246 violations color-contrast
 * relevées par axe-core sur les articles.
 *
 * Tokens code dédiés définis ici (clair dans :root, sombre sous
 * [data-theme="dark"], même convention qu'editorial.css §1bis).
 * Zéro !important (doctrine du chantier).
 */

:root {
    --code-bg:          #f6f4f0;  /* papier code, un cran sous l'ivoire */
    --code-ink:         #292524;  /* 12.6:1 */
    --code-comment:     #6d6862;  /* 4.8:1, italique */
    --code-punct:       #57534e;  /* 7.0:1 */
    --code-keyword:     #0f766e;  /* sapin — 5.0:1 */
    --code-string:      #166534;  /* 6.6:1 */
    --code-number:      #92400e;  /* 6.5:1 */
    --code-function:    #7e22ce;  /* 6.2:1 */
    --code-class:       #1d4ed8;  /* 6.1:1 */
    --code-property:    #be185d;  /* 5.5:1 */
    --code-inserted-bg: #dcfce7;
    --code-deleted-bg:  #fee2e2;
    --code-highlight:   rgba(15, 118, 110, .08);
}

[data-theme="dark"] {
    --code-bg:          #1e1b18;  /* un cran sous le papier sombre */
    --code-ink:         #e7e5e4;
    --code-comment:     #a8a29e;
    --code-punct:       #d6d3d1;
    --code-keyword:     #2dd4bf;  /* sapin éclairci — 9.1:1 */
    --code-string:      #86efac;
    --code-number:      #fbbf24;
    --code-function:    #c4b5fd;
    --code-class:       #93c5fd;
    --code-property:    #f9a8d4;
    --code-inserted-bg: #14532d;
    --code-deleted-bg:  #7f1d1d;
    --code-highlight:   rgba(45, 212, 191, .08);
}

/* ============================================================
   1. CONTENEURS — pre et code inline
   (typo/bordures posées par editorial.css §11 ; ici : couleurs)
   ============================================================ */
pre[class*="language-"],
.post-content pre {
    background: var(--code-bg);
    color: var(--code-ink);
    text-shadow: none;
    overflow-x: auto;
}

code[class*="language-"],
pre[class*="language-"] code {
    color: var(--code-ink);
    text-shadow: none;
    background: none;
}

/* Code inline dans le texte */
.post-content :not(pre) > code {
    background: var(--code-bg);
    color: var(--code-ink);
    border: 1px solid var(--line);
    border-radius: var(--radius-s);
    padding: 1px 6px;
}

/* Vieux pre à styles inline (fond clair codé en dur dans le contenu) :
   forcer une encre sombre lisible quel que soit le mode */
.post-content pre[style] {
    color: #292524;
}

/* Sélection dans le code */
pre[class*="language-"] ::selection,
code[class*="language-"] ::selection {
    background: var(--accent-soft);
    text-shadow: none;
}

/* Scrollbar horizontale fine (blocs larges) */
.post-content pre {
    scrollbar-width: thin;
    scrollbar-color: var(--line) transparent;
}

.post-content pre::-webkit-scrollbar {
    height: 8px;
}

.post-content pre::-webkit-scrollbar-thumb {
    background: var(--line);
    border-radius: var(--radius-pill);
}

.post-content pre::-webkit-scrollbar-track {
    background: transparent;
}

/* ============================================================
   2. TOKENS PRISM
   ============================================================ */
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
    color: var(--code-comment);
    font-style: italic;
}

.token.punctuation {
    color: var(--code-punct);
}

.token.namespace {
    opacity: .8;
}

.token.keyword,
.token.atrule,
.token.rule,
.token.important,
.token.variable {
    color: var(--code-keyword);
}

.token.string,
.token.char,
.token.attr-value,
.token.regex,
.token.url {
    color: var(--code-string);
}

.token.number,
.token.boolean,
.token.constant,
.token.symbol,
.token.entity {
    color: var(--code-number);
}

.token.function,
.token.function-name,
.token.attr-name,
.token.selector {
    color: var(--code-function);
}

.token.class-name,
.token.builtin,
.token.tag {
    color: var(--code-class);
}

.token.property,
.token.operator,
.token.deleted-sign {
    color: var(--code-property);
}

.token.bold,
.token.important {
    font-weight: 600;
}

.token.italic {
    font-style: italic;
}

.token.inserted {
    background: var(--code-inserted-bg);
    color: inherit;
}

.token.deleted {
    background: var(--code-deleted-bg);
    color: inherit;
}

/* NB : le layout des blocs outillés (.code-block, badge langage, bouton
   copier) vit dans editorial.css §11bis — ce fichier est chargé AVANT
   editorial et ne porte que la couleur. */
