/* Wiki — mise en page du front.
   Volontairement neutre et pilotee par des variables : le module doit
   s'inserer dans n'importe quel theme sans lui imposer sa palette.
   Un theme n'a qu'a redefinir les --wiki-* pour se l'approprier. */

.wiki {
    --wiki-encre: currentColor;
    --wiki-doux: color-mix(in srgb, currentColor 62%, transparent);
    --wiki-trait: color-mix(in srgb, currentColor 16%, transparent);
    --wiki-surface: color-mix(in srgb, currentColor 5%, transparent);
    --wiki-accent: #4f46e5;
    --wiki-astuce: #0f9d6b;
    --wiki-attention: #b45309;
    --wiki-info: #2563eb;
    --wiki-mesure: 68ch;

    max-width: 1180px;
    margin: 0 auto;
    padding: 2rem 1.25rem 4rem;
}

/* --- Sommaire general ------------------------------------------------- */
.wiki-entete { margin-bottom: 2rem; }
.wiki-entete__resume { color: var(--wiki-doux); margin-top: .25rem; }

.wiki-grille {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1rem;
}

.wiki-carte {
    border: 1px solid var(--wiki-trait);
    border-radius: 10px;
    padding: 1.1rem 1.25rem;
    background: var(--wiki-surface);
}
.wiki-carte__titre { font-size: 1.05rem; margin: 0 0 .35rem; }
.wiki-carte__titre a { text-decoration: none; }
.wiki-carte__titre a:hover { text-decoration: underline; }
.wiki-carte__icone { margin-right: .35rem; }
.wiki-carte__resume { margin: 0; font-size: .92rem; color: var(--wiki-doux); }
.wiki-carte__enfants { margin: .7rem 0 0; padding-left: 1.1rem; font-size: .9rem; }
.wiki-carte__enfants li { margin-bottom: .2rem; }
.wiki-vide { color: var(--wiki-doux); }

/* --- Page : navigation | corps | sommaire ----------------------------- */
.wiki-page {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr) 200px;
    gap: 2.5rem;
    align-items: start;
}
@media (max-width: 1080px) {
    .wiki-page { grid-template-columns: 220px minmax(0, 1fr); }
    .wiki-sommaire { display: none; }
}
@media (max-width: 760px) {
    .wiki-page { grid-template-columns: 1fr; gap: 1.5rem; }
    .wiki-nav { position: static; }
}

.wiki-nav {
    position: sticky;
    top: 1.5rem;
    font-size: .93rem;
    border-right: 1px solid var(--wiki-trait);
    padding-right: 1rem;
}
.wiki-nav__accueil {
    display: inline-block;
    margin-bottom: .8rem;
    font-weight: 600;
    text-decoration: none;
}
.wiki-nav__liste, .wiki-nav__enfants { list-style: none; margin: 0; padding: 0; }
.wiki-nav__enfants { margin: .25rem 0 .6rem .8rem; }
.wiki-nav__liste > li { margin-bottom: .45rem; }
.wiki-nav__lien {
    display: block;
    padding: .28rem .5rem;
    border-radius: 6px;
    text-decoration: none;
    color: inherit;
}
.wiki-nav__lien:hover { background: var(--wiki-surface); }
.wiki-nav__lien.est-actif {
    background: color-mix(in srgb, var(--wiki-accent) 14%, transparent);
    color: var(--wiki-accent);
    font-weight: 600;
}

.wiki-corps { min-width: 0; }
.wiki-corps__titre { margin: 0 0 .3rem; }
.wiki-corps__resume { color: var(--wiki-doux); margin: 0 0 1.5rem; }
.wiki-corps__maj {
    margin-top: 2.5rem;
    font-size: .82rem;
    color: var(--wiki-doux);
    border-top: 1px solid var(--wiki-trait);
    padding-top: .8rem;
}

.wiki-contenu { max-width: var(--wiki-mesure); line-height: 1.7; }
.wiki-contenu h2 {
    margin: 2.2rem 0 .6rem;
    padding-top: .8rem;
    border-top: 1px solid var(--wiki-trait);
    scroll-margin-top: 1.5rem;
}
.wiki-contenu h3 { margin: 1.6rem 0 .4rem; }
.wiki-contenu img { max-width: 100%; height: auto; }
.wiki-contenu pre {
    overflow-x: auto;
    padding: .9rem 1rem;
    border-radius: 8px;
    background: var(--wiki-surface);
    border: 1px solid var(--wiki-trait);
}
.wiki-contenu table { width: 100%; border-collapse: collapse; }
.wiki-contenu th, .wiki-contenu td {
    text-align: left;
    padding: .5rem .7rem;
    border-bottom: 1px solid var(--wiki-trait);
}

/* --- Sommaire des sections -------------------------------------------- */
.wiki-sommaire { position: sticky; top: 1.5rem; font-size: .87rem; }
.wiki-sommaire__titre {
    margin: 0 0 .5rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .72rem;
    color: var(--wiki-doux);
}
.wiki-sommaire ul { list-style: none; margin: 0; padding: 0; }
.wiki-sommaire li { margin-bottom: .35rem; }
.wiki-sommaire a { text-decoration: none; color: var(--wiki-doux); }
.wiki-sommaire a:hover { color: var(--wiki-encre); }

/* --- Encadres ---------------------------------------------------------- */
.wiki-callout {
    display: flex;
    gap: .75rem;
    margin: 1.1rem 0;
    padding: .85rem 1rem;
    border-radius: 8px;
    border: 1px solid;
    font-size: .95rem;
}
.wiki-callout__icone { flex: none; line-height: 1.5; }
.wiki-callout__corps > :first-child { margin-top: 0; }
.wiki-callout__corps > :last-child { margin-bottom: 0; }

.wiki-callout--astuce {
    border-color: color-mix(in srgb, var(--wiki-astuce) 40%, transparent);
    background: color-mix(in srgb, var(--wiki-astuce) 9%, transparent);
}
.wiki-callout--attention {
    border-color: color-mix(in srgb, var(--wiki-attention) 40%, transparent);
    background: color-mix(in srgb, var(--wiki-attention) 9%, transparent);
}
.wiki-callout--info {
    border-color: color-mix(in srgb, var(--wiki-info) 40%, transparent);
    background: color-mix(in srgb, var(--wiki-info) 9%, transparent);
}

/* --- Badge de page ------------------------------------------------------ */
.wiki-badge {
    display: inline-block;
    vertical-align: middle;
    margin-left: .6rem;
    padding: .15em .55em;
    border: 1px solid color-mix(in srgb, var(--wiki-accent) 45%, transparent);
    border-radius: 999px;
    background: color-mix(in srgb, var(--wiki-accent) 10%, transparent);
    color: var(--wiki-accent);
    font-size: .5em;
    font-weight: 600;
    letter-spacing: .04em;
    white-space: nowrap;
}

/* Meme role a l interieur d un titre de section. */
.wiki-contenu h2 small {
    margin-left: .5rem;
    padding: .15em .5em;
    border: 1px solid color-mix(in srgb, var(--wiki-accent) 40%, transparent);
    border-radius: 999px;
    color: var(--wiki-accent);
    font-size: .62em;
    font-weight: 600;
    vertical-align: middle;
}

/* --- Listes de definitions ---------------------------------------------- */
/* Le gros du contenu documentaire : un terme, ce qu il fait. En colonnes
   quand la place le permet, empilees des que la mesure devient trop etroite. */
/* Multi-colonnes plutot que grille : une grille placerait le terme et sa
   definition dans deux cellules independantes, et une colonne etroite finirait
   par les separer. Le flux multi-colonnes, lui, garde la paire solidaire. */
.wiki-contenu dl {
    columns: 2 18rem;
    column-gap: 2rem;
    margin: 1.15rem 0;
}
.wiki-contenu dt {
    margin-top: .8rem;
    font-weight: 600;
    color: var(--wiki-encre);
    break-after: avoid;
}
.wiki-contenu dd {
    margin: .15rem 0 0;
    color: var(--wiki-doux);
    font-size: .93rem;
    break-before: avoid;
    break-inside: avoid;
}
.wiki-contenu dt:first-child { margin-top: 0; }

/* --- Commandes ---------------------------------------------------------- */
.wiki-commande {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .25rem .75rem;
    margin: .3rem 0;
    padding: .5rem .85rem;
    border: 1px solid var(--wiki-trait);
    border-left: 3px solid var(--wiki-accent);
    border-radius: 6px;
    background: var(--wiki-surface);
}
.wiki-commande code {
    color: var(--wiki-accent);
    font-size: .9rem;
    white-space: nowrap;
}
.wiki-commande span { color: var(--wiki-doux); font-size: .9rem; }

/* --- Etiquettes --------------------------------------------------------- */
.wiki-etiquettes {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin: .9rem 0;
    padding: 0;
    list-style: none;
}
.wiki-etiquettes li {
    padding: .2rem .7rem;
    border: 1px solid color-mix(in srgb, var(--wiki-accent) 25%, transparent);
    border-radius: 999px;
    background: color-mix(in srgb, var(--wiki-accent) 8%, transparent);
    font-size: .84rem;
    color: var(--wiki-doux);
}

/* --- Tableaux ----------------------------------------------------------- */
/* Un tableau large defile dans son propre cadre : le corps de page ne doit
   jamais partir en travers sur telephone. */
.wiki-contenu table {
    display: block;
    overflow-x: auto;
    width: 100%;
    margin: 1.15rem 0;
    border-collapse: collapse;
    font-size: .92rem;
}
.wiki-contenu th,
.wiki-contenu td {
    padding: .5rem .75rem;
    border-bottom: 1px solid var(--wiki-trait);
    text-align: left;
}
.wiki-contenu th { color: var(--wiki-doux); font-weight: 600; }
