« MediaWiki:Vaulttec.css » : différence entre les versions

Kims (discussion | contributions)
Aucun résumé des modifications
Kims (discussion | contributions)
Aucun résumé des modifications
Balise : Révoqué
Ligne 1 : Ligne 1 :
/*
/**
  * MediaWiki:Vaulttec.css — v28
* VaultTec skin — skin.less
  * Chargé uniquement pour les utilisateurs du skin VaultTec.
  * MediaWiki 1.39+  |  Vector 2022 alternative
*
* Palette : phosphore vert sur fond noir profond.
  * Typo    : IBM Plex Mono (chrome) + Instrument Serif (titres) + Crimson Pro (corps).
  */
  */
 
/* ============================================================
// Polices chargées via Google Fonts CDN — voir templates/skin.mustache
  1. VARIABLES
 
  ============================================================ */
// ============================================================
:root {
// TOKENS
  --background-color-dp-00: #06100b;
// ============================================================
  --background-color-dp-01: #0a1a0f;
@bg:           #06100b;
  --background-color-dp-02: #0f2015;
@bg-panel:     #0c1812;
  --background-color-dp-03: #11251a;
@bg-elevated: #111f19;
  --background-color-dp-04: #142b1e;
@bg-infobox:   #0f1c15;
  --background-color-dp-06: #173122;
@phosphor:     #7dff9c;
  --background-color-dp-08: #1a3727;
@ph-dim:       #4ab06a;
  --background-color-dp-12: #1e3f2c;
@ph-faint:    rgba(125, 255, 156, 0.10);
  --background-color-dp-16: #214531;
@ph-border:   rgba(125, 255, 156, 0.15);
  --background-color-dp-24: #254c36;
@ph-border2:   rgba(125, 255, 156, 0.35);
  --background-img:        none;
@amber:       #f5c84a;
  --background-main:       transparent;
@amber-faint: rgba(245, 200, 74, 0.12);
  --box-background-color:  rgba(12, 24, 18, 0.85);
@danger:       #ff5e5e;
  --box-shadow:             0 0 10px rgba(125, 255, 156, 0.12);
@text:        #cce8d4;
  --color-base:             #cce8d4;
@text-dim:     #7aaa88;
  --color-warning:         #f5c84a;
@text-muted#4a6e55;
  --color-link:             #4ab06a;
@border:      rgba(125, 255, 156, 0.13);
   --color-link-visited:    #357a4d;
 
   --border-color-base:     rgba(125, 255, 156, 0.15);
@font-mono:    'IBM Plex Mono', 'Courier New', monospace;
@font-serif:  'Instrument Serif', Georgia, serif;
@font-body:   'Crimson Pro', Georgia, serif;
 
@header-h:    54px;
@tab-h:        44px;
@sidebar-w:   220px;
 
// ============================================================
// Z-INDEX SCALE — référence (ne pas modifier sans coordination)
// ============================================================
//  9999  .vt-scanlines          (effet CRT, top layer)
//  9998  .vt-vignette            (effet CRT)
//  1200  #vt-scroll-top         (bouton remonter)
//  1100  .vt-header              (sticky)
//  1099  .ve-ui-toolbar          (sticky sous header, depuis ve-overrides.less)
//  1001  .vt-sidebar             (drawer mobile, au-dessus de l'overlay)
//   999  .vt-drawer-overlay      (overlay drawer mobile, capture les clics)
//  950  .vt-toc-sidebar        (desktop > 1200px)
//   800  .vt-toc-sidebar        (mobile/tablet ≤ 1200px)
//  500  .vt-page-tabs-wrap     (sticky tabs mobile)
//  500  .vt-page-tabs          (sticky tabs desktop, sous le header)
//    2  .vt-content-row        (contexte d'empilement local)
//    1  .vt-scroll-arrow
//    0 .vt-watermark
 
// ============================================================
// RESET & BASE
// ============================================================
* {
box-sizing: border-box;
}
}
 
/* ============================================================
html,
  2. BODY & CONTAINERS
body {
  ============================================================ */
background: @bg;
body { background: #06100b !important; background-image: none !important; }
color: @text;
.mw-page-container { background: transparent !important; border: none !important; max-width: 100% !important; padding: 0 !important; }
font-family: @font-body;
font-size: 16px;
/* ============================================================
line-height: 1.5;
  3. LAYOUT
margin: 0;
  ============================================================ */
padding: 0;
.vt-page-container { display: flex !important; width: 100% !important; align-items: flex-start !important; min-height: calc(100vh - 54px) !important; }
.vt-sidebar, #mw-panel { width: 220px !important; flex-shrink: 0 !important; }
.vt-content-container, #content { flex: 1 1 auto !important; min-width: 0 !important; width: 0 !important; }
#bodyContent { max-width: none !important; width: 100% !important; padding: 28px 36px 60px !important; }
/* ============================================================
  4. TOC — rétractable, replié par défaut
  ============================================================ */
#mw-content-text .toc, #mw-content-text #toc {
  float: none !important; clear: both !important; position: static !important;
  width: fit-content !important; max-width: min(300px, 100%) !important; min-width: 160px !important;
  margin: 0 0 20px 0 !important; padding: 0 !important;
  background: rgba(6, 15, 11, 0.88) !important; border: 1px solid rgba(125, 255, 156, 0.15) !important;
  border-radius: 3px !important; overflow: hidden !important; box-sizing: border-box !important; font-size: 12px !important;
}
}
#mw-content-text .toctitle, #mw-content-text .toc .toctitle {
 
  display: flex !important; align-items: center !important; justify-content: space-between !important;
a {
  gap: 16px !important; padding: 8px 14px !important; cursor: pointer !important;
color: @ph-dim;
  user-select: none !important; margin: 0 !important; border-bottom: 1px solid transparent !important; white-space: nowrap !important;
text-decoration: none;
transition: color 0.15s;
 
&:hover {
color: @phosphor;
text-decoration: underline;
text-decoration-color: @ph-faint;
}
 
&:visited {
color: darken(@ph-dim, 10%);
}
}
}
#mw-content-text .toctitle h2, #mw-content-text .toc .toctitle h2 {
 
  font-family: 'IBM Plex Mono', monospace !important; font-size: 11px !important; font-weight: 500 !important;
// ============================================================
  text-transform: uppercase !important; letter-spacing: 0.12em !important;
// EFFETS CRT
  color: rgba(125, 255, 156, 0.65) !important; margin: 0 !important; padding: 0 !important; border: 0 !important;
// ============================================================
.vt-scanlines {
position: fixed;
inset: 0;
pointer-events: none;
background: repeating-linear-gradient(
0deg,
transparent 0px,
transparent 2px,
rgba(125, 255, 156, 0.018) 3px,
transparent 4px
);
z-index: 9999;
mix-blend-mode: screen;
}
}
#mw-content-text .toctitle::after { content: '▸'; color: rgba(125, 255, 156, 0.4); font-size: 9px; flex-shrink: 0; transition: transform 0.2s ease; }
 
#mw-content-text .toc:not(.vt-toc-collapsed) .toctitle { border-bottom-color: rgba(125, 255, 156, 0.12) !important; }
.vt-vignette {
#mw-content-text .toc:not(.vt-toc-collapsed) .toctitle::after { transform: rotate(90deg); }
position: fixed;
#mw-content-text .toc.vt-toc-collapsed > ul { display: none !important; }
inset: 0;
#mw-content-text .toc:not(.vt-toc-collapsed) > ul { display: block !important; padding: 6px 0 8px !important; margin: 0 !important; }
pointer-events: none;
#mw-content-text .toc ul { list-style: none !important; margin: 0 !important; padding: 0 !important; }
background: radial-gradient(ellipse at center, transparent 50%, rgba(0, 0, 0, 0.45) 100%);
#mw-content-text .toc li a {
z-index: 9998;
  display: flex !important; align-items: baseline !important; padding: 4px 14px !important;
  font-size: 11px !important; color: #7aaa88 !important; font-family: 'IBM Plex Mono', monospace !important;
  border-left: 2px solid transparent !important; transition: all 0.15s !important; text-decoration: none !important; white-space: nowrap !important;
}
}
#mw-content-text .toc li a:hover { color: #7dff9c !important; background: rgba(125, 255, 156, 0.08) !important; border-left-color: #4ab06a !important; }
 
#mw-content-text .toc li li a { padding-left: 24px !important; font-size: 10px !important; color: rgba(125, 255, 156, 0.4) !important; }
.vt-watermark {
.tocnumber { color: rgba(125, 255, 156, 0.35) !important; margin-right: 6px !important; }
position: fixed;
top: 50%;
/* ============================================================
left: 50%;
  5. INFOBOX
transform: translate(-50%, -50%);
  ============================================================ */
font-family: @font-serif;
.avt-infobox, .mw-parser-output .avt-infobox {
font-style: italic;
  width: 320px !important; max-width: 100% !important; float: right !important; clear: right !important;
font-size: 55vw;
  margin: 0 0 1em 1.5em !important; box-sizing: border-box !important;
color: @phosphor;
  background-color: rgba(12, 24, 18, 0.9) !important; border-color: rgba(125, 255, 156, 0.2) !important;
opacity: 0.015;
  box-shadow: 0 0 10px rgba(125, 255, 156, 0.12) !important; color: #cce8d4 !important;
z-index: 0;
user-select: none;
pointer-events: none;
line-height: 1;
}
}
@media screen and (max-width: 720px) {
 
  .avt-infobox, .mw-parser-output .avt-infobox { width: 100% !important; float: none !important; clear: both !important; margin: 0 0 1em 0 !important; }
// ============================================================
// HEADER
// ============================================================
.vt-header {
position: sticky;
top: 0;
z-index: 1100; // au-dessus de la sidebar drawer (1000)
height: @header-h;
display: flex;
align-items: center;
background: rgba(6, 16, 11, 0.92);
backdrop-filter: blur(14px);
border-bottom: 1px solid @border;
}
}
.avt-infobox-header { background-color: #142b1e !important; border-color: rgba(125, 255, 156, 0.2) !important; color: #7dff9c !important; }
 
.avt-infobox p.bloc, .avt-infobox caption { background-color: #142b1e !important; color: #7dff9c !important; }
// Logo
.avt-infobox th[scope="row"] { color: #4ab06a !important; }
.vt-logo {
.avt-infobox td { color: #cce8d4 !important; }
flex-shrink: 0;
.infobox-default-image { background-image: url("/images/1/11/Logo_wiki_LAVT_vert.png") !important; }
height: 100%;
.avt-infobox caption, .mw-parser-output .avt-infobox caption { display: table-caption !important; width: 100% !important; box-sizing: border-box !important; }
border-right: 1px solid @border;
padding: 0 20px;
/* ============================================================
  6. WIKITABLE
  ============================================================ */
.wikitable, .va-table, .mw-datatable { background-color: rgba(12, 24, 18, 0.85) !important; border-color: rgba(125, 255, 156, 0.15) !important; color: #cce8d4 !important; }
.wikitable > tr > th, .wikitable > * > tr > th, .va-table > tr > th, .va-table > * > tr > th { background-color: #0f2015 !important; color: #7dff9c !important; }
.wikitable > tr > td, .wikitable > * > tr > td, .va-table > tr > td, .va-table > * > tr > td { border-color: rgba(125, 255, 156, 0.1) !important; color: #cce8d4 !important; }
.wikitable tr:hover td { background-color: rgba(125, 255, 156, 0.06) !important; }
/* ============================================================
  7. PALETTES & NAVBOXES
  ============================================================ */
.palette { background-color: rgba(12, 24, 18, 0.85) !important; border-color: rgba(125, 255, 156, 0.15) !important; color: #cce8d4 !important; }
.palette-titre, .palette-banniere, .palette-section, .palette-groupe { background-color: #0f2015 !important; color: #7dff9c !important; }
.palette-pair { background-color: transparent !important; }
.va-infobox-title, .va-navbox-title { background: #0f2015 !important; color: #7dff9c !important; }
/* ============================================================
  8. BOÎTES GÉNÉRIQUES
  ============================================================ */
.avt-warn-banner, .avt-note-banner, .avt-section-banner, .avt-dropdown-box, .avt-genericbox,
.homepage-box, .spinoff-box, .avt-content-game-box { background-color: rgba(12, 24, 18, 0.85) !important; border-color: rgba(125, 255, 156, 0.15) !important; color: #cce8d4 !important; }
.avt-dropdown-box-title { background-color: #0f2015 !important; color: #7dff9c !important; }
/* Espacement réduit entre bandeaux d'avertissement consécutifs */
.mw-parser-output .avt-warn-banner,
.mw-parser-output .avt-note-banner,
.mw-parser-output .avt-section-banner {
  background-color: rgba(12, 24, 18, 0.85) !important;
  border: 1px solid rgba(125, 255, 156, 0.15) !important;
  color: #cce8d4 !important;
  margin-bottom: 4px !important;
  box-shadow: none !important;
}
}
 
/* ============================================================
.vt-logo-link {
  9. LIENS
display: flex;
  ============================================================ */
align-items: center;
.mw-parser-output a { color: #4ab06a; }
gap: 12px;
.mw-parser-output a:visited { color: #357a4d; }
height: 100%;
.mw-parser-output a:hover { color: #7dff9c; }
text-decoration: none !important;
.new, a.new { color: #ff5e5e !important; }
 
&:hover .vt-logo-mark {
/* ============================================================
background: rgba(125, 255, 156, 0.2);
  10. TOC VECTOR 2022
box-shadow: 0 0 12px rgba(125, 255, 156, 0.3);
  ============================================================ */
}
.sidebar-toc, .vector-toc { background-color: rgba(12, 24, 18, 0.85) !important; border-color: rgba(125, 255, 156, 0.15) !important; }
.vector-toc .vector-toc-link, .sidebar-toc .sidebar-toc-link { color: #4ab06a !important; }
.vector-toc .vector-toc-link:hover, .sidebar-toc .sidebar-toc-link:hover { color: #7dff9c !important; }
/* ============================================================
  11. PORTAILS & ACCUEIL
  ============================================================ */
.homepage-box-title, .portal-box-title, .spinoff-box-title, .canceled-box-title, .fangame-box-title,
.homepage-presentation-title, .homepage-participation-title, .homepage-articleday-title {
  color: #7dff9c !important; text-shadow: 0 0 8px rgba(125, 255, 156, 0.4) !important; border-color: rgba(125, 255, 156, 0.15) !important;
}
}
 
/* ============================================================
.vt-logo-mark {
  12. SITENOTICE
width: 32px;
  ============================================================ */
height: 32px;
.avt-sitenotice { background-color: rgba(12, 24, 18, 0.9) !important; border-color: rgba(125, 255, 156, 0.2) !important; color: #cce8d4 !important; }
border: 1.5px solid @phosphor;
display: flex;
/* ============================================================
align-items: center;
  13. RECHERCHE — dropdown miniatures (header)
justify-content: center;
  ============================================================ */
font-family: @font-serif;
.vt-search { position: relative !important; }
font-style: italic;
.vt-search-dropdown { display: none; position: absolute; top: calc(100% + 2px); left: 0; width: 420px; max-width: calc(100vw - 40px); background: rgba(8, 18, 12, 0.98); border: 1px solid rgba(125, 255, 156, 0.2); border-top: none; z-index: 500; box-shadow: 0 12px 32px rgba(0, 0, 0, 0.7); backdrop-filter: blur(8px); }
font-size: 18px;
.vt-search-item { display: flex; align-items: center; gap: 12px; padding: 9px 14px; color: #cce8d4; text-decoration: none !important; border-bottom: 1px solid rgba(125, 255, 156, 0.07); font-family: 'Crimson Pro', Georgia, serif; font-size: 15px; transition: background 0.1s; }
color: @phosphor;
.vt-search-item:hover { background: rgba(125, 255, 156, 0.07); color: #7dff9c !important; text-decoration: none !important; }
background: @ph-faint;
.vt-search-thumb { width: 40px; height: 40px; flex-shrink: 0; background: rgba(125, 255, 156, 0.05); border: 1px solid rgba(125, 255, 156, 0.12); display: flex; align-items: center; justify-content: center; overflow: hidden; }
flex-shrink: 0;
.vt-search-thumb img { width: 40px; height: 40px; object-fit: cover; display: block; }
transition: all 0.2s;
.vt-search-title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vt-search-title mark { background: none; color: #7dff9c; font-weight: 700; }
.vt-search-footer { display: block; padding: 10px 14px; font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.1em; color: rgba(125, 255, 156, 0.4); text-decoration: none !important; text-transform: uppercase; border-top: 1px dashed rgba(125, 255, 156, 0.1); background: rgba(125, 255, 156, 0.02); }
.vt-search-footer:hover { color: #7dff9c !important; background: rgba(125, 255, 156, 0.06); text-decoration: none !important; }
/* ============================================================
  14. BOUTON RECHERCHE — loupe
  ============================================================ */
.vt-search input.searchButton, .vt-search #searchButton { text-indent: -9999px !important; overflow: hidden !important; width: 42px !important; min-width: 42px !important; padding: 0 !important; flex-shrink: 0 !important; background-color: rgba(125, 255, 156, 0.10) !important; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%237dff9c' d='M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E") !important; background-repeat: no-repeat !important; background-position: center !important; background-size: 18px !important; border: 1px solid rgba(125, 255, 156, 0.35) !important; cursor: pointer !important; }
.vt-search input.searchButton:hover, .vt-search #searchButton:hover { background-color: rgba(125, 255, 156, 0.2) !important; }
/* ============================================================
  15. DARK MODE — icône parasite
  ============================================================ */
.ext-darkmode-link::before, .ext-darkmode-link:before { display: none !important; content: none !important; }
/* ============================================================
  16. CATÉGORIES
  ============================================================ */
#catlinks { background-color: rgba(12, 24, 18, 0.85) !important; border-top: 1px solid rgba(125, 255, 156, 0.15) !important; border-bottom: none !important; padding: 10px 36px !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 11px !important; letter-spacing: 0.1em !important; color: #7aaa88 !important; }
#catlinks a { color: #4ab06a !important; text-decoration: none !important; text-transform: uppercase !important; letter-spacing: 0.12em !important; font-size: 10px !important; }
#catlinks a:hover { color: #7dff9c !important; }
#mw-normal-catlinks > a:first-child { display: none !important; }
#catlinks ul { display: inline !important; list-style: none !important; margin: 0 !important; padding: 0 !important; }
#catlinks ul li { display: inline !important; }
#catlinks ul li::before { content: '·' !important; margin: 0 6px !important; color: rgba(125, 255, 156, 0.25) !important; }
#catlinks.catlinks-allhidden { display: none !important; }
/* ============================================================
  17. TITRES — structure MW 1.44+, sizing fluide responsive
  ============================================================ */
.mw-parser-output .mw-heading { display: flex !important; align-items: baseline !important; border-bottom: 1px solid rgba(125, 255, 156, 0.13) !important; margin: 22px 0 10px !important; padding-bottom: 6px !important; }
.mw-parser-output .mw-heading h2, .mw-parser-output > h2 { display: block !important; flex: 1 !important; border-bottom: 0 !important; margin: 0 !important; padding-bottom: 0 !important; font-family: 'Instrument Serif', Georgia, serif !important; font-style: italic !important; font-size: clamp(1.25rem, 1.05rem + 1vw, 1.625rem) !important; line-height: 1.25 !important; color: #cce8d4 !important; text-align: left !important; }
.mw-parser-output .mw-heading h3, .mw-parser-output > h3 { font-size: clamp(0.95rem, 0.85rem + 0.5vw, 1.1rem) !important; line-height: 1.3 !important; margin: 0 !important; flex: 1 !important; }
.mw-parser-output .mw-heading h4, .mw-parser-output > h4 { font-size: clamp(0.875rem, 0.8rem + 0.3vw, 1rem) !important; line-height: 1.3 !important; margin: 0 !important; flex: 1 !important; }
.mw-parser-output .mw-heading h5, .mw-parser-output > h5, .mw-parser-output .mw-heading h6, .mw-parser-output > h6 { font-size: 0.9rem !important; line-height: 1.3 !important; margin: 0 !important; flex: 1 !important; }
.mw-parser-output .mw-heading .mw-editsection { flex-shrink: 0 !important; margin-left: 12px !important; }
.mw-parser-output .mw-heading-3, .mw-parser-output .mw-heading-4, .mw-parser-output .mw-heading-5, .mw-parser-output .mw-heading-6 { margin: 16px 0 8px !important; padding-bottom: 4px !important; }
.mw-parser-output .mw-heading + .mw-heading { margin-top: 6px !important; }
/* ============================================================
  18. MODIFICATIONS RÉCENTES — filtres OOUI + légende
  ============================================================ */
.mw-rcfilters-ui-filterWrapperWidget, .mw-rcfilters-ui-filterTagMultiselectWidget { background-color: rgba(12, 24, 18, 0.9) !important; border-color: rgba(125, 255, 156, 0.15) !important; color: #cce8d4 !important; }
.mw-rcfilters-ui-filterTagMultiselectWidget-wrapper-top { background-color: #0f2015 !important; border-bottom: 1px solid rgba(125, 255, 156, 0.15) !important; }
.mw-rcfilters-ui-filterTagMultiselectWidget-wrapper-content-title { color: #7dff9c !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 10px !important; letter-spacing: 0.2em !important; text-transform: uppercase !important; }
.mw-rcfilters-ui-tagItemWidget { background-color: rgba(125, 255, 156, 0.1) !important; border: 1px solid rgba(125, 255, 156, 0.3) !important; color: #7dff9c !important; }
.mw-rcfilters-ui-tagItemWidget .oo-ui-labelElement-label { color: #7dff9c !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 11px !important; }
.mw-rcfilters-ui-filterTagMultiselectWidget .oo-ui-buttonElement-button, .mw-rcfilters-ui-filterWrapperWidget .oo-ui-buttonElement-button { color: #4ab06a !important; }
.mw-rcfilters-ui-filterTagMultiselectWidget .oo-ui-buttonElement-button:hover, .mw-rcfilters-ui-filterWrapperWidget .oo-ui-buttonElement-button:hover { color: #7dff9c !important; }
.mw-rcfilters-ui-filterWrapperWidget-bottom .oo-ui-buttonElement-framed .oo-ui-buttonElement-button { background-color: rgba(12, 24, 18, 0.9) !important; border-color: rgba(125, 255, 156, 0.3) !important; color: #4ab06a !important; }
.mw-rcfilters-ui-filterWrapperWidget-bottom .oo-ui-buttonElement-framed .oo-ui-buttonElement-button:hover { background-color: rgba(125, 255, 156, 0.1) !important; color: #7dff9c !important; }
.mw-rcfilters-ui-filterTagMultiselectWidget .oo-ui-textInputWidget .oo-ui-inputWidget-input { background-color: rgba(12, 24, 18, 0.95) !important; border-color: rgba(125, 255, 156, 0.2) !important; color: #cce8d4 !important; font-family: 'IBM Plex Mono', monospace !important; }
.mw-rcfilters-ui-filterTagMultiselectWidget .oo-ui-textInputWidget .oo-ui-inputWidget-input::placeholder { color: rgba(125, 255, 156, 0.3) !important; }
.mw-rcfilters-ui-filterTagMultiselectWidget-views-select .oo-ui-buttonElement-button { color: #4ab06a !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 11px !important; }
.mw-rcfilters-ui-filterWrapperWidget-bottom { background-color: #0f2015 !important; border-top: 1px solid rgba(125, 255, 156, 0.15) !important; }
.mw-rcfilters-ui-filterWrapperWidget .oo-ui-labelElement-label { color: #cce8d4 !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 11px !important; }
.mw-changeslist-legend { background-color: rgba(12, 24, 18, 0.9) !important; border: 1px solid rgba(125, 255, 156, 0.15) !important; color: #cce8d4 !important; padding: 10px 16px !important; margin: 8px 0 !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 11px !important; }
.mw-changeslist-legend summary { color: #7dff9c !important; cursor: pointer !important; font-size: 11px !important; letter-spacing: 0.1em !important; }
.mw-changeslist-legend dl { margin: 8px 0 0 !important; }
.mw-changeslist-legend dt { color: #7dff9c !important; font-weight: 600 !important; }
.mw-changeslist-legend dd { color: #7aaa88 !important; }
dt.newpage, dt.minoredit, dt.botedit, dt.unpatrolled { color: #7dff9c !important; background: rgba(125, 255, 156, 0.08) !important; padding: 1px 6px !important; border: 1px solid rgba(125, 255, 156, 0.2) !important; display: inline-block !important; }
.mw-changeslist-date { color: #7dff9c !important; }
h4.mw-rcfilters-ui-changesListWrapperWidget-date { color: #7dff9c !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 10px !important; letter-spacing: 0.2em !important; border-bottom: 1px dashed rgba(125, 255, 156, 0.2) !important; }
/* ============================================================
  19. OOUI — fonds blancs résiduels
  ============================================================ */
.oo-ui-tagMultiselectWidget, .oo-ui-tagMultiselectWidget-handle, .oo-ui-tagMultiselectWidget-group, .mw-rcfilters-ui-table, .mw-rcfilters-ui-row, .mw-rcfilters-ui-cell { background-color: rgba(12, 24, 18, 0.9) !important; border-color: rgba(125, 255, 156, 0.15) !important; color: #cce8d4 !important; }
.oo-ui-textInputWidget, .oo-ui-textInputWidget input, .oo-ui-inputWidget-input { background-color: #0a1a0f !important; border-color: rgba(125, 255, 156, 0.2) !important; color: #cce8d4 !important; }
.oo-ui-tagItemWidget, .mw-rcfilters-ui-tagItemWidget { background-color: rgba(125, 255, 156, 0.08) !important; border: 1px solid rgba(125, 255, 156, 0.25) !important; color: #7dff9c !important; }
.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button { color: #4ab06a !important; }
/* ============================================================
  20. ÉDITEUR — formulaire uniquement (pas de CodeMirror)
  ============================================================ */
#editform, .editOptions, .wikiEditor-ui, .wikiEditor-ui-toolbar, .wikiEditor-ui-text { background-color: rgba(12, 24, 18, 0.9) !important; border-color: rgba(125, 255, 156, 0.15) !important; color: #cce8d4 !important; }
#wpTextbox1, .wikiEditor-ui-text textarea { background-color: #060f0b !important; color: #cce8d4 !important; border-color: rgba(125, 255, 156, 0.2) !important; }
.wikiEditor-ui-toolbar { background: #0f2015 !important; border-bottom: 1px solid rgba(125, 255, 156, 0.15) !important; }
.wikiEditor-ui-toolbar .group { border-right-color: rgba(125, 255, 156, 0.1) !important; }
.wikiEditor-ui-toolbar .tool:hover { background: rgba(125, 255, 156, 0.08) !important; }
#wpSave, #wpPreview, #wpDiff, .editButtons input[type="submit"] { background-color: rgba(12, 24, 18, 0.9) !important; border: 1px solid rgba(125, 255, 156, 0.3) !important; color: #4ab06a !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 11px !important; letter-spacing: 0.1em !important; cursor: pointer !important; transition: all 0.15s !important; }
#wpSave:hover, #wpPreview:hover, #wpDiff:hover, .editButtons input[type="submit"]:hover { background-color: rgba(125, 255, 156, 0.1) !important; color: #7dff9c !important; border-color: rgba(125, 255, 156, 0.5) !important; }
#wpSave { background-color: rgba(125, 255, 156, 0.12) !important; color: #7dff9c !important; border-color: rgba(125, 255, 156, 0.4) !important; }
.editButtons .mw-editbutton-cancel { color: rgba(125, 255, 156, 0.4) !important; }
#wpSummary, #wpSummaryWidget input { background-color: #060f0b !important; border-color: rgba(125, 255, 156, 0.2) !important; color: #cce8d4 !important; font-family: 'IBM Plex Mono', monospace !important; }
#wpSummary:focus, #wpSummaryWidget input:focus { border-color: #7dff9c !important; outline: none !important; box-shadow: 0 0 0 2px rgba(125, 255, 156, 0.12) !important; }
.editCheckboxes label, .editOptions label { color: #7aaa88 !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 11px !important; }
.editpage-head-copywarn, #editpage-copywarn { color: #4a6e55 !important; font-size: 11px !important; }
/* ============================================================
  21. MOBILE — onglets défilants
  ============================================================ */
@media screen and (max-width: 720px) {
  .vt-page-tabs { overflow-x: auto !important; overflow-y: hidden !important; -webkit-overflow-scrolling: touch !important; scrollbar-width: thin !important; flex-wrap: nowrap !important; height: auto !important; min-height: 44px !important; padding: 0 8px !important; }
  .vt-page-tabs::-webkit-scrollbar { height: 3px !important; }
  .vt-page-tabs::-webkit-scrollbar-thumb { background: rgba(125, 255, 156, 0.2) !important; }
  .vt-tabs-ns ul, .vt-tabs-views ul, .vt-tabs-more ul { flex-wrap: nowrap !important; white-space: nowrap !important; }
  .vt-page-tabs li a { white-space: nowrap !important; padding: 0 10px !important; font-size: 10px !important; }
  .vt-tabs-sep { display: none !important; }
}
}
 
/* ============================================================
.vt-logo-text {
  22. TITRE DE PAGE — padding cohérent
display: flex;
  ============================================================ */
flex-direction: column;
#firstHeading, #mw-content-subtitle { padding-left: 36px !important; padding-right: 36px !important; }
line-height: 1.15;
/* ============================================================
  23. NAV PRIMAIRE — masquer si vide
  ============================================================ */
.vt-nav-primary:not(:has(a)) { display: none !important; width: 0 !important; padding: 0 !important; border: none !important; }
/* ============================================================
  24. FIXES SKIN
  ============================================================ */
html body .CodeMirror { padding: 0 !important; }
/* NOTE : la règle .vt-drawer-overlay { pointer-events: none } a été retirée car
  elle contredisait le comportement attendu de l'overlay (capture des clics
  pour fermer le drawer). Le skin.less gère cette propriété correctement
  en distinguant l'état fermé (none) et ouvert (auto). */
@media screen and (min-width: 901px) { .vt-drawer-close { display: none !important; } }
.vt-watermark { display: none !important; }
@media screen and (max-width: 900px) {
  .vt-user-tools { overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; max-width: calc(100vw - 180px); flex-shrink: 1; }
  .vt-user-tools::-webkit-scrollbar { display: none; }
  .vt-user-tools ul { flex-wrap: nowrap; }
  .vt-user-tools li a { padding: 0 8px; font-size: 10px; letter-spacing: 0.06em; }
}
}
@media screen and (max-width: 600px) { #pt-preferences, #pt-watchlist { display: none; } }
 
.vt-logo-sup {
/* ============================================================
font-family: @font-mono;
  25. MEDIAUPLOADER — Spécial:MediaUploader
font-size: 9px;
  ============================================================ */
letter-spacing: 0.28em;
#upload-wizard { background: rgba(12, 24, 18, 0.6); border: 1px solid rgba(125, 255, 156, 0.15); color: #cce8d4; padding: 24px; border-radius: 4px; margin-top: 16px; }
color: @text-muted;
#upload-wizard .ui-widget, #upload-wizard .ui-widget-content, #upload-wizard .ui-state-default, #upload-wizard .ui-corner-all, #upload-wizard .ui-corner-top, #upload-wizard .ui-corner-bottom, #upload-wizard .mediauploader-form { background-color: transparent !important; border-color: transparent !important; color: inherit !important; }
text-transform: uppercase;
#mediauploader-steps, #mediauploader-steps.arrowSteps { background: rgba(6, 15, 11, 0.8) !important; border: 1px solid rgba(125, 255, 156, 0.2) !important; border-radius: 4px; padding: 0 !important; margin: 0 0 24px 0 !important; list-style: none; display: flex !important; overflow: hidden; height: auto !important; }
#mediauploader-steps li, #mediauploader-steps.arrowSteps li { flex: 1; padding: 14px 6px !important; background: transparent !important; background-image: none !important; color: rgba(125, 255, 156, 0.4) !important; text-transform: uppercase; letter-spacing: 0.05em; font-size: 10px !important; font-family: 'IBM Plex Mono', monospace !important; font-weight: 500; border: 0 !important; border-right: 1px solid rgba(125, 255, 156, 0.15) !important; margin: 0 !important; text-align: center; line-height: 1.3 !important; height: auto !important; min-height: 0 !important; white-space: normal !important; overflow: visible !important; text-overflow: clip !important; word-break: keep-all; }
#mediauploader-steps li::before, #mediauploader-steps li::after, #mediauploader-steps.arrowSteps li::before, #mediauploader-steps.arrowSteps li::after { display: none !important; content: none !important; }
#mediauploader-steps li:last-child { border-right: 0 !important; }
#mediauploader-steps li.arrow, #mediauploader-steps li.current, #mediauploader-steps li.mediauploader-step-current { background: rgba(125, 255, 156, 0.12) !important; color: #7dff9c !important; box-shadow: inset 0 -2px 0 #7dff9c; }
#mediauploader-steps li.completed, #mediauploader-steps li.mediauploader-step-completed { color: #4ab06a !important; }
#mediauploader-content, .mediauploader-stepdiv { color: #cce8d4; }
.mediauploader-stepdiv h2, .mediauploader-stepdiv h3 { color: #7dff9c !important; font-family: 'IBM Plex Mono', monospace !important; font-weight: 500 !important; text-transform: uppercase; letter-spacing: 0.05em; border-bottom: 1px solid rgba(125, 255, 156, 0.2); padding-bottom: 8px; margin-top: 24px; }
#mediauploader-filelist, #mediauploader-filelist.ui-corner-all { background: transparent !important; border: 0 !important; padding: 0 !important; }
.mediauploader-file { background: rgba(6, 15, 11, 0.8) !important; border: 1px solid rgba(125, 255, 156, 0.2) !important; border-radius: 4px !important; padding: 16px !important; margin-bottom: 12px !important; color: #cce8d4 !important; }
.mediauploader-file.filled { border-color: rgba(125, 255, 156, 0.35) !important; }
#upload-wizard .mediauploader-visible-file, #upload-wizard .mediauploader-visible-file.ui-corner-top.ui-corner-bottom { background-color: rgba(6, 15, 11, 0.7) !important; border: 1px solid rgba(125, 255, 156, 0.15) !important; border-radius: 4px !important; padding: 16px 20px !important; color: #cce8d4 !important; }
#upload-wizard .mediauploader-visible-file-filename, #upload-wizard .mediauploader-file-texts, #upload-wizard .mediauploader-file-preview { background-color: transparent !important; }
#upload-wizard .mediauploader-visible-file-filename-text { color: #7dff9c !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 13px !important; font-weight: 500; }
.mediauploader-file-status-line { color: rgba(168, 230, 184, 0.7) !important; font-size: 12px; font-style: italic; margin-top: 4px; }
.mediauploader-file-indicator { background: transparent !important; }
#upload-wizard .mediauploader-thumbnail, #upload-wizard .mediauploader-thumbnail-side { background-color: transparent !important; position: relative !important; }
#upload-wizard .mediauploader-add-file, #upload-wizard .oo-ui-selectFileInputWidget, #upload-wizard .oo-ui-selectFileWidget { background: rgba(6, 15, 11, 0.6) !important; background-image: none !important; border: 2px dashed rgba(125, 255, 156, 0.25) !important; border-radius: 4px !important; padding: 16px 20px !important; color: #cce8d4 !important; transition: all 0.2s ease; box-shadow: none !important; }
#upload-wizard .mediauploader-add-file:hover, #upload-wizard .oo-ui-selectFileWidget-canDrop { border-color: #7dff9c !important; background: rgba(125, 255, 156, 0.05) !important; }
#upload-wizard .oo-ui-selectFileInputWidget-info, #upload-wizard .oo-ui-selectFileInputWidget-info.oo-ui-textInputWidget { background: transparent !important; background-image: none !important; border: 0 !important; box-shadow: none !important; color: rgba(168, 230, 184, 0.6) !important; }
#upload-wizard .oo-ui-selectFileInputWidget-info input[type="search"], #upload-wizard .oo-ui-selectFileInputWidget-info .oo-ui-inputWidget-input { background: transparent !important; background-image: none !important; color: rgba(168, 230, 184, 0.6) !important; border: 0 !important; box-shadow: none !important; font-style: italic; }
#upload-wizard .oo-ui-selectFileInputWidget-info input[type="search"]::placeholder { color: rgba(168, 230, 184, 0.5) !important; font-style: italic; }
#upload-wizard .oo-ui-selectFileInputWidget-dropLabel, #upload-wizard .oo-ui-selectFileWidget-dropLabel { background: transparent !important; color: rgba(168, 230, 184, 0.6) !important; font-style: italic; }
#upload-wizard .oo-ui-selectFileInputWidget-selectButton { background: transparent !important; }
#upload-wizard .oo-ui-buttonElement > .oo-ui-buttonElement-button, .mediauploader-stepdiv .oo-ui-buttonElement > .oo-ui-buttonElement-button { background: rgba(12, 24, 18, 0.9) !important; background-image: none !important; border: 1px solid rgba(125, 255, 156, 0.3) !important; color: #4ab06a !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 11px !important; text-transform: uppercase !important; letter-spacing: 0.12em !important; padding: 8px 18px !important; border-radius: 2px !important; box-shadow: none !important; text-shadow: none !important; transition: all 0.2s ease; min-height: 36px !important; }
#upload-wizard .oo-ui-buttonElement > .oo-ui-buttonElement-button:hover, .mediauploader-stepdiv .oo-ui-buttonElement > .oo-ui-buttonElement-button:hover { background: rgba(125, 255, 156, 0.1) !important; color: #7dff9c !important; border-color: rgba(125, 255, 156, 0.6) !important; }
#upload-wizard .oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button, #upload-wizard .oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button, .mediauploader-stepdiv .oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button, .mediauploader-stepdiv .oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button { background: rgba(125, 255, 156, 0.15) !important; color: #7dff9c !important; border-color: #7dff9c !important; font-weight: 500 !important; }
#upload-wizard .oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:hover, #upload-wizard .oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover { background: rgba(125, 255, 156, 0.25) !important; color: #cdffd6 !important; box-shadow: 0 0 12px rgba(125, 255, 156, 0.3) !important; }
#upload-wizard .oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button, .mediauploader-stepdiv .oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button { background: rgba(255, 122, 122, 0.08) !important; color: #ff7a7a !important; border-color: rgba(255, 122, 122, 0.4) !important; }
#upload-wizard .oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover { background: rgba(255, 122, 122, 0.15) !important; color: #ff9a9a !important; }
#upload-wizard .oo-ui-widget-disabled .oo-ui-buttonElement-button, .mediauploader-stepdiv .oo-ui-widget-disabled .oo-ui-buttonElement-button { opacity: 0.4 !important; cursor: not-allowed !important; }
#upload-wizard .oo-ui-iconElement-icon, .mediauploader-stepdiv .oo-ui-iconElement-icon { filter: brightness(0) saturate(100%) invert(91%) sepia(15%) saturate(594%) hue-rotate(76deg) brightness(101%) contrast(101%); opacity: 0.85; }
#upload-wizard input[type="text"], #upload-wizard input[type="number"], #upload-wizard textarea, #upload-wizard .oo-ui-textInputWidget input, #upload-wizard .oo-ui-textInputWidget textarea, #upload-wizard .oo-ui-multilineTextInputWidget textarea { background: rgba(6, 15, 11, 0.9) !important; border: 1px solid rgba(125, 255, 156, 0.2) !important; color: #cce8d4 !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 13px !important; padding: 8px 12px !important; border-radius: 2px !important; box-shadow: none !important; }
#upload-wizard input:focus, #upload-wizard textarea:focus, #upload-wizard .oo-ui-textInputWidget input:focus, #upload-wizard .oo-ui-textInputWidget textarea:focus, #upload-wizard .oo-ui-multilineTextInputWidget textarea:focus { border-color: #7dff9c !important; outline: 0 !important; box-shadow: 0 0 0 2px rgba(125, 255, 156, 0.15) !important; }
#upload-wizard .oo-ui-progressBarWidget, #upload-wizard .mediauploader-progress { background: rgba(6, 15, 11, 0.9) !important; border: 1px solid rgba(125, 255, 156, 0.2) !important; border-radius: 2px; overflow: hidden; height: 8px; }
#upload-wizard .oo-ui-progressBarWidget-bar, #upload-wizard .mediauploader-progress-bar { background: linear-gradient(90deg, #4ab06a, #7dff9c) !important; height: 100% !important; transition: width 0.3s ease; }
#upload-wizard .errorbox, .mediauploader-error { background: rgba(255, 94, 94, 0.1) !important; border: 1px solid rgba(255, 94, 94, 0.4) !important; color: #ff9a9a !important; padding: 12px !important; border-radius: 4px; }
#upload-wizard .successbox, .mediauploader-success { background: rgba(125, 255, 156, 0.08) !important; border: 1px solid rgba(125, 255, 156, 0.4) !important; color: #7dff9c !important; padding: 12px !important; border-radius: 4px; }
#upload-wizard .warningbox, .mediauploader-warning { background: rgba(245, 200, 74, 0.1) !important; border: 1px solid rgba(245, 200, 74, 0.4) !important; color: #f5c84a !important; padding: 12px !important; border-radius: 4px; }
#upload-wizard a { color: #7dff9c !important; text-decoration: none; border-bottom: 1px solid rgba(125, 255, 156, 0.3); }
#upload-wizard a:hover { color: #cdffd6 !important; border-bottom-color: #7dff9c; }
.mediauploader-unavailable, .mw-special-MediaUploader #mw-content-text > p:first-child { background: rgba(6, 15, 11, 0.6); border: 1px solid rgba(125, 255, 156, 0.2); border-left: 3px solid #f5c84a; padding: 16px 20px; color: #cce8d4; border-radius: 4px; }
#mediauploader-deeds-thumbnails { background-color: transparent !important; border-radius: 2px; text-align: center; margin: 1em 0; }
#mediauploader-deeds-thumbnails .mediauploader-thumbnail { background: transparent !important; }
#mediauploader-deeds-thumbnails canvas { filter: brightness(0.8) sepia(1) hue-rotate(76deg) saturate(0.5); opacity: 0.7; }
/* ============================================================
  26. PAGE D'ACCUEIL — Grille responsive
  ============================================================ */
.homepage { display: grid; grid-template-columns: 1fr 1fr; grid-template-areas: "welcome welcome" "games games" "autres theme" "anecdotes articleday" "presentation participation"; gap: 16px; width: 100%; box-sizing: border-box; }
.homepage-welcome { grid-area: welcome; }
.homepage-portal-games { grid-area: games; }
.homepage-portal-autres { grid-area: autres; }
.homepage-portal-theme { grid-area: theme; }
.homepage-anecdotes { grid-area: anecdotes; }
.homepage-articleday { grid-area: articleday; }
.homepage-presentation { grid-area: presentation; }
.homepage-participation { grid-area: participation; }
.homepage-box { background: rgba(6, 15, 11, 0.7); border: 1px solid rgba(125, 255, 156, 0.15); border-radius: 4px; overflow: hidden; }
.homepage-box-title { background: rgba(125, 255, 156, 0.07); border-bottom: 1px solid rgba(125, 255, 156, 0.2); color: #7dff9c; font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.12em; padding: 10px 16px; margin: 0; text-align: center; }
.homepage-box-content { padding: 16px; color: #cce8d4; }
.homepage-box-content a { color: #7dff9c; text-decoration: none; border-bottom: 1px solid rgba(125, 255, 156, 0.3); }
.homepage-box-content a:hover { color: #cdffd6; border-bottom-color: #7dff9c; }
.homepage-welcome { background: rgba(6, 15, 11, 0.7) !important; border: 1px solid rgba(125, 255, 156, 0.15) !important; border-radius: 4px !important; overflow: hidden; padding: 0 !important; text-align: center; }
.homepage-welcome-title { background: rgba(125, 255, 156, 0.07); border-bottom: 1px solid rgba(125, 255, 156, 0.2); color: #7dff9c !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 11px !important; font-weight: 500; font-style: normal !important; text-transform: uppercase; letter-spacing: 0.12em; padding: 10px 16px; margin: 0; text-shadow: none !important; }
html body .homepage-welcome .logo-light, html body .homepage .logo-light { display: none !important; }
html body .homepage-welcome .logo-dark, html body .homepage .logo-dark { display: inline !important; }
.logo-accueil { margin: 20px auto; background: transparent !important; display: block; }
.logo-accueil img { max-width: 340px; width: 100%; height: auto; filter: drop-shadow(0 0 16px rgba(125, 255, 156, 0.2)); }
.homepage-welcome-subtitle { color: #cce8d4; font-size: 0.95em; margin: 6px 16px; line-height: 1.6; }
.homepage-welcome-subtitle a { color: #7dff9c !important; border-bottom: 1px solid rgba(125, 255, 156, 0.3); text-decoration: none; }
.homepage-welcome-subtitle a:hover { color: #cdffd6 !important; }
.homepage-welcome-links { margin: 20px 16px; display: flex; justify-content: center; align-items: center; gap: 20px; flex-wrap: wrap; border-top: 1px solid rgba(125, 255, 156, 0.1); padding-top: 16px; }
.homepage-welcome-links img { transition: filter 0.2s ease, transform 0.2s ease; }
.homepage-welcome-links img:hover { filter: brightness(1.15) drop-shadow(0 0 8px rgba(125, 255, 156, 0.4)); transform: scale(1.06); }
.homepage-portal-games-list { display: flex; flex-wrap: wrap; list-style: none; padding: 8px; margin: 0; gap: 12px; justify-content: center; }
.homepage-portal-games-item { flex: 0 0 calc(25% - 12px); max-width: 130px; text-align: center; color: #cce8d4; }
.homepage-portal-games-logo { margin-bottom: 6px; display: flex; justify-content: center; align-items: center; height: 70px; }
.homepage-portal-games-logo img { max-width: 100%; max-height: 70px; width: auto; height: auto; transition: filter 0.2s ease, transform 0.2s ease; }
.homepage-portal-games-logo img:hover { filter: brightness(1.2) drop-shadow(0 0 8px rgba(125, 255, 156, 0.4)); transform: scale(1.07); }
.homepage-portal-games-item div:last-child a, .homepage-portal-games-item em a, .homepage-portal-games-item i a { color: #7dff9c !important; font-size: 12px; text-decoration: none; border-bottom: 1px solid rgba(125, 255, 156, 0.3); font-style: italic; }
.homepage-portal-autres-list { display: flex; flex-wrap: wrap; list-style: none; padding: 8px; margin: 0; gap: 16px; justify-content: center; }
.homepage-portal-autres-list .homepage-portal-games-item { flex: 0 0 calc(33% - 16px); max-width: 150px; }
.homepage-portal-autres-list .homepage-portal-games-logo { height: 90px; }
.homepage-portal-autres-list .homepage-portal-games-logo img { max-height: 90px; }
.homepage-portal-theme .liste-horizontale ul { display: flex; flex-wrap: wrap; list-style: none; padding: 4px; margin: 0; gap: 6px; justify-content: center; }
.homepage-portal-theme .liste-horizontale li { background: rgba(125, 255, 156, 0.06); border: 1px solid rgba(125, 255, 156, 0.15); border-radius: 2px; padding: 5px 10px; list-style: none; margin: 0; }
.homepage-portal-theme .liste-horizontale li::before { display: none; }
.homepage-portal-theme .liste-horizontale li a { color: #7dff9c !important; font-family: 'IBM Plex Mono', monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; text-decoration: none; border-bottom: 0; }
.homepage-portal-theme .liste-horizontale li a:hover { color: #cdffd6 !important; }
@media screen and (max-width: 720px) {
  .nomobile { display: none !important; }
  .homepage { grid-template-columns: 1fr; grid-template-areas: "welcome" "games" "autres" "theme" "anecdotes" "articleday" "presentation" "participation"; gap: 10px; padding: 8px; }
  .homepage-welcome, .homepage-welcome.nomobile { display: block !important; grid-area: welcome !important; }
  .homepage-welcome .logo-accueil { display: none !important; }
  .homepage-welcome-title { font-size: 10px !important; padding: 8px 12px; }
  .homepage-welcome-subtitle { font-size: 0.85em; margin: 4px 12px; }
  .homepage-welcome-links { margin: 12px; gap: 12px; padding-top: 12px; }
  .homepage-portal-games-list { gap: 8px; padding: 8px 4px; }
  .homepage-portal-games-item { flex: 0 0 calc(50% - 8px); max-width: none; }
  .homepage-portal-games-logo { height: 55px; }
  .homepage-portal-games-logo img { max-height: 55px; }
  .homepage-portal-autres-list .homepage-portal-games-item { flex: 0 0 100%; max-width: none; display: flex; align-items: center; gap: 12px; text-align: left; }
  .homepage-portal-autres-list .homepage-portal-games-logo { height: 50px; min-width: 60px; flex-shrink: 0; }
  .homepage-portal-theme .liste-horizontale li { padding: 4px 8px; font-size: 10px; }
  .homepage-box-title { font-size: 10px; padding: 8px 12px; letter-spacing: 0.1em; }
  .homepage-box-content { padding: 12px; font-size: 14px; }
}
}
@media screen and (min-width: 721px) { .mobileonly { display: none !important; } }
 
@media screen and (min-width: 721px) and (max-width: 1100px) {
.vt-logo-name {
  .homepage-portal-games-item { flex: 0 0 calc(25% - 12px); }
font-family: @font-serif;
  .homepage-portal-games-logo { height: 60px; }
font-style: italic;
  .homepage-portal-games-logo img { max-height: 60px; }
font-size: 17px;
color: @text;
letter-spacing: 0.01em;
}
}
 
/* ============================================================
// Recherche
  27. LISIBILITÉ — Taille du texte des articles
.vt-search {
  ============================================================ */
flex: 1;
.mw-parser-output { font-size: 17px; line-height: 1.75; }
padding: 0 20px;
#firstHeading { font-size: clamp(1.5rem, 1.2rem + 1.5vw, 2.25rem) !important; line-height: 1.2 !important; margin-bottom: 8px !important; }
 
@media screen and (max-width: 900px) {
form {
  .mw-editsection, .mw-editsection-bracket, .mw-editsection-divider { display: none !important; }
display: flex;
  .mw-parser-output .mw-heading h2, .mw-parser-output .mw-heading h3, .mw-parser-output .mw-heading h4, .mw-parser-output .mw-heading h5, .mw-parser-output .mw-heading h6 { word-break: normal !important; overflow-wrap: normal !important; hyphens: none !important; white-space: normal !important; }
gap: 6px;
  #bodyContent { padding: 16px 16px 40px !important; }
max-width: 380px;
  #firstHeading, #mw-content-subtitle { padding-left: 16px !important; padding-right: 16px !important; }
}
}
 
input[type='search'],
/* ============================================================
input[type='text'],
  28. VISUAL EDITOR — Toolbar sticky + surface + popups
.oo-ui-inputWidget-input {
  ============================================================ */
background: @bg-panel;
html body .ve-ui-toolbar,
border: 1px solid @ph-border;
html body .ve-init-mw-desktopArticleTarget-toolbar {
color: @phosphor;
  position: sticky !important;
font-family: @font-mono;
  top: 54px !important;
font-size: 12px;
  z-index: 900 !important;
padding: 7px 14px;
  background: rgba(12, 24, 18, 0.97) !important;
width: 100%;
  border-bottom: 1px solid rgba(125, 255, 156, 0.15) !important;
letter-spacing: 0.05em;
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.6) !important;
transition: border-color 0.15s;
  -webkit-backdrop-filter: blur(8px);
 
  backdrop-filter: blur(8px);
&::placeholder {
}
color: @text-muted;
.ve-ui-toolbar .oo-ui-toolbar-bar,
}
.ve-ui-toolbar .oo-ui-toolbar-tools,
 
.ve-ui-toolbar .oo-ui-toolbar-after { background: transparent !important; border: 0 !important; }
&:focus {
.ve-ui-toolbar .oo-ui-toolGroup { border-right: 1px solid rgba(125, 255, 156, 0.08) !important; }
outline: none;
.ve-ui-toolbar .oo-ui-toolGroup:last-child { border-right: 0 !important; }
border-color: @phosphor;
.ve-ui-toolbar .oo-ui-tool-link {
box-shadow: 0 0 0 1px @ph-faint;
  background: transparent !important;
}
  color: rgba(125, 255, 156, 0.55) !important;
}
  border-radius: 2px !important;
 
  transition: background 0.1s, color 0.1s !important;
button,
}
input[type='submit'] {
.ve-ui-toolbar .oo-ui-tool-link:hover { background: rgba(125, 255, 156, 0.1) !important; color: #7dff9c !important; }
background: @ph-faint;
.ve-ui-toolbar .oo-ui-tool-active > .oo-ui-tool-link {
border: 1px solid @ph-border2;
  background: rgba(125, 255, 156, 0.15) !important;
color: @phosphor;
  color: #7dff9c !important;
font-family: @font-mono;
  box-shadow: inset 0 -2px 0 #7dff9c !important;
font-size: 11px;
}
letter-spacing: 0.15em;
.ve-ui-toolbar .oo-ui-widget-disabled .oo-ui-tool-link { opacity: 0.3 !important; cursor: default !important; }
padding: 7px 14px;
.ve-ui-toolbar .oo-ui-popupToolGroup-handle,
cursor: pointer;
.ve-ui-toolbar .oo-ui-toolGroup-handle {
text-transform: uppercase;
  background: transparent !important;
transition: all 0.15s;
  color: rgba(125, 255, 156, 0.55) !important;
flex-shrink: 0;
  border: 0 !important;
 
  border-radius: 2px !important;
&:hover {
  transition: background 0.1s, color 0.1s !important;
background: @phosphor;
}
color: @bg;
.ve-ui-toolbar .oo-ui-popupToolGroup-handle:hover,
}
.ve-ui-toolbar .oo-ui-toolGroup-handle:hover { background: rgba(125, 255, 156, 0.1) !important; color: #7dff9c !important; }
}
.ve-ui-toolbar .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
  color: inherit !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
}
.ve-ui-toolbar .oo-ui-indicatorElement-indicator {
  filter: brightness(0) saturate(100%) invert(72%) sepia(20%) saturate(400%) hue-rotate(76deg) brightness(100%) !important;
  opacity: 0.5 !important;
}
.ve-ui-toolbar .oo-ui-iconElement-icon {
  filter: brightness(0) saturate(100%) invert(91%) sepia(15%) saturate(594%) hue-rotate(76deg) brightness(101%) !important;
  opacity: 0.6 !important;
}
.ve-ui-toolbar .oo-ui-tool-link:hover .oo-ui-iconElement-icon,
.ve-ui-toolbar .oo-ui-tool-active .oo-ui-iconElement-icon { opacity: 1 !important; }
.ve-ui-toolbar .ve-ui-toolbar-saveButton,
.ve-ui-toolbar .oo-ui-flaggedElement-primary .oo-ui-tool-link,
.ve-ui-toolbar .oo-ui-flaggedElement-progressive .oo-ui-tool-link {
  background: rgba(125, 255, 156, 0.15) !important;
  border: 1px solid rgba(125, 255, 156, 0.4) !important;
  border-radius: 2px !important;
  color: #7dff9c !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
}
.ve-ui-toolbar .ve-ui-toolbar-saveButton:hover,
.ve-ui-toolbar .oo-ui-flaggedElement-primary .oo-ui-tool-link:hover,
.ve-ui-toolbar .oo-ui-flaggedElement-progressive .oo-ui-tool-link:hover {
  background: rgba(125, 255, 156, 0.28) !important;
  border-color: #7dff9c !important;
  box-shadow: 0 0 12px rgba(125, 255, 156, 0.25) !important;
}
.ve-ui-toolbar .oo-ui-toolbar-popups,
.ve-ui-toolbar .oo-ui-popupToolGroup-tools,
.ve-ui-toolbar .oo-ui-listToolGroup-tools,
.ve-ui-toolbar .oo-ui-menuToolGroup-tools {
  background: rgba(8, 18, 12, 0.98) !important;
  border: 1px solid rgba(125, 255, 156, 0.2) !important;
  border-radius: 3px !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.75) !important;
  padding: 4px 0 !important;
}
.ve-ui-toolbar .oo-ui-popupToolGroup-tools .oo-ui-tool-link,
.ve-ui-toolbar .oo-ui-listToolGroup-tools .oo-ui-tool-link,
.ve-ui-toolbar .oo-ui-menuToolGroup-tools .oo-ui-tool-link {
  color: #cce8d4 !important;
  padding: 8px 16px 8px 44px !important;
  display: block !important;
  position: relative !important;
  border-left: 2px solid transparent !important;
  min-height: 32px !important;
}
.ve-ui-toolbar .oo-ui-popupToolGroup-tools .oo-ui-tool-link .oo-ui-iconElement-icon,
.ve-ui-toolbar .oo-ui-listToolGroup-tools .oo-ui-tool-link .oo-ui-iconElement-icon,
.ve-ui-toolbar .oo-ui-menuToolGroup-tools .oo-ui-tool-link .oo-ui-iconElement-icon {
  position: absolute !important;
  left: 14px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
}
.ve-ui-toolbar .oo-ui-popupToolGroup-tools .oo-ui-tool-link:hover,
.ve-ui-toolbar .oo-ui-listToolGroup-tools .oo-ui-tool-link:hover,
.ve-ui-toolbar .oo-ui-menuToolGroup-tools .oo-ui-tool-link:hover {
  background: rgba(125, 255, 156, 0.08) !important;
  color: #7dff9c !important;
  border-left-color: #4ab06a !important;
}
.ve-ui-toolbar .oo-ui-popupToolGroup-tools .oo-ui-tool-active .oo-ui-tool-link,
.ve-ui-toolbar .oo-ui-menuToolGroup-tools .oo-ui-tool-active .oo-ui-tool-link {
  background: rgba(125, 255, 156, 0.12) !important;
  color: #7dff9c !important;
  border-left-color: #7dff9c !important;
}
.ve-ui-toolbar .oo-ui-tool-checkIcon { opacity: 0 !important; }
.ve-ui-toolbar .oo-ui-tool-active .oo-ui-tool-checkIcon { opacity: 0.8 !important; }
.ve-ui-toolbar .oo-ui-tool-title {
  color: inherit !important;
  font-family: 'Crimson Pro', Georgia, serif !important;
  font-size: 14px !important;
}
.ve-ui-toolbar .oo-ui-tool-accel {
  color: rgba(125, 255, 156, 0.3) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 10px !important;
  margin-left: auto !important;
  padding-left: 16px !important;
}
.ve-ui-toolbar .oo-ui-popupWidget .oo-ui-popupWidget-popup {
  background: rgba(8, 18, 12, 0.98) !important;
  border: 1px solid rgba(125, 255, 156, 0.2) !important;
  border-radius: 3px !important;
}
.ve-ui-toolbar .oo-ui-popupWidget .oo-ui-popupWidget-head {
  background: rgba(6, 15, 11, 0.98) !important;
  border-bottom: 1px solid rgba(125, 255, 156, 0.1) !important;
}
.ve-ui-toolbar .oo-ui-popupWidget .oo-ui-labelElement-label { color: #7dff9c !important; }
.ve-ui-surface, .ve-ce-surface { background: #060f0b !important; color: #cce8d4 !important; caret-color: #7dff9c !important; }
.ve-ce-surface ::selection { background: rgba(125, 255, 156, 0.2) !important; }
.ve-ui-context, .ve-ui-linearContext { background: rgba(8, 18, 12, 0.98) !important; border: 1px solid rgba(125, 255, 156, 0.2) !important; border-radius: 3px !important; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.6) !important; }
.ve-ui-contextItem, .ve-ui-linearContextItem { color: #7aaa88 !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 12px !important; }
.ve-ui-contextItem:hover, .ve-ui-linearContextItem:hover { color: #7dff9c !important; background: rgba(125, 255, 156, 0.06) !important; }
.oo-ui-window-frame { background: rgba(10, 20, 15, 0.98) !important; border: 1px solid rgba(125, 255, 156, 0.2) !important; box-shadow: 0 8px 40px rgba(0, 0, 0, 0.8) !important; }
.oo-ui-window-head { background: rgba(6, 15, 11, 0.98) !important; border-bottom: 1px solid rgba(125, 255, 156, 0.12) !important; }
.oo-ui-window-head .oo-ui-labelElement-label { color: #7dff9c !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 11px !important; text-transform: uppercase !important; letter-spacing: 0.15em !important; }
.oo-ui-window-body { background: rgba(10, 20, 15, 0.98) !important; color: #cce8d4 !important; }
.oo-ui-window-foot { background: rgba(6, 15, 11, 0.98) !important; border-top: 1px solid rgba(125, 255, 156, 0.12) !important; }
.oo-ui-overlay, .oo-ui-window-overlay { background: rgba(0, 0, 0, 0.6) !important; }
/* ── VE Save Dialog ("Enregistrer vos modifications") ── */
.ve-ui-mwSaveDialog-options,
.ve-ui-mwSaveDialog-checkboxes,
.ve-ui-mwSaveDialog-summaryLabel,
.ve-ui-mwSaveDialog-summary,
.ve-ui-mwSaveDialog-messages,
.ve-ui-mwSaveDialog-foot,
.ve-ui-mwSaveDialog-license {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.ve-ui-mwSaveDialog-field-wpMinoredit,
.ve-ui-mwSaveDialog-field-wpWatchthis,
.ve-ui-mwSaveDialog-checkboxes .oo-ui-fieldLayout,
.ve-ui-mwSaveDialog-checkboxes .oo-ui-fieldLayout-body,
.ve-ui-mwSaveDialog-checkboxes .oo-ui-fieldLayout-header,
.ve-ui-mwSaveDialog-checkboxes .oo-ui-fieldLayout-field {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 4px 0 !important;
  margin: 0 !important;
}
.ve-ui-mwSaveDialog-field-wpMinoredit:hover,
.ve-ui-mwSaveDialog-field-wpWatchthis:hover {
  background: rgba(125, 255, 156, 0.04) !important;
  border-radius: 2px !important;
}
.ve-ui-mwSaveDialog-checkboxes .oo-ui-fieldLayout-header .oo-ui-labelElement-label,
.ve-ui-mwSaveDialog-checkboxes label,
.ve-ui-mwSaveDialog-field-wpMinoredit .oo-ui-labelElement-label,
.ve-ui-mwSaveDialog-field-wpWatchthis .oo-ui-labelElement-label {
  color: rgba(204, 232, 212, 0.7) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  font-weight: 400 !important;
  background: transparent !important;
  cursor: pointer !important;
}
.ve-ui-mwSaveDialog-summaryLabel,
.ve-ui-mwSaveDialog-summaryLabel label {
  color: rgba(125, 255, 156, 0.6) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 10px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  margin-bottom: 6px !important;
}
.ve-ui-mwSaveDialog-summary textarea,
.ve-ui-mwSaveDialog-summary .oo-ui-textInputWidget input,
.ve-ui-mwSaveDialog-summary .oo-ui-textInputWidget textarea {
  background: rgba(4, 10, 7, 0.95) !important;
  border: 1px solid rgba(125, 255, 156, 0.2) !important;
  border-radius: 2px !important;
  color: #cce8d4 !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 13px !important;
  padding: 10px 12px !important;
  caret-color: #7dff9c !important;
}
.ve-ui-mwSaveDialog-summary textarea:focus,
.ve-ui-mwSaveDialog-summary .oo-ui-textInputWidget textarea:focus {
  border-color: rgba(125, 255, 156, 0.5) !important;
  box-shadow: 0 0 0 2px rgba(125, 255, 156, 0.1) !important;
  outline: none !important;
}
.ve-ui-mwSaveDialog-editSummary-count {
  color: rgba(125, 255, 156, 0.35) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 10px !important;
  background: transparent !important;
  margin-top: 4px !important;
}
.ve-ui-mwSaveDialog-license,
.ve-ui-mwSaveDialog-foot {
  color: rgba(204, 232, 212, 0.55) !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
  border-top: 1px dashed rgba(125, 255, 156, 0.1) !important;
  padding-top: 12px !important;
  margin-top: 12px !important;
}
.ve-ui-mwSaveDialog-license a,
.ve-ui-mwSaveDialog-foot a { color: #4ab06a !important; }
.ve-ui-mwSaveDialog-license a:hover,
.ve-ui-mwSaveDialog-foot a:hover { color: #7dff9c !important; }
.ve-ui-mwSaveDialog-license .ve-ui-mwSaveDialog-warning,
.ve-ui-mwSaveDialog-foot strong,
.ve-ui-mwSaveDialog-foot b { color: #ff7a7a !important; }
/* ============================================================
  29. LECTEUR AUDIO — thème phosphore
  ============================================================ */
.mw-tmh-player,
.mediaContainer {
  display: block !important;
  width: 100% !important;
  max-width: 440px !important;
  margin: 12px auto !important;
  background: rgba(6, 15, 11, 0.85) !important;
  border: 1px solid rgba(125, 255, 156, 0.15) !important;
  border-radius: 3px !important;
  padding: 8px !important;
  box-sizing: border-box !important;
}
.mw-parser-output audio,
audio.mw-file-element,
.mw-parser-output audio.mw-file-element,
audio.oo-ui-widget {
  display: block !important;
  width: 100% !important;
  max-width: 440px !important;
  min-width: 280px !important;
  height: 40px !important;
  margin: 12px auto !important;
  background: rgba(6, 15, 11, 0.9) !important;
  border: 1px solid rgba(125, 255, 156, 0.15) !important;
  border-radius: 3px !important;
  outline: none !important;
  accent-color: #7dff9c !important;
}
.mw-parser-output audio::-webkit-media-controls-panel,
audio.mw-file-element::-webkit-media-controls-panel { background: rgba(6, 15, 11, 0.95) !important; border-radius: 3px !important; }
.mw-parser-output audio::-webkit-media-controls-play-button,
.mw-parser-output audio::-webkit-media-controls-mute-button,
audio.mw-file-element::-webkit-media-controls-play-button,
audio.mw-file-element::-webkit-media-controls-mute-button { filter: invert(1) sepia(1) saturate(3) hue-rotate(76deg) !important; }
.mw-parser-output audio::-webkit-media-controls-current-time-display,
.mw-parser-output audio::-webkit-media-controls-time-remaining-display,
audio.mw-file-element::-webkit-media-controls-current-time-display,
audio.mw-file-element::-webkit-media-controls-time-remaining-display {
  color: #7dff9c !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 10px !important;
}
.mw-parser-output blockquote:has(audio) {
  background: rgba(6, 15, 11, 0.6) !important;
  border: 1px solid rgba(125, 255, 156, 0.12) !important;
  border-left: 3px solid rgba(125, 255, 156, 0.3) !important;
  border-radius: 3px !important;
  padding: 12px 16px !important;
  font-style: italic !important;
  color: #cce8d4 !important;
  max-width: 480px !important;
  margin: 12px auto !important;
}
/* ============================================================
  30. PAGES CONNEXION & CRÉATION DE COMPTE — Codex (MW 1.45)
  ============================================================ */
.mw-special-Userlogin .mw-body-content,
.mw-special-CreateAccount .mw-body-content { display: flex !important; gap: 40px !important; align-items: flex-start !important; }
#userloginForm,
#createaccount {
  background: rgba(6, 15, 11, 0.85) !important;
  border: 1px solid rgba(125, 255, 156, 0.15) !important;
  border-radius: 4px !important;
  padding: 24px !important;
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 320px !important;
  max-width: 480px !important;
  box-sizing: border-box !important;
  color: #cce8d4 !important;
}
#userloginForm .cdx-field, #createaccount .cdx-field { margin-bottom: 16px !important; }
#userloginForm .cdx-text-input, #createaccount .cdx-text-input,
#userloginForm .cdx-field, #createaccount .cdx-field { width: 100% !important; box-sizing: border-box !important; }
#userloginForm .cdx-label__label, #createaccount .cdx-label__label,
#userloginForm .cdx-label, #createaccount .cdx-label {
  color: rgba(125, 255, 156, 0.6) !important; font-family: 'IBM Plex Mono', monospace !important;
  font-size: 10px !important; text-transform: uppercase !important; letter-spacing: 0.12em !important;
  margin-bottom: 6px !important; display: block !important;
}
#userloginForm .cdx-text-input__input,
#createaccount .cdx-text-input__input,
#userloginForm .cdx-text-input__input:enabled,
#createaccount .cdx-text-input__input:enabled {
  width: 100% !important; box-sizing: border-box !important;
  background-color: rgba(6, 15, 11, 0.9) !important;
  border-color: rgba(125, 255, 156, 0.2) !important;
  color: #cce8d4 !important; font-family: 'IBM Plex Mono', monospace !important;
  font-size: 13px !important; padding: 10px 12px !important;
}
#userloginForm .cdx-text-input__input:focus, #createaccount .cdx-text-input__input:focus {
  border-color: #7dff9c !important; outline: none !important;
  box-shadow: 0 0 0 2px rgba(125, 255, 156, 0.12) !important;
}
#userloginForm .cdx-text-input__input:-webkit-autofill,
#createaccount .cdx-text-input__input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px rgba(6, 15, 11, 0.95) inset !important;
  -webkit-text-fill-color: #cce8d4 !important;
}
#userloginForm .cdx-field__help-text, #createaccount .cdx-field__help-text { color: rgba(125, 255, 156, 0.3) !important; font-size: 11px !important; }
#wpLoginAttempt, #wpCreateaccount {
  display: block !important; width: 100% !important; box-sizing: border-box !important;
  background: rgba(125, 255, 156, 0.12) !important; border: 1px solid rgba(125, 255, 156, 0.4) !important;
  border-radius: 2px !important; color: #7dff9c !important; font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important; font-weight: 500 !important; text-transform: uppercase !important;
  letter-spacing: 0.15em !important; padding: 14px !important; cursor: pointer !important;
  margin-top: 8px !important; transition: all 0.2s !important;
}
#wpLoginAttempt:hover, #wpCreateaccount:hover { background: rgba(125, 255, 156, 0.22) !important; border-color: #7dff9c !important; box-shadow: 0 0 16px rgba(125, 255, 156, 0.2) !important; }
#userloginForm .mw-form-related-link-container, #createaccount .mw-form-related-link-container { margin-top: 16px !important; text-align: center !important; }
#userloginForm a, #createaccount a { color: #4ab06a !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 10px !important; text-transform: uppercase !important; letter-spacing: 0.1em !important; }
#userloginForm .mw-ui-checkbox input + label, #wpRemember + label { color: #7aaa88 !important; font-size: 12px !important; font-family: 'IBM Plex Mono', monospace !important; text-transform: none !important; letter-spacing: 0 !important; }
.mw-createaccount-benefits-container { flex: 1 !important; padding: 20px !important; }
.mw-createaccount-benefits-heading { color: #cce8d4 !important; font-family: 'Instrument Serif', Georgia, serif !important; font-style: italic !important; font-size: 1.3em !important; margin-bottom: 24px !important; }
.mw-number-text h2 { color: rgba(125, 255, 156, 0.5) !important; font-size: 3em !important; }
.mw-number-text p { color: rgba(125, 255, 156, 0.35) !important; }
.mw-message-box-error, .errorbox { background: rgba(255, 94, 94, 0.1) !important; border: 1px solid rgba(255, 94, 94, 0.4) !important; color: #ff9a9a !important; border-radius: 2px !important; padding: 12px !important; margin-bottom: 16px !important; }
@media screen and (max-width: 720px) {
  .mw-special-Userlogin .mw-body-content, .mw-special-CreateAccount .mw-body-content { flex-direction: column !important; }
  #userloginForm, #createaccount { flex: none !important; width: 100% !important; max-width: 100% !important; padding: 16px !important; }
  .mw-createaccount-benefits-container { display: none !important; }
}
/* ============================================================
  31. PAGE PRÉFÉRENCES
  ============================================================ */
.oo-ui-tabSelectWidget { background: rgba(6, 15, 11, 0.9) !important; border-bottom: 1px solid rgba(125, 255, 156, 0.15) !important; }
.oo-ui-tabOptionWidget { background: transparent !important; border: 0 !important; border-bottom: 2px solid transparent !important; color: rgba(125, 255, 156, 0.4) !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 10px !important; text-transform: uppercase !important; letter-spacing: 0.1em !important; padding: 10px 16px !important; transition: color 0.15s, border-color 0.15s !important; }
.oo-ui-tabOptionWidget:hover { color: #7dff9c !important; background: rgba(125, 255, 156, 0.05) !important; }
.oo-ui-tabOptionWidget.oo-ui-optionWidget-selected { color: #7dff9c !important; border-bottom-color: #7dff9c !important; background: rgba(125, 255, 156, 0.07) !important; }
#preferences { background: transparent !important; color: #cce8d4 !important; }
#preferences h2 { color: #7dff9c !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 10px !important; font-weight: 500 !important; text-transform: uppercase !important; letter-spacing: 0.15em !important; border-bottom: 1px dashed rgba(125, 255, 156, 0.15) !important; padding-bottom: 8px !important; margin: 24px 0 16px !important; }
#preferences .mw-htmlform-field label, #preferences .oo-ui-labelElement-label { color: #cce8d4 !important; font-size: 13px !important; }
#preferences .mw-htmlform-tip, #preferences .mw-htmlform-ooui .oo-ui-fieldLayout-help { color: rgba(125, 255, 156, 0.35) !important; font-size: 11px !important; }
#preferences input[type="text"], #preferences input[type="number"], #preferences input[type="email"], #preferences input[type="search"], #preferences textarea, #preferences .oo-ui-textInputWidget input { background: rgba(6, 15, 11, 0.9) !important; border: 1px solid rgba(125, 255, 156, 0.2) !important; border-radius: 2px !important; color: #cce8d4 !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 13px !important; }
#preferences input:focus, #preferences .oo-ui-textInputWidget input:focus { border-color: #7dff9c !important; outline: none !important; box-shadow: 0 0 0 2px rgba(125, 255, 156, 0.12) !important; }
#preferences .mw-htmlform-submit-buttons { background: rgba(6, 15, 11, 0.96) !important; border-top: 1px solid rgba(125, 255, 156, 0.15) !important; box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.4) !important; }
#preferences .mw-htmlform-submit-buttons .oo-ui-buttonElement-button, #prefsubmit { background: rgba(125, 255, 156, 0.12) !important; border: 1px solid rgba(125, 255, 156, 0.4) !important; color: #7dff9c !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 11px !important; text-transform: uppercase !important; letter-spacing: 0.12em !important; border-radius: 2px !important; }
#preferences .mw-htmlform-submit-buttons .oo-ui-buttonElement-button:hover, #prefsubmit:hover { background: rgba(125, 255, 156, 0.22) !important; border-color: #7dff9c !important; }
#preferences .mw-prefs-search input { background: rgba(6, 15, 11, 0.9) !important; border: 1px solid rgba(125, 255, 156, 0.2) !important; color: #cce8d4 !important; font-family: 'IBM Plex Mono', monospace !important; }
.oo-ui-dropdownWidget-handle { background: rgba(6, 15, 11, 0.9) !important; border: 1px solid rgba(125, 255, 156, 0.2) !important; border-radius: 2px !important; color: #cce8d4 !important; }
.oo-ui-dropdownWidget-handle:hover { background: rgba(6, 15, 11, 0.95) !important; border-color: rgba(125, 255, 156, 0.4) !important; }
.oo-ui-dropdownWidget-handle .oo-ui-labelElement-label { color: #cce8d4 !important; }
.oo-ui-dropdownWidget .oo-ui-indicatorElement-indicator { filter: brightness(0) saturate(100%) invert(91%) sepia(15%) saturate(594%) hue-rotate(76deg) brightness(101%) !important; opacity: 0.5 !important; }
.oo-ui-dropdownInputWidget select, #preferences select { background: rgba(6, 15, 11, 0.95) !important; border: 1px solid rgba(125, 255, 156, 0.2) !important; color: #cce8d4 !important; border-radius: 2px !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 12px !important; padding: 8px 12px !important; }
.oo-ui-menuSelectWidget { background: rgba(8, 18, 12, 0.98) !important; border: 1px solid rgba(125, 255, 156, 0.2) !important; border-radius: 2px !important; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.7) !important; }
.oo-ui-menuSelectWidget .oo-ui-optionWidget { color: #cce8d4 !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 12px !important; padding: 8px 14px !important; }
.oo-ui-menuSelectWidget .oo-ui-optionWidget:hover, .oo-ui-menuSelectWidget .oo-ui-optionWidget-highlighted { background: rgba(125, 255, 156, 0.08) !important; color: #7dff9c !important; }
.oo-ui-menuSelectWidget .oo-ui-optionWidget-selected { background: rgba(125, 255, 156, 0.12) !important; color: #7dff9c !important; }
.mw-htmlform-matrix, .mw-widget-checkMatrixWidget-matrix { border-collapse: collapse !important; width: 100% !important; background: transparent !important; }
.mw-htmlform-matrix th, .mw-widget-checkMatrixWidget-matrix th { color: rgba(125, 255, 156, 0.5) !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 10px !important; text-transform: uppercase !important; letter-spacing: 0.1em !important; padding: 8px 14px !important; border-bottom: 1px solid rgba(125, 255, 156, 0.12) !important; background: transparent !important; font-weight: 500 !important; }
.mw-htmlform-matrix td, .mw-widget-checkMatrixWidget-matrix td { padding: 6px 14px !important; border: 0 !important; background: transparent !important; color: #cce8d4 !important; font-size: 13px !important; }
.mw-htmlform-matrix tr:nth-child(even) td, .mw-widget-checkMatrixWidget-matrix tr:nth-child(even) td { background: rgba(125, 255, 156, 0.03) !important; }
.mw-htmlform-matrix tr.disabled td, .mw-widget-checkMatrixWidget-matrix tr.disabled td { color: rgba(125, 255, 156, 0.25) !important; }
.mw-htmlform-matrix tr, .mw-widget-checkMatrixWidget-matrix tr { background: transparent !important; }
.mw-htmlform-matrix .oo-ui-iconElement-icon, .mw-widget-checkMatrixWidget-matrix .oo-ui-iconElement-icon { filter: brightness(0) saturate(100%) invert(91%) sepia(15%) saturate(594%) hue-rotate(76deg) brightness(101%) !important; opacity: 0.4 !important; }
.oo-ui-checkboxInputWidget [type='checkbox'] + span { background-color: rgba(6, 15, 11, 0.9) !important; background-image: none !important; border: 2px solid rgba(125, 255, 156, 0.3) !important; border-radius: 2px !important; width: 18px !important; height: 18px !important; }
.oo-ui-checkboxInputWidget [type='checkbox'] + span.vt-checked { background-color: #4ab06a !important; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10'%3E%3Cpolyline points='1,5 4.5,8.5 11,1' stroke='%23ffffff' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important; background-repeat: no-repeat !important; background-position: center !important; background-size: 12px 10px !important; border-color: #7dff9c !important; }
.oo-ui-checkboxInputWidget.oo-ui-widget-disabled [type='checkbox'] + span { opacity: 0.4 !important; }
.oo-ui-popupWidget-popup { background: rgba(8, 18, 12, 0.98) !important; border: 1px solid rgba(125, 255, 156, 0.2) !important; border-radius: 3px !important; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.7) !important; color: #cce8d4 !important; padding: 12px 14px !important; font-size: 13px !important; line-height: 1.5 !important; }
.mw-widget-DateInputWidget input, .mw-widget-DateTimeInputWidget input { background: rgba(6, 15, 11, 0.9) !important; border: 1px solid rgba(125, 255, 156, 0.2) !important; color: #cce8d4 !important; font-family: 'IBM Plex Mono', monospace !important; border-radius: 2px !important; padding: 8px 12px !important; }
.oo-ui-calendarWidget { background: rgba(8, 18, 12, 0.98) !important; border: 1px solid rgba(125, 255, 156, 0.2) !important; border-radius: 3px !important; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.7) !important; }
.oo-ui-calendarWidget-header { background: rgba(6, 15, 11, 0.95) !important; border-bottom: 1px solid rgba(125, 255, 156, 0.12) !important; padding: 8px !important; }
.oo-ui-calendarWidget-header .oo-ui-buttonElement-button { color: rgba(125, 255, 156, 0.5) !important; background: transparent !important; }
.oo-ui-calendarWidget-header .oo-ui-buttonElement-button:hover { color: #7dff9c !important; background: rgba(125, 255, 156, 0.08) !important; }
.oo-ui-calendarWidget-title { color: #cce8d4 !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 11px !important; text-transform: uppercase !important; letter-spacing: 0.1em !important; }
.oo-ui-calendarWidget .oo-ui-calendarWidget-day-of-week { color: rgba(125, 255, 156, 0.35) !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 10px !important; }
.oo-ui-calendarWidget .oo-ui-calendarWidget-day { color: #cce8d4 !important; background: transparent !important; border-radius: 2px !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 12px !important; }
.oo-ui-calendarWidget .oo-ui-calendarWidget-day:hover { background: rgba(125, 255, 156, 0.1) !important; color: #7dff9c !important; }
.oo-ui-calendarWidget .oo-ui-calendarWidget-day-today { border: 1px solid rgba(125, 255, 156, 0.35) !important; color: #7dff9c !important; }
.oo-ui-calendarWidget .oo-ui-calendarWidget-day-selected { background: rgba(125, 255, 156, 0.18) !important; color: #7dff9c !important; font-weight: 600 !important; }
.oo-ui-calendarWidget .oo-ui-calendarWidget-day-prev-month, .oo-ui-calendarWidget .oo-ui-calendarWidget-day-next-month { color: rgba(125, 255, 156, 0.2) !important; }
/* ============================================================
  33. ÉDITEUR WIKICODE — CodeMirror coloration syntaxique
  ============================================================ */
.ve-ui-mwWikitextSurface .CodeMirror,
.ve-ui-mwWikitextSurface .CodeMirror-scroll {
  background: #060f0b !important;
  color: #cce8d4 !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
}
.ve-ui-mwWikitextSurface .CodeMirror-cursor { border-left-color: #7dff9c !important; }
.ve-ui-mwWikitextSurface .CodeMirror-selected,
.ve-ui-mwWikitextSurface .CodeMirror-focused .CodeMirror-selected { background: rgba(125, 255, 156, 0.15) !important; }
.ve-ui-mwWikitextSurface .CodeMirror-gutters { background: rgba(6, 15, 11, 0.95) !important; border-right: 1px solid rgba(125, 255, 156, 0.1) !important; }
.ve-ui-mwWikitextSurface .CodeMirror-linenumber { color: rgba(125, 255, 156, 0.22) !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 11px !important; }
.ve-ui-mwWikitextSurface .CodeMirror-activeline-background { background: rgba(125, 255, 156, 0.04) !important; }
.ve-ui-mwWikitextSurface .cm-mw-template-name,
.ve-ui-mwWikitextSurface .cm-mw-template-bracket { color: #f5c84a !important; }
.ve-ui-mwWikitextSurface .cm-mw-template-argument-name { color: #a8d8ea !important; }
.ve-ui-mwWikitextSurface .cm-mw-template-delimiter { color: rgba(245, 200, 74, 0.5) !important; }
.ve-ui-mwWikitextSurface .cm-mw-link-ground,
.ve-ui-mwWikitextSurface .cm-mw-link,
.ve-ui-mwWikitextSurface .cm-mw-link-pagename { color: #4ab06a !important; }
.ve-ui-mwWikitextSurface .cm-mw-link-bracket { color: rgba(74, 176, 106, 0.5) !important; }
.ve-ui-mwWikitextSurface .cm-mw-heading,
.ve-ui-mwWikitextSurface .cm-mw-section-header { color: #7dff9c !important; font-weight: bold !important; }
.ve-ui-mwWikitextSurface .cm-mw-htmlentity,
.ve-ui-mwWikitextSurface .cm-mw-tag-name { color: #ff9a9a !important; }
.ve-ui-mwWikitextSurface .cm-mw-tag-bracket { color: rgba(255, 154, 154, 0.5) !important; }
.ve-ui-mwWikitextSurface .cm-mw-attribute-name { color: #a8d8ea !important; }
.ve-ui-mwWikitextSurface .cm-mw-attribute-value { color: #f5c84a !important; }
.ve-ui-mwWikitextSurface .cm-mw-comment { color: rgba(125, 255, 156, 0.3) !important; font-style: italic !important; }
.ve-ui-mwWikitextSurface .cm-mw-apostrophes-bold { color: rgba(125, 255, 156, 0.5) !important; font-weight: bold !important; }
.ve-ui-mwWikitextSurface .cm-mw-apostrophes-italic { color: rgba(125, 255, 156, 0.5) !important; font-style: italic !important; }
.ve-ui-mwWikitextSurface .cm-mw-table-bracket,
.ve-ui-mwWikitextSurface .cm-mw-table-definition { color: rgba(168, 216, 234, 0.7) !important; }
.ve-ui-mwWikitextSurface .cm-mw-template-variable-bracket,
.ve-ui-mwWikitextSurface .cm-mw-template-variable-name { color: #ff9a9a !important; }
.ve-ui-mwWikitextSurface .cm-mw-parserfunction-name,
.ve-ui-mwWikitextSurface .cm-mw-parserfunction-bracket { color: rgba(245, 200, 74, 0.8) !important; }
.ve-ui-mwWikitextSurface .cm-mw-redirect { color: #7dff9c !important; font-weight: bold !important; }
/* ============================================================
  34. BOUTON LANGUES INTERWIKI
  ============================================================ */
#vt-title-lang-row { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 16px !important; }
#vt-title-lang-row #firstHeading { flex: 1 !important; min-width: 0 !important; }
#p-lang-btn { position: relative; flex-shrink: 0; margin-right: 36px !important; }
.vt-lang-btn-trigger {
  display: inline-flex !important; align-items: center !important; gap: 6px !important;
  background: rgba(125, 255, 156, 0.07) !important; border: 1px solid rgba(125, 255, 156, 0.2) !important;
  border-radius: 2px !important; color: rgba(125, 255, 156, 0.6) !important;
  font-family: 'IBM Plex Mono', monospace !important; font-size: 11px !important;
  text-transform: uppercase !important; letter-spacing: 0.1em !important;
  padding: 6px 12px !important; cursor: pointer !important; white-space: nowrap !important;
  transition: all 0.15s !important;
}
.vt-lang-btn-trigger:hover,
.vt-lang-btn-trigger[aria-expanded="true"] {
  background: rgba(125, 255, 156, 0.14) !important;
  border-color: rgba(125, 255, 156, 0.4) !important;
  color: #7dff9c !important;
}
.vt-lang-list {
  position: absolute; top: calc(100% + 4px); right: 0; z-index: 200;
  background: rgba(8, 18, 12, 0.98) !important; border: 1px solid rgba(125, 255, 156, 0.2) !important;
  border-radius: 3px !important; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.7) !important;
  min-width: 180px; padding: 4px 0;
}
.vt-lang-list[hidden] { display: none !important; }
.vt-lang-list ul { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.vt-lang-list .interlanguage-link a {
  display: flex !important; align-items: center !important; gap: 8px !important;
  padding: 8px 16px !important; color: #cce8d4 !important; text-decoration: none !important;
  font-size: 13px !important; font-family: 'Crimson Pro', Georgia, serif !important;
  border-left: 2px solid transparent !important; transition: all 0.1s !important;
}
.vt-lang-list .interlanguage-link a:hover {
  background: rgba(125, 255, 156, 0.08) !important; color: #7dff9c !important;
  border-left-color: #4ab06a !important;
}
/* ============================================================
  35. GALERIES & VIGNETTES (THUMBS)
  ============================================================ */
ul.gallery,
.mw-parser-output .gallery { background: transparent !important; border: 0 !important; margin: 16px 0 !important; padding: 0 !important; }
li.gallerybox,
.mw-parser-output .gallerybox { background: transparent !important; }
li.gallerybox div.thumb,
.gallerybox .thumb {
  background: rgba(15, 28, 21, 0.65) !important;
  border: 1px solid rgba(125, 255, 156, 0.18) !important;
  border-radius: 2px !important; margin: 2px !important;
  transition: all 0.15s ease;
}
li.gallerybox div.thumb:hover,
.gallerybox .thumb:hover {
  border-color: rgba(125, 255, 156, 0.45) !important;
  box-shadow: 0 0 12px rgba(125, 255, 156, 0.12);
}
.gallerytext,
.gallerybox .gallerytext {
  color: #cce8d4 !important; background: transparent !important;
  font-family: 'Crimson Pro', Georgia, serif !important; padding: 6px 8px !important;
}
.gallerytext p,
.gallerybox .gallerytext p { color: #cce8d4 !important; margin: 0 !important; }
.gallerytext a,
.gallerybox .gallerytext a { color: #7dff9c !important; }
.gallerytext a:hover,
.gallerybox .gallerytext a:hover { color: #b6ffc6 !important; }
.thumbinner,
.mw-parser-output .thumbinner,
.mw-parser-output figure[typeof~="mw:File/Thumb"],
.mw-parser-output figure[typeof~="mw:File/Frame"],
.mw-parser-output figure.mw-default-size,
.mw-parser-output figure.thumb {
  background: rgba(15, 28, 21, 0.65) !important;
  border: 1px solid rgba(125, 255, 156, 0.18) !important;
  border-radius: 2px !important; color: #cce8d4 !important;
}
.mw-parser-output figure[typeof~="mw:File/Thumb"] img.mw-file-element,
.mw-parser-output figure[typeof~="mw:File/Frame"] img.mw-file-element,
.mw-parser-output figure.mw-default-size img.mw-file-element {
  background: transparent !important; border: 0 !important; outline: 0 !important; box-shadow: none !important;
}
.mw-parser-output figure a.mw-file-description,
.mw-parser-output figure a {
  border: 0 !important; outline: 0 !important; background: transparent !important; display: block;
}
.thumbcaption,
.mw-parser-output .thumbcaption,
figcaption,
.mw-parser-output figcaption {
  color: #cce8d4 !important; background: transparent !important; border: 0 !important;
  border-top: 0 !important; outline: 0 !important;
  font-family: 'Crimson Pro', Georgia, serif !important;
  font-style: italic; font-size: 13px !important; padding: 6px 8px !important;
}
.magnify a {
  filter: invert(1) hue-rotate(90deg) saturate(0.6) brightness(1.2) !important;
  opacity: 0.6 !important;
}
.magnify a:hover { opacity: 1 !important; }
/* ============================================================
  36. SCROLLBAR MOBILE — masquage agressif
  ============================================================ */
@media screen and (max-width: 900px) {
  .vt-page-tabs,
  .vt-user-tools,
  .vt-page-tabs *,
  .vt-user-tools * { scrollbar-width: none !important; -ms-overflow-style: none !important; }
  .vt-page-tabs::-webkit-scrollbar,
  .vt-user-tools::-webkit-scrollbar {
    display: none !important; width: 0 !important; height: 0 !important; background: transparent !important;
  }
  .vt-page-tabs::-webkit-scrollbar-track,
  .vt-user-tools::-webkit-scrollbar-track,
  .vt-page-tabs::-webkit-scrollbar-thumb,
  .vt-user-tools::-webkit-scrollbar-thumb { display: none !important; background: transparent !important; }
}
/* ============================================================
  37. CITATIONS (blockquote)
  ============================================================ */
blockquote,
.mw-parser-output blockquote,
.mw-parser-output .noexcerpt:not(.avt-warn-banner):not(.avt-note-banner):not(.avt-section-banner) {
  background: transparent !important; border: 0 !important; box-shadow: none !important;
  padding: 8px 16px !important; margin: 16px auto !important;
  font-style: italic; color: #cce8d4;
  font-family: 'Crimson Pro', Georgia, serif;
  font-size: 16px; line-height: 1.6;
}
blockquote p,
.mw-parser-output blockquote p {
  margin: 0 0 8px !important; background: transparent !important; border: 0 !important;
}
blockquote p:last-child { margin-bottom: 0 !important; }
blockquote audio,
.mw-parser-output blockquote audio,
blockquote .mw-mmv-image,
blockquote figure,
blockquote .floatnone,
blockquote .center {
  border: 0 !important; background: transparent !important; box-shadow: none !important;
  margin: 8px auto !important;
}
/* ============================================================
  38. PAGE RECHERCHE — Special:Recherche
  ============================================================ */
/* Conteneur principal */
.mw-search-results-container,
.searchresults,
#search,
.mw-special-search { color: #cce8d4 !important; }
.search-types,
.mw-search-profile-tabs,
.mw-search-form-wrapper {
  background: transparent !important; border: 0 !important;
  border-bottom: 1px solid rgba(125, 255, 156, 0.15) !important;
}
/* Onglets (Articles / Tout / Multimédia) */
.mw-search-profile-tabs .selected a,
.mw-search-profile-tabs li.selected {
  background: rgba(125, 255, 156, 0.1) !important;
  border-color: rgba(125, 255, 156, 0.35) !important;
  color: #7dff9c !important;
}
.mw-search-profile-tabs li a {
  background: rgba(6, 15, 11, 0.6) !important;
  border-color: rgba(125, 255, 156, 0.15) !important;
  color: #cce8d4 !important;
}
.mw-search-profile-tabs li a:hover {
  background: rgba(125, 255, 156, 0.08) !important; color: #7dff9c !important;
}
/* Champ de saisie principal */
.mw-search-box input[type="search"],
.mw-search-box input[type="text"],
#searchText input,
#powerSearchText {
  background: rgba(8, 20, 14, 0.8) !important;
  border: 1px solid rgba(125, 255, 156, 0.25) !important;
  color: #cce8d4 !important; border-radius: 2px !important;
  padding: 8px 12px !important; font-family: 'IBM Plex Mono', monospace !important;
}
.mw-search-box input:focus,
#powerSearchText:focus {
  border-color: rgba(125, 255, 156, 0.6) !important; outline: none !important;
  box-shadow: 0 0 8px rgba(125, 255, 156, 0.15) !important;
}
/* Bouton Rechercher */
.mw-search-box button,
.mw-search-box input[type="submit"],
#mw-search-top-table button[type="submit"] {
  background: rgba(125, 255, 156, 0.12) !important;
  border: 1px solid rgba(125, 255, 156, 0.3) !important;
  color: #7dff9c !important; font-family: 'IBM Plex Mono', monospace !important;
  text-transform: uppercase !important; font-size: 11px !important;
  letter-spacing: 0.1em !important; padding: 8px 16px !important;
  cursor: pointer !important; border-radius: 2px !important;
}
.mw-search-box button:hover,
.mw-search-box input[type="submit"]:hover {
  background: rgba(125, 255, 156, 0.22) !important;
  border-color: rgba(125, 255, 156, 0.6) !important;
}
/* Résultats */
.mw-search-result,
.searchresult {
  border-bottom: 1px solid rgba(125, 255, 156, 0.08) !important;
  padding: 12px 0 !important; background: transparent !important;
}
.mw-search-result:hover { background: rgba(125, 255, 156, 0.04) !important; }
.mw-search-result-heading a,
.mw-search-results .mw-search-result-heading a {
  color: #7dff9c !important; font-family: 'Crimson Pro', Georgia, serif !important;
  font-size: 18px !important; font-style: italic !important; text-decoration: none !important;
}
.mw-search-result-heading a:hover { color: #b6ffc6 !important; text-decoration: underline !important; }
.searchresult,
.mw-search-result-data,
.mw-search-result .searchresult {
  color: rgba(204, 232, 212, 0.75) !important; font-size: 14px !important;
}
.searchmatch {
  color: #7dff9c !important; font-weight: bold !important;
  background: rgba(125, 255, 156, 0.1) !important;
  border-radius: 2px !important; padding: 0 2px !important;
}
.mw-search-result-data {
  color: rgba(125, 255, 156, 0.4) !important; font-size: 12px !important;
  font-family: 'IBM Plex Mono', monospace !important; margin-top: 4px !important;
}
.mw-search-ns input[type="checkbox"],
.mw-searchoption input[type="checkbox"] { accent-color: #4ab06a !important; }
.mw-search-ns label,
.mw-searchoption label { color: #cce8d4 !important; font-size: 13px !important; }
.mw-search-nonefound,
p.mw-search-nonefound {
  color: rgba(204, 232, 212, 0.6) !important; font-style: italic !important;
  border-left: 2px solid rgba(125, 255, 156, 0.25) !important; padding-left: 12px !important;
}
.searchdidyoumean,
.mw-search-exists { color: #cce8d4 !important; }
.searchdidyoumean a,
.mw-search-exists a { color: #7dff9c !important; }
.mw-search-pager-bottom .mw-prevlink,
.mw-search-pager-bottom .mw-nextlink,
.mw-search-pager-top .mw-prevlink,
.mw-search-pager-top .mw-nextlink {
  color: #7dff9c !important; border: 1px solid rgba(125, 255, 156, 0.25) !important;
  padding: 4px 12px !important; border-radius: 2px !important; text-decoration: none !important;
}
.mw-search-pager-bottom .mw-prevlink:hover,
.mw-search-pager-bottom .mw-nextlink:hover { background: rgba(125, 255, 156, 0.1) !important; }
.results-info,
#mw-search-top-table .results-info {
  color: rgba(125, 255, 156, 0.5) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important; text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
}
/* Recherche avancée — header + bouton */
.mw-advancedSearch-container {
  background: rgba(6, 15, 11, 0.85) !important;
  border: 1px solid rgba(125, 255, 156, 0.12) !important;
  border-radius: 3px !important; margin-bottom: 16px !important;
}
.mw-advancedSearch-expandablePane-button {
  background: rgba(15, 32, 21, 0.6) !important;
  border-bottom: 1px solid rgba(125, 255, 156, 0.1) !important;
}
.mw-advancedSearch-expandablePane-button .oo-ui-buttonElement-button {
  background: transparent !important; border: 0 !important;
  color: rgba(125, 255, 156, 0.5) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 10px !important; text-transform: uppercase !important;
  letter-spacing: 0.12em !important; padding: 10px 16px !important;
  cursor: pointer !important; transition: color 0.15s !important;
}
.mw-advancedSearch-expandablePane-button .oo-ui-buttonElement-button:hover {
  color: #7dff9c !important; background: rgba(125, 255, 156, 0.05) !important;
}
.mw-advancedSearch-expandablePane-button .oo-ui-indicatorElement-indicator {
  filter: brightness(0) saturate(100%) invert(72%) sepia(20%) saturate(400%) hue-rotate(76deg) !important;
  opacity: 0.5 !important;
}
/* Panneau dépliable */
.mw-advancedSearch-expandablePane-pane,
.mw-advancedSearch-expandablePane-options,
.mw-advancedSearch-expandablePane-namespaces {
  background: rgba(4, 10, 7, 0.6) !important;
  border-top: 1px solid rgba(125, 255, 156, 0.1) !important;
  padding: 16px !important;
}
.mw-advancedSearch-searchPreview,
.mw-advancedSearch-namespacesPreview { background: transparent !important; }
/* Wrapper global champs */
.mw-advancedSearch-fieldContainer {
  background: transparent !important;
  border: 0 !important; padding: 0 !important; margin: 0 !important;
}
/* Fieldsets */
.mw-advancedSearch-fieldContainer fieldset.oo-ui-fieldsetLayout,
.mw-advancedSearch-container fieldset.oo-ui-fieldsetLayout,
.mw-advancedSearch-expandablePane-pane fieldset.oo-ui-fieldsetLayout {
  background: transparent !important; border: 0 !important;
  border-top: 1px solid rgba(125, 255, 156, 0.1) !important;
  margin: 0 !important; padding: 16px 0 !important;
}
.mw-advancedSearch-fieldContainer fieldset.oo-ui-fieldsetLayout:first-of-type {
  border-top: 0 !important; padding-top: 0 !important;
}
/* Legend (titres de section) */
.mw-advancedSearch-fieldContainer legend.oo-ui-fieldsetLayout-header,
.mw-advancedSearch-container legend.oo-ui-fieldsetLayout-header,
.mw-advancedSearch-expandablePane-pane legend.oo-ui-fieldsetLayout-header,
.mw-special-Search .oo-ui-fieldsetLayout-header,
.mw-advancedSearch-container .oo-ui-fieldsetLayout-header {
  background: transparent !important; border: 0 !important;
  padding: 0 0 12px 0 !important; margin: 0 !important; width: 100% !important;
}
.mw-advancedSearch-fieldContainer legend.oo-ui-fieldsetLayout-header .oo-ui-labelElement-label,
.mw-advancedSearch-container legend.oo-ui-fieldsetLayout-header .oo-ui-labelElement-label,
.mw-special-Search .oo-ui-fieldsetLayout-header .oo-ui-labelElement-label,
.mw-advancedSearch-container .oo-ui-fieldsetLayout-header .oo-ui-labelElement-label {
  color: rgba(125, 255, 156, 0.7) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important; text-transform: uppercase !important;
  letter-spacing: 0.18em !important; font-weight: 500 !important;
}
/* OOUI wrappers transparents */
.mw-special-Search .oo-ui-panelLayout,
.mw-special-Search .oo-ui-fieldsetLayout,
.mw-special-Search .oo-ui-fieldsetLayout-group,
.mw-special-Search .oo-ui-fieldLayout,
.mw-special-Search .oo-ui-fieldLayout-body,
.mw-special-Search .oo-ui-fieldLayout-field,
.mw-special-Search .oo-ui-horizontalLayout,
.mw-search-form .oo-ui-panelLayout,
.mw-search-form .oo-ui-fieldsetLayout,
.mw-advancedSearch-container .oo-ui-panelLayout,
.mw-advancedSearch-container .oo-ui-fieldsetLayout,
.mw-advancedSearch-container .oo-ui-fieldsetLayout-group,
.mw-advancedSearch-container .oo-ui-fieldLayout,
.mw-advancedSearch-container .oo-ui-fieldLayout-body,
.mw-advancedSearch-container .oo-ui-fieldLayout-field,
.mw-advancedSearch-container .oo-ui-horizontalLayout,
.mw-advancedSearch-expandablePane-pane .oo-ui-panelLayout,
.mw-advancedSearch-expandablePane-pane .oo-ui-fieldsetLayout,
.mw-advancedSearch-expandablePane-pane .oo-ui-fieldsetLayout-group,
.mw-advancedSearch-expandablePane-pane .oo-ui-fieldLayout,
.mw-advancedSearch-expandablePane-pane .oo-ui-fieldLayout-body,
.mw-advancedSearch-expandablePane-pane .oo-ui-fieldLayout-field,
.mw-advancedSearch-expandablePane-pane .oo-ui-horizontalLayout,
.mw-advancedSearch-fieldContainer .oo-ui-fieldsetLayout-group {
  background: transparent !important;
  border: 0 !important; box-shadow: none !important;
  padding: 0 !important; margin: 0 !important;
}
/* Catch-all label OOUI dans toute la zone recherche */
.mw-special-Search .oo-ui-labelElement-label,
.mw-advancedSearch-container .oo-ui-labelElement-label,
.mw-advancedSearch-fieldContainer .oo-ui-labelElement-label,
.mw-advancedSearch-expandablePane-pane .oo-ui-labelElement-label,
.mw-advancedSearch-expandablePane-options .oo-ui-labelElement-label,
.mw-advancedSearch-expandablePane-namespaces .oo-ui-labelElement-label {
  color: rgba(204, 232, 212, 0.85) !important;
  background: transparent !important;
}
/* Labels des fields */
.mw-advancedSearch-fieldContainer .oo-ui-fieldLayout-header .oo-ui-labelElement-label,
.mw-advancedSearch-fieldContainer .oo-ui-fieldLayout-header label,
.mw-advancedSearch-expandablePane-pane .oo-ui-fieldLayout-header .oo-ui-labelElement-label,
.mw-advancedSearch-expandablePane-pane .oo-ui-fieldLayout-header label {
  color: rgba(204, 232, 212, 0.65) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important; text-transform: none !important;
  letter-spacing: 0.02em !important; font-weight: 400 !important;
}
/* Inputs texte */
.mw-advancedSearch-fieldContainer .oo-ui-textInputWidget,
.mw-advancedSearch-fieldContainer .oo-ui-textInputWidget input,
.mw-advancedSearch-expandablePane-pane .oo-ui-textInputWidget input,
.mw-advancedSearch-expandablePane-options input[type="text"],
.mw-advancedSearch-expandablePane-options input[type="search"],
.mw-advancedSearch-expandablePane-options input[type="number"] {
  background: rgba(4, 10, 7, 0.95) !important;
  border: 1px solid rgba(125, 255, 156, 0.2) !important;
  border-radius: 2px !important; color: #cce8d4 !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 13px !important; padding: 8px 12px !important;
  caret-color: #7dff9c !important; min-height: 36px !important;
}
.mw-advancedSearch-fieldContainer .oo-ui-textInputWidget input:focus,
.mw-advancedSearch-expandablePane-options input:focus {
  border-color: rgba(125, 255, 156, 0.5) !important;
  box-shadow: 0 0 0 2px rgba(125, 255, 156, 0.1) !important;
  outline: none !important;
}
.mw-advancedSearch-fieldContainer .oo-ui-textInputWidget input::placeholder,
.mw-advancedSearch-expandablePane-options input::placeholder {
  color: rgba(125, 255, 156, 0.25) !important; font-style: italic !important;
}
/* Tags multiselect */
.mw-advancedSearch-fieldContainer .oo-ui-tagMultiselectWidget,
.mw-advancedSearch-fieldContainer .oo-ui-tagMultiselectWidget-handle,
.mw-advancedSearch-fieldContainer .oo-ui-tagMultiselectWidget-content,
.mw-advancedSearch-fieldContainer .oo-ui-tagMultiselectWidget-group {
  background: rgba(4, 10, 7, 0.95) !important;
  border: 0 !important;
}
.mw-advancedSearch-fieldContainer .oo-ui-tagMultiselectWidget-handle {
  border: 1px solid rgba(125, 255, 156, 0.2) !important;
  border-radius: 2px !important;
  min-height: 36px !important; padding: 4px 8px !important;
}
.mw-advancedSearch-fieldContainer .oo-ui-tagMultiselectWidget-handle:focus-within {
  border-color: rgba(125, 255, 156, 0.5) !important;
  box-shadow: 0 0 0 2px rgba(125, 255, 156, 0.1) !important;
}
.mw-advancedSearch-fieldContainer .oo-ui-tagMultiselectWidget input.oo-ui-inputWidget-input {
  background: transparent !important; border: 0 !important;
  color: #cce8d4 !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 13px !important; padding: 4px !important; min-height: 26px !important;
}
/* Tags items */
.mw-advancedSearch-namespace .oo-ui-tagItemWidget,
.mw-advancedSearch-expandablePane-namespaces .oo-ui-tagItemWidget,
.mw-advancedSearch-fieldContainer .oo-ui-tagItemWidget {
  background: rgba(125, 255, 156, 0.1) !important;
  border: 1px solid rgba(125, 255, 156, 0.3) !important;
  border-radius: 2px !important; color: #7dff9c !important;
  font-family: 'IBM Plex Mono', monospace !important; font-size: 11px !important;
}
.mw-advancedSearch-namespace .oo-ui-tagItemWidget .oo-ui-labelElement-label,
.mw-advancedSearch-fieldContainer .oo-ui-tagItemWidget .oo-ui-labelElement-label {
  color: #7dff9c !important; text-transform: none !important;
}
.mw-advancedSearch-namespace .oo-ui-tagItemWidget .oo-ui-buttonElement-button,
.mw-advancedSearch-fieldContainer .oo-ui-tagItemWidget .oo-ui-buttonElement-button {
  color: rgba(125, 255, 156, 0.5) !important;
  background: transparent !important; border: 0 !important;
}
.mw-advancedSearch-namespace .oo-ui-tagItemWidget .oo-ui-buttonElement-button:hover,
.mw-advancedSearch-fieldContainer .oo-ui-tagItemWidget .oo-ui-buttonElement-button:hover {
  color: #ff7a7a !important;
}
/* Champ "Ajouter des espaces de noms" */
.mw-advancedSearch-namespace .oo-ui-tagMultiselectWidget-handle,
.mw-advancedSearch-expandablePane-namespaces .oo-ui-tagMultiselectWidget {
  background: rgba(4, 10, 7, 0.95) !important;
  border: 1px solid rgba(125, 255, 156, 0.2) !important;
  border-radius: 2px !important; min-height: 36px !important;
  padding: 4px 8px !important;
}
.mw-advancedSearch-namespace .oo-ui-tagMultiselectWidget input,
.mw-advancedSearch-expandablePane-namespaces .oo-ui-tagMultiselectWidget input {
  color: #cce8d4 !important; font-family: 'IBM Plex Mono', monospace !important;
  font-size: 12px !important; background: transparent !important; border: 0 !important;
}
.mw-advancedSearch-namespace .oo-ui-tagMultiselectWidget input::placeholder {
  color: rgba(125, 255, 156, 0.25) !important; font-style: italic !important;
}
/* Selects natifs */
.mw-advancedSearch-fieldContainer select.oo-ui-inputWidget-input,
.mw-advancedSearch-container select.oo-ui-inputWidget-input,
.mw-advancedSearch-expandablePane-pane select.oo-ui-inputWidget-input,
.mw-advancedSearch-fieldContainer .oo-ui-dropdownInputWidget select,
.mw-advancedSearch-container .oo-ui-dropdownInputWidget select {
  background: rgba(4, 10, 7, 0.95) !important;
  color: #cce8d4 !important;
  border: 1px solid rgba(125, 255, 156, 0.2) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 13px !important;
}
.mw-advancedSearch-fieldContainer select.oo-ui-inputWidget-input option,
.mw-advancedSearch-fieldContainer select.oo-ui-inputWidget-input optgroup {
  background: #060f0b !important; color: #cce8d4 !important;
}
.mw-advancedSearch-fieldContainer select.oo-ui-inputWidget-input optgroup {
  color: rgba(125, 255, 156, 0.6) !important; font-style: italic !important;
}
/* Dropdown handle */
.mw-advancedSearch-expandablePane-pane .oo-ui-dropdownWidget-handle,
.mw-advancedSearch-expandablePane-options .oo-ui-dropdownWidget-handle {
  background: rgba(4, 10, 7, 0.95) !important;
  border: 1px solid rgba(125, 255, 156, 0.2) !important;
  border-radius: 2px !important; color: #cce8d4 !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 12px !important; min-height: 36px !important;
}
.mw-advancedSearch-expandablePane-pane .oo-ui-dropdownWidget-handle:hover {
  border-color: rgba(125, 255, 156, 0.4) !important;
}
.mw-advancedSearch-expandablePane-pane .oo-ui-dropdownWidget .oo-ui-labelElement-label {
  color: #cce8d4 !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 12px !important; text-transform: none !important; letter-spacing: 0 !important;
}
.mw-advancedSearch-expandablePane-pane .oo-ui-indicatorElement-indicator,
.mw-advancedSearch-expandablePane-options .oo-ui-indicatorElement-indicator {
  filter: brightness(0) saturate(100%) invert(72%) sepia(20%) saturate(400%) hue-rotate(76deg) !important;
  opacity: 0.4 !important;
}
/* Checkboxes Special:Search */
.mw-special-Search .oo-ui-checkboxInputWidget [type='checkbox'] + span,
.mw-advancedSearch-container .oo-ui-checkboxInputWidget [type='checkbox'] + span {
  background-color: rgba(6, 15, 11, 0.95) !important;
  background-image: none !important;
  border: 1.5px solid rgba(125, 255, 156, 0.35) !important;
  border-radius: 2px !important;
}
.mw-special-Search .oo-ui-checkboxInputWidget [type='checkbox']:checked + span,
.mw-advancedSearch-container .oo-ui-checkboxInputWidget [type='checkbox']:checked + span {
  background-color: rgba(125, 255, 156, 0.18) !important;
  border-color: #7dff9c !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10'%3E%3Cpolyline points='1,5 4.5,8.5 11,1' stroke='%237dff9c' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 10px !important;
}
/* Header sélecteur namespaces */
.mw-advancedSearch-namespace-selection-header,
.mw-advancedSearch-namespace-selection,
.mw-advancedSearch-namespacesPreview {
  background: transparent !important; border: 0 !important;
  display: flex !important; align-items: center !important;
  justify-content: flex-end !important;
  padding: 8px 0 !important; margin-bottom: 8px !important;
}
.mw-advancedSearch-namespace-selection-header .oo-ui-checkboxInputWidget,
.mw-advancedSearch-namespace-selection-header .oo-ui-fieldLayout {
  background: transparent !important;
}
.mw-advancedSearch-namespace-selection-header .oo-ui-labelElement-label,
.mw-advancedSearch-namespace-selection-header label {
  color: rgba(125, 255, 156, 0.55) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 10px !important; text-transform: uppercase !important;
  letter-spacing: 0.1em !important; font-weight: 400 !important; cursor: pointer !important;
}
/* Boutons preset namespaces */
.mw-advancedSearch-namespacesPreset .oo-ui-buttonElement-button,
.mw-advancedSearch-namespace-presets .oo-ui-buttonElement-button,
.mw-advancedSearch-namespace-presets-buttonSelectWidget .oo-ui-buttonElement-button {
  background: rgba(6, 15, 11, 0.85) !important;
  border: 1px solid rgba(125, 255, 156, 0.2) !important;
  color: rgba(125, 255, 156, 0.6) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 10px !important; text-transform: uppercase !important;
  letter-spacing: 0.1em !important; border-radius: 2px !important;
  padding: 6px 12px !important;
}
.mw-advancedSearch-namespacesPreset .oo-ui-buttonElement-button:hover,
.mw-advancedSearch-namespace-presets .oo-ui-buttonElement-button:hover {
  background: rgba(125, 255, 156, 0.08) !important;
  border-color: rgba(125, 255, 156, 0.4) !important;
  color: #7dff9c !important;
}
.mw-advancedSearch-namespacesPreset .oo-ui-buttonElement.oo-ui-flaggedElement-progressive .oo-ui-buttonElement-button,
.mw-advancedSearch-namespace-presets .oo-ui-buttonElement.oo-ui-flaggedElement-progressive .oo-ui-buttonElement-button {
  background: rgba(125, 255, 156, 0.15) !important;
  border-color: #7dff9c !important; color: #7dff9c !important;
}
.mw-advancedSearch-namespacesPreset .oo-ui-buttonGroupWidget,
.mw-advancedSearch-namespace-presets .oo-ui-buttonGroupWidget,
.mw-advancedSearch-namespacesPreset,
.mw-advancedSearch-namespace-presets,
#mw-search-ns,
.mw-search-namespaces {
  background: transparent !important; border: 0 !important;
}
/* Suffixe "px" */
.mw-advancedSearch-fieldContainer .oo-ui-textInputWidget-labelPosition-after .oo-ui-labelElement-label {
  background: rgba(125, 255, 156, 0.06) !important;
  color: rgba(125, 255, 156, 0.5) !important;
  border-left: 1px solid rgba(125, 255, 156, 0.15) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important; padding: 0 10px !important;
}
/* Icônes ⓘ d'aide */
.mw-advancedSearch-expandablePane-pane .oo-ui-iconElement-icon,
.mw-advancedSearch-expandablePane-options .oo-ui-iconElement-icon,
.mw-advancedSearch-fieldContainer .oo-ui-iconElement-icon {
  filter: brightness(0) saturate(100%) invert(72%) sepia(20%) saturate(400%) hue-rotate(76deg) !important;
  opacity: 0.4 !important;
}
/* Aucun résultat + lien créer */
.mw-search-createlink {
  margin-top: 16px !important; padding: 12px !important;
  background: rgba(245, 200, 74, 0.05) !important;
  border-left: 2px solid rgba(245, 200, 74, 0.4) !important;
  border-radius: 2px !important; color: rgba(204, 232, 212, 0.7) !important;
}
.mw-search-createlink a { color: #f5c84a !important; font-weight: 500 !important; }
.mw-search-createlink a:hover { color: #ffe080 !important; }
/* Conteneur global form */
.mw-search-form-wrapper,
#search,
.mw-special-Search #search {
  background: rgba(6, 15, 11, 0.4) !important;
  border: 1px solid rgba(125, 255, 156, 0.1) !important;
  border-radius: 3px !important; padding: 0 !important;
}
/* ============================================================
  39. NOTIFICATIONS / TOAST POST-PUBLICATION
  ============================================================ */
.mw-notification,
.mw-notification-area .mw-notification,
.postedit,
.postedit-container {
  background: rgba(8, 18, 12, 0.97) !important;
  border: 1px solid rgba(125, 255, 156, 0.35) !important;
  border-radius: 3px !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.7), 0 0 0 1px rgba(125, 255, 156, 0.1) !important;
  color: #cce8d4 !important;
  padding: 12px 16px !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
}
.mw-notification-success,
.mw-notification.mw-notification-type-success,
.mw-notification[data-mw-notification-type="success"] {
  border-left: 3px solid #7dff9c !important;
  border-color: rgba(125, 255, 156, 0.4) !important;
}
.mw-notification-warn,
.mw-notification.mw-notification-type-warn {
  border-left: 3px solid #f5c84a !important;
  border-color: rgba(245, 200, 74, 0.4) !important;
}
.mw-notification-error,
.mw-notification.mw-notification-type-error {
  border-left: 3px solid #ff7a7a !important;
  border-color: rgba(255, 122, 122, 0.4) !important;
}
.mw-notification p,
.mw-notification div,
.mw-notification span,
.postedit-content {
  color: #cce8d4 !important;
  background: transparent !important;
  font-family: 'Crimson Pro', Georgia, serif !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
}
.mw-notification strong,
.mw-notification b {
  color: #7dff9c !important;
  font-weight: 600 !important;
}
.mw-notification a,
.postedit a {
  color: #7dff9c !important;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(125, 255, 156, 0.3) !important;
}
.mw-notification a:hover,
.postedit a:hover {
  color: #b6ffc6 !important;
  border-bottom-color: #7dff9c !important;
}
.mw-notification .oo-ui-iconElement-icon,
.postedit .oo-ui-iconElement-icon {
  filter: brightness(0) saturate(100%) invert(91%) sepia(15%) saturate(594%) hue-rotate(76deg) brightness(101%) !important;
  opacity: 0.9 !important;
}
.mw-notification-close,
.postedit-icon-close {
  filter: brightness(0) saturate(100%) invert(72%) sepia(20%) saturate(400%) hue-rotate(76deg) !important;
  opacity: 0.5 !important;
  transition: opacity 0.15s !important;
}
.mw-notification-close:hover,
.postedit-icon-close:hover { opacity: 1 !important; }
.mw-notification-area { background: transparent !important; }
/* ============================================================
  40. WIKITABLE — adaptation à l'infobox (desktop)
  ============================================================ */
@media screen and (min-width: 721px) {
  .mw-parser-output:has(.avt-infobox) .wikitable,
  .mw-parser-output:has(.avt-infobox) .va-table {
    max-width: calc(100% - 344px) !important; /* 320px infobox + ~1.5em marge */
    width: auto !important;
  }
}
/* ============================================================
  41. CORRECTIONS AVANCÉES — liens, tableaux collapsibles
  ============================================================ */
/* Liens rouges (.new) dans les tableaux — ne pas écraser avec le vert */
.mw-parser-output table td a.new,
.mw-parser-output table th a.new,
.mw-parser-output .wikitable td a.new,
.mw-parser-output .wikitable th a.new,
.mw-parser-output .va-table td a.new {
  color: #ff5e5e !important;
}
.mw-parser-output table td a.new:hover,
.mw-parser-output .wikitable td a.new:hover {
  color: #ff8888 !important;
}
/* Liens externes — ambre pour les distinguer des liens internes */
.mw-parser-output a.external,
.mw-parser-output a[rel~="nofollow"] {
  color: #f5c84a !important;
}
.mw-parser-output a.external:visited,
.mw-parser-output a[rel~="nofollow"]:visited {
  color: #c9973a !important;
}
.mw-parser-output a.external:hover,
.mw-parser-output a[rel~="nofollow"]:hover {
  color: #ffe080 !important;
}
/* Tableaux collapsibles — ne pas bloquer le JS avec !important sur display */
/* Le JS MediaWiki masque les lignes via style="display:none" inline.
  Toute règle CSS avec !important sur display écrase ce comportement.
  On stylise uniquement l'apparence sans toucher display. */
.mw-collapsible-toggle,
.mw-collapsible-toggle a {
  color: rgba(125, 255, 156, 0.55) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 10px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  cursor: pointer !important;
  text-decoration: none !important;
  background: transparent !important;
  border: 0 !important;
}
.mw-collapsible-toggle a:hover,
.mw-collapsible-toggle:hover {
  color: #7dff9c !important;
  background: transparent !important;
}
/* Ligne d'en-tête collapsible */
.mw-parser-output .wikitable.mw-collapsible > tbody > tr:first-child > th,
.mw-parser-output table.mw-collapsible > tbody > tr:first-child > th {
  background: rgba(10, 22, 16, 0.95) !important;
  border-bottom: 1px solid rgba(125, 255, 156, 0.2) !important;
}
/* Cellules avec style inline "background: white" ou couleur claire — reset */
.mw-parser-output .wikitable td[style*="background:#fff"],
.mw-parser-output .wikitable td[style*="background: #fff"],
.mw-parser-output .wikitable td[style*="background:white"],
.mw-parser-output .wikitable td[style*="background: white"],
.mw-parser-output .wikitable td[style*="background:#FFF"],
.mw-parser-output .wikitable td[style*="background: #FFF"] {
  background-color: rgba(12, 24, 18, 0.85) !important;
  color: #cce8d4 !important;
}
/* Titre de page — ne pas hériter de l'italique des h2 */
#firstHeading,
.firstHeading {
  font-style: normal !important;
}
/* ============================================================
  42. PAGE PREVIEWS — aperçus au survol des liens (Hovercards)
  ============================================================ */
/* Conteneur racine — fond sombre + ombrage phosphore */
.mwe-popups,
.mwe-popups.mwe-popups-fade-in-up,
.mwe-popups.mwe-popups-fade-in-down,
.mwe-popups.mwe-popups-no-image-tri,
.mwe-popups.mwe-popups-image-tri,
.mwe-popups.mwe-popups-image-pointer,
.mwe-popups.mwe-popups-is-not-tall,
.mwe-popups.mwe-popups-is-tall {
  background: rgba(8, 18, 12, 0.98) !important;
  border: 1px solid rgba(125, 255, 156, 0.25) !important;
  border-radius: 3px !important;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.75),
              0 0 12px rgba(125, 255, 156, 0.08) !important;
  color: #cce8d4 !important;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
/* Force transparence sur tous les conteneurs internes —
  neutralise les fonds blancs résiduels (div, a, container) */
.mwe-popups > div,
.mwe-popups > a,
.mwe-popups > a > div,
.mwe-popups .mwe-popups-container,
.mwe-popups .mwe-popups-extract,
.mwe-popups .mwe-popups-extract p,
.mwe-popups .mwe-popups-discreet,
.mwe-popups .mwe-popups-scroll,
.mwe-popups .mwe-popups-body {
  background-color: transparent !important;
}
/* Lien englobant (<a>) cliquable — fond blanc natif neutralisé */
.mwe-popups a,
.mwe-popups a:link,
.mwe-popups a:visited,
.mwe-popups a:hover {
  background: transparent !important;
  color: #cce8d4 !important;
  text-decoration: none !important;
}
/* Pointe (triangle) — masquer la version blanche par défaut */
.mwe-popups.flipped-x::before,
.mwe-popups.flipped-y::before,
.mwe-popups.flipped-x-y::before,
.mwe-popups::before,
.mwe-popups.flipped-x::after,
.mwe-popups.flipped-y::after,
.mwe-popups.flipped-x-y::after,
.mwe-popups::after {
  border-color: transparent !important;
  display: none !important;
}
/* Titre de l'article dans le popup */
.mwe-popups .mwe-popups-title,
.mwe-popups h3,
.mwe-popups .mwe-popups-extract h3 {
  color: #7dff9c !important;
  font-family: 'Instrument Serif', Georgia, serif !important;
  font-style: italic !important;
  font-size: 1.1rem !important;
  font-weight: normal !important;
  border: 0 !important;
  margin: 0 0 6px 0 !important;
  padding: 0 !important;
}
/* Indicateur de type d'article (icône à côté du titre) */
.mwe-popups .mwe-popups-title .mw-ui-icon {
  filter: brightness(0) saturate(100%) invert(91%) sepia(15%)
          saturate(594%) hue-rotate(76deg) brightness(101%) !important;
  opacity: 0.65 !important;
}
/* Extrait / résumé textuel */
.mwe-popups .mwe-popups-extract {
  color: #cce8d4 !important;
  font-family: 'Crimson Pro', Georgia, serif !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  padding: 14px 16px !important;
}
/* Variante "discreet" : titre seul, sans extrait */
.mwe-popups .mwe-popups-discreet {
  padding: 10px 14px !important;
}
/* Conteneur de la miniature (image d'aperçu) */
.mwe-popups .mwe-popups-thumbnail,
.mwe-popups .mwe-popups-thumbnail-link,
.mwe-popups svg.mwe-popups-thumbnail {
  background: rgba(6, 15, 11, 0.6) !important;
  border-bottom: 1px solid rgba(125, 255, 156, 0.12) !important;
}
/* Filtre teinte phosphore sur la miniature pour rester dans le ton */
.mwe-popups .mwe-popups-thumbnail image,
.mwe-popups svg.mwe-popups-thumbnail image {
  filter: brightness(0.92) saturate(0.9) hue-rotate(-8deg) !important;
}
/* Aperçus "désambiguïsation" / page d'homonymie */
.mwe-popups.mwe-popups-type-disambiguation {
  border-color: rgba(245, 200, 74, 0.35) !important;
}
.mwe-popups.mwe-popups-type-disambiguation .mwe-popups-title {
  color: #f5c84a !important;
}
/* Aperçus "lien rouge" (page inexistante) */
.mwe-popups.mwe-popups-type-generic {
  border-color: rgba(255, 122, 122, 0.35) !important;
}
.mwe-popups.mwe-popups-type-generic .mwe-popups-title {
  color: #ff7a7a !important;
}
/* Barre du bas : paramètres + lien "lire la suite" */
.mwe-popups .mwe-popups-settings,
.mwe-popups footer,
.mwe-popups .mwe-popups-read-link {
  background: rgba(6, 15, 11, 0.6) !important;
  border-top: 1px solid rgba(125, 255, 156, 0.12) !important;
  padding: 8px 14px !important;
}
/* Lien "lire la suite" */
.mwe-popups .mwe-popups-read-link {
  color: #4ab06a !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 10px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  text-decoration: none !important;
}
.mwe-popups .mwe-popups-read-link:hover {
  color: #7dff9c !important;
}
/* Icône engrenage des paramètres */
.mwe-popups .mwe-popups-settings-icon,
.mwe-popups .mw-ui-icon-popups-settings {
  filter: brightness(0) saturate(100%) invert(72%) sepia(20%)
          saturate(400%) hue-rotate(76deg) brightness(100%) !important;
  opacity: 0.45 !important;
  transition: opacity 0.15s !important;
}
.mwe-popups .mwe-popups-settings-icon:hover,
.mwe-popups .mw-ui-icon-popups-settings:hover {
  opacity: 1 !important;
}
/* Dialogue des paramètres Page Previews (Spécial:Préférences modal) */
.mwe-popups-settings .oo-ui-window-frame,
.mw-popups-settings .oo-ui-window-frame {
  background: rgba(10, 20, 15, 0.98) !important;
  border: 1px solid rgba(125, 255, 156, 0.2) !important;
}
}


/* ============================================================
// Outils utilisateur
  43. DIFF VIEW — comparaison de versions
.vt-user-tools {
  ============================================================ */
flex-shrink: 0;
height: 100%;
border-left: 1px solid @border;
padding: 0 8px;
display: flex;
align-items: center;
 
ul {
display: flex;
list-style: none;
margin: 0;
padding: 0;
gap: 2px;
}
 
li a {
font-family: @font-mono;
font-size: 11px;
letter-spacing: 0.1em;
color: @text-dim;
padding: 0 12px;
height: @header-h;
display: flex;
align-items: center;
text-transform: uppercase;
text-decoration: none;
transition: all 0.15s;
 
&:hover {
color: @phosphor;
background: @ph-faint;
}
}
 
// Bouton créer un compte / déconnexion : highlight
#pt-createaccount a,
#pt-logout a {
background: @phosphor;
color: @bg !important;
font-weight: 600;
margin-left: 4px;


/* Tableau de diff principal */
&:hover {
.diff,
background: lighten(@phosphor, 10%);
table.diff,
}
table.mw-diff-table {
}
  background: transparent !important;
  border: 0 !important;
  border-collapse: collapse !important;
  width: 100% !important;
  color: #cce8d4 !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 12.5px !important;
}
}


/* Colonnes header (Version du …) */
// ============================================================
.diff-otitle,
// PAGE CONTAINER
.diff-ntitle {
// ============================================================
  background: rgba(15, 32, 21, 0.8) !important;
.vt-page-container {
  border-bottom: 1px solid rgba(125, 255, 156, 0.2) !important;
display: flex;
  color: #cce8d4 !important;
min-height: calc(100vh - @header-h - 56px);
  padding: 8px 12px !important;
position: relative;
  font-family: 'IBM Plex Mono', monospace !important;
z-index: 2;
  font-size: 11px !important;
  text-align: center !important;
}
}
.diff-otitle a,
.diff-ntitle a { color: #7dff9c !important; }
.diff-otitle a:hover,
.diff-ntitle a:hover { color: #b6ffc6 !important; }


/* Marqueurs +/- en marge */
// ============================================================
.diff-marker {
// SIDEBAR
  color: rgba(125, 255, 156, 0.5) !important;
// ============================================================
  background: transparent !important;
.vt-sidebar {
  font-weight: bold !important;
width: @sidebar-w;
  padding: 0 4px !important;
flex-shrink: 0;
  width: 2em !important;
border-right: 1px solid @border;
  text-align: right !important;
background: linear-gradient(180deg, @bg-panel 0%, @bg 100%);
}
padding: 20px 0;
position: sticky;
top: @header-h;
height: calc(100vh - @header-h);
overflow-y: auto;
overflow-x: hidden;
align-self: flex-start;


/* Numéros de ligne (gouttière) */
&::-webkit-scrollbar { width: 3px; }
.diff-lineno {
&::-webkit-scrollbar-thumb { background: @ph-border; }
  background: rgba(6, 15, 11, 0.9) !important;
  color: rgba(125, 255, 156, 0.5) !important;
  border-bottom: 1px dashed rgba(125, 255, 156, 0.12) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  padding: 4px 8px !important;
}
}


/* Ligne contextuelle (non modifiée) */
.vt-sidebar-section {
.diff-context {
margin-bottom: 24px;
  background: rgba(6, 15, 11, 0.4) !important;
  color: rgba(204, 232, 212, 0.55) !important;
  border-color: rgba(125, 255, 156, 0.08) !important;
  padding: 2px 8px !important;
}
}


/* Ligne supprimée (à gauche) */
.vt-sidebar-title {
.diff-deletedline,
font-family: @font-mono;
td.diff-deletedline {
font-size: 9px;
  background: rgba(255, 94, 94, 0.06) !important;
font-weight: 400;
  border-color: rgba(255, 94, 94, 0.2) !important;
letter-spacing: 0.28em;
  color: #cce8d4 !important;
text-transform: uppercase;
  padding: 2px 8px !important;
color: @text-muted;
}
padding: 0 18px 8px;
.diff-deletedline .diffchange {
margin: 0 0 4px;
  background: rgba(255, 94, 94, 0.22) !important;
border-bottom: 1px dashed @border;
  color: #ffb8b8 !important;
  text-decoration: none !important;
  padding: 1px 2px !important;
  border-radius: 1px !important;
  font-weight: 500 !important;
}
}


/* Ligne ajoutée (à droite) */
.vt-sidebar-section ul {
.diff-addedline,
list-style: none;
td.diff-addedline {
margin: 0;
  background: rgba(125, 255, 156, 0.06) !important;
padding: 0;
  border-color: rgba(125, 255, 156, 0.2) !important;
  color: #cce8d4 !important;
  padding: 2px 8px !important;
}
.diff-addedline .diffchange {
  background: rgba(125, 255, 156, 0.22) !important;
  color: #b6ffc6 !important;
  text-decoration: none !important;
  padding: 1px 2px !important;
  border-radius: 1px !important;
  font-weight: 500 !important;
}


/* Ligne vide (séparateur sections du diff) */
li a {
.diff-empty { background: transparent !important; }
display: block;
padding: 7px 18px;
font-family: @font-mono;
font-size: 12px;
color: @text-dim;
border-left: 2px solid transparent;
text-decoration: none;
transition: all 0.15s;


/* Marqueur "Ligne X :" */
&:hover {
.mw-diff-otitle1,
color: @phosphor;
.mw-diff-otitle2,
background: @ph-faint;
.mw-diff-otitle3,
border-left-color: @ph-dim;
.mw-diff-otitle4,
}
.mw-diff-otitle5,
}
.mw-diff-ntitle1,
.mw-diff-ntitle2,
.mw-diff-ntitle3,
.mw-diff-ntitle4,
.mw-diff-ntitle5 {
  color: #cce8d4 !important;
  font-family: 'Crimson Pro', Georgia, serif !important;
  font-size: 13px !important;
}
}


/* Bouton "annuler/défaire" en tête de diff */
// ============================================================
.mw-diff-undo a,
// ONGLETS
.mw-diff-revert a {
// ============================================================
  color: #f5c84a !important;
.vt-page-tabs {
   font-family: 'IBM Plex Mono', monospace !important;
display: flex;
  font-size: 11px !important;
align-items: flex-end;
  text-transform: uppercase !important;
height: @tab-h;
  letter-spacing: 0.1em !important;
padding: 0 32px;
}
gap: 2px;
background: @bg-panel;
border-bottom: 1px solid @border;
font-family: @font-mono;
flex-shrink: 0;
overflow-x: auto;
overflow-y: hidden;
-webkit-overflow-scrolling: touch;
scrollbar-width: thin;
scrollbar-color: rgba(125, 255, 156, 0.25) transparent;
position: sticky;
top: @header-h;   // colle sous le header sticky
z-index: 500;    // sous l'overlay drawer mobile (999), sous le header sticky (1100)
&::-webkit-scrollbar { height: 3px; }
&::-webkit-scrollbar-track { background: transparent; }
&::-webkit-scrollbar-thumb {
background: rgba(125, 255, 156, 0.25);
border-radius: 2px;
&:hover { background: rgba(125, 255, 156, 0.5); }
}


/* Inline diff (pour DiscussionTools, MobileFrontend) */
ul {
.mw-diff-inline-added,
display: flex;
ins.mw-diff-inline-added {
list-style: none;
  background: rgba(125, 255, 156, 0.18) !important;
margin: 0;
  color: #b6ffc6 !important;
padding: 0;
  text-decoration: none !important;
gap: 2px;
  border-radius: 1px !important;
height: 100%;
  padding: 0 2px !important;
align-items: flex-end;
}
}
.mw-diff-inline-deleted,
del.mw-diff-inline-deleted {
  background: rgba(255, 94, 94, 0.18) !important;
  color: #ffb8b8 !important;
  text-decoration: line-through !important;
  border-radius: 1px !important;
  padding: 0 2px !important;
}


/* Indicateur de modification (édition tag) */
li a {
.mw-tag-marker,
display: flex;
.mw-tag-markers a {
align-items: center;
  background: rgba(245, 200, 74, 0.12) !important;
padding: 0 14px;
  border: 1px solid rgba(245, 200, 74, 0.3) !important;
height: 36px;
  color: #f5c84a !important;
font-size: 11px;
  padding: 1px 6px !important;
letter-spacing: 0.12em;
  border-radius: 2px !important;
text-transform: uppercase;
  font-family: 'IBM Plex Mono', monospace !important;
color: @text-dim;
  font-size: 10px !important;
border: 1px solid transparent;
  text-transform: uppercase !important;
border-bottom: none;
  letter-spacing: 0.05em !important;
margin-bottom: -1px;
}
text-decoration: none;
transition: all 0.15s;


&:hover {
color: @phosphor;
background: @ph-faint;
}
}


/* ============================================================
// Onglet actif
  44. DISCUSSIONTOOLS — pages de discussion modernes
li.selected a,
  ============================================================ */
li.new.selected a {
color: @phosphor;
border-color: @border;
border-bottom-color: @bg;
background: @bg;
}


/* Boutons "Répondre", "Souscrire", "Ajouter un sujet" */
// Onglet "nouvel article" (rouge)
.ext-discussiontools-init-replylink-buttons .oo-ui-buttonElement-button,
li.new a {
.ext-discussiontools-init-section-subscribeButton .oo-ui-buttonElement-button,
color: @danger;
.ext-discussiontools-init-new-topic .oo-ui-buttonElement-button {
opacity: 0.7;
  background: transparent !important;
}
  border: 1px solid rgba(125, 255, 156, 0.2) !important;
  color: rgba(125, 255, 156, 0.7) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 10px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  border-radius: 2px !important;
  padding: 4px 10px !important;
  transition: all 0.15s !important;
}
}
.ext-discussiontools-init-replylink-buttons .oo-ui-buttonElement-button:hover,
 
.ext-discussiontools-init-section-subscribeButton .oo-ui-buttonElement-button:hover,
.vt-tabs-sep {
.ext-discussiontools-init-new-topic .oo-ui-buttonElement-button:hover {
flex: 1;
  background: rgba(125, 255, 156, 0.08) !important;
  border-color: rgba(125, 255, 156, 0.5) !important;
  color: #7dff9c !important;
}
}


/* Icônes des boutons */
// ============================================================
.ext-discussiontools-init-replylink-buttons .oo-ui-iconElement-icon,
// ARTICLE
.ext-discussiontools-init-section-subscribeButton .oo-ui-iconElement-icon {
// ============================================================
  filter: brightness(0) saturate(100%) invert(91%) sepia(15%) saturate(594%) hue-rotate(76deg) brightness(101%) !important;
.vt-content-container {
  opacity: 0.65 !important;
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
}
}


/* Liens "Répondre" / "Modifier" textuels (legacy) */
// Wrapper interne : article + TOC en flex row sur desktop
.ext-discussiontools-init-replylink-reply,
.vt-content-row {
.ext-discussiontools-init-replylink-open {
display: flex;
  color: #4ab06a !important;
flex: 1;
  font-family: 'IBM Plex Mono', monospace !important;
min-width: 0;
  font-size: 11px !important;
min-height: 0;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  text-decoration: none !important;
}
}
.ext-discussiontools-init-replylink-reply:hover,
 
.ext-discussiontools-init-replylink-open:hover {
.vt-content-main {
  color: #7dff9c !important;
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
}
}


/* Conteneur d'une section commentée */
#bodyContent, .vt-article {
.ext-discussiontools-init-section,
flex: 1;
.ext-discussiontools-init-highlight,
padding: 36px 40px 60px;
.ext-discussiontools-init-targetcomment {
max-width: 960px;
  background: rgba(125, 255, 156, 0.04) !important;
  border-left: 2px solid rgba(125, 255, 156, 0.25) !important;
  padding-left: 12px !important;
  margin: 8px 0 !important;
  border-radius: 2px !important;
}
}


/* Surlignage du commentaire ciblé (lien #cXXX) */
// Titre principal
.ext-discussiontools-init-targetcomment {
.firstHeading {
  background: rgba(245, 200, 74, 0.08) !important;
font-family: @font-serif;
  border-left-color: rgba(245, 200, 74, 0.4) !important;
font-style: italic;
font-size: 46px;
line-height: 1.05;
letter-spacing: -0.01em;
color: @text;
margin: 0 0 20px;
padding-bottom: 16px;
border-bottom: 1px dashed @border;
}
}


/* Boîte d'auteur de commentaire */
// Sous-titres — structure MW 1.44+ avec .mw-heading wrapper
.ext-discussiontools-init-timestamplink {
.mw-body-content {
  color: rgba(125, 255, 156, 0.5) !important;
 
  font-family: 'IBM Plex Mono', monospace !important;
// Le flex est sur .mw-heading (le wrapper), pas sur h2
  font-size: 11px !important;
.mw-heading {
}
display: flex;
.ext-discussiontools-init-timestamplink:hover { color: #7dff9c !important; }
align-items: baseline;
border-bottom: 1px solid @border;
margin: 32px 0 14px;
padding-bottom: 8px;
}
 
h2 {
font-family: @font-serif;
font-style: italic;
font-size: 28px;
color: @text;
margin: 0;
padding-bottom: 0;
border-bottom: 0;
display: block;
flex: 1;
}


/* Surface d'édition inline */
h3 {
.ext-discussiontools-ui-replyWidget,
font-family: @font-mono;
.ext-discussiontools-ui-newTopic {
font-size: 13px;
  background: rgba(6, 15, 11, 0.85) !important;
font-weight: 600;
  border: 1px solid rgba(125, 255, 156, 0.2) !important;
color: @phosphor;
  border-radius: 3px !important;
letter-spacing: 0.1em;
  padding: 12px !important;
text-transform: uppercase;
  margin: 8px 0 !important;
margin: 22px 0 10px;
}
padding-left: 10px;
border-left: 2px solid @phosphor;
}


/* Boutons "Publier" / "Annuler" du widget réponse */
h4 {
.ext-discussiontools-ui-replyWidget-actions .oo-ui-flaggedElement-progressive .oo-ui-buttonElement-button,
font-family: @font-mono;
.ext-discussiontools-ui-replyWidget-actions .oo-ui-flaggedElement-primary .oo-ui-buttonElement-button {
font-size: 12px;
  background: rgba(125, 255, 156, 0.15) !important;
font-weight: 500;
  border: 1px solid rgba(125, 255, 156, 0.4) !important;
color: @text-dim;
  color: #7dff9c !important;
letter-spacing: 0.1em;
  font-family: 'IBM Plex Mono', monospace !important;
text-transform: uppercase;
  font-size: 11px !important;
margin: 18px 0 8px;
  text-transform: uppercase !important;
}
  letter-spacing: 0.1em !important;
}
.ext-discussiontools-ui-replyWidget-actions .oo-ui-flaggedElement-progressive .oo-ui-buttonElement-button:hover,
.ext-discussiontools-ui-replyWidget-actions .oo-ui-flaggedElement-primary .oo-ui-buttonElement-button:hover {
  background: rgba(125, 255, 156, 0.28) !important;
  border-color: #7dff9c !important;
  box-shadow: 0 0 10px rgba(125, 255, 156, 0.2) !important;
}


/* Mode "ping" — mention d'un utilisateur */
p {
.ext-discussiontools-init-pingmark {
margin-bottom: 14px;
  color: #7dff9c !important;
}
  background: rgba(125, 255, 156, 0.1) !important;
  border-radius: 2px !important;
  padding: 0 4px !important;
}


// Liens de modification de section
.mw-editsection {
font-family: @font-mono;
font-size: 10px;
letter-spacing: 0.1em;
font-style: normal;
margin-left: 10px;


/* ============================================================
a {
  45. ECHO — badges & menus de notifications (header)
color: @text-muted;
  ============================================================ */
border: 1px solid @border;
padding: 2px 8px;
transition: all 0.15s;


/* Cloches dans la barre utilisateur */
&:hover {
.mw-echo-notifications-badge,
color: @phosphor;
#pt-notifications-alert .mw-echo-notifications-badge,
border-color: @ph-dim;
#pt-notifications-notice .mw-echo-notifications-badge {
background: @ph-faint;
  background: transparent !important;
text-decoration: none;
  color: rgba(125, 255, 156, 0.6) !important;
}
  border: 0 !important;
}
  padding: 4px 6px !important;
}
}
.mw-echo-notifications-badge:hover {
  color: #7dff9c !important;
  background: rgba(125, 255, 156, 0.08) !important;
}
}


/* Badge "non lu" (cercle rouge avec nombre) */
// ============================================================
.mw-echo-notifications-badge-all-read { opacity: 0.5 !important; }
// INFOBOX
.mw-echo-unread-notifications {
// ============================================================
  background: #f5c84a !important;
.infobox,
  color: #06100b !important;
.mw-parser-output .infobox {
  border-radius: 50% !important;
float: right;
  font-family: 'IBM Plex Mono', monospace !important;
margin: 0 0 20px 28px;
  font-size: 9px !important;
width: 260px;
  font-weight: 600 !important;
border: 1px solid @ph-border;
  padding: 2px 5px !important;
background: @bg-infobox;
  min-width: 16px !important;
font-family: @font-mono;
  text-align: center !important;
font-size: 12px;
}
clear: right;


/* Popup déroulant des notifications */
// Titre
.mw-echo-ui-notificationsListWidget,
caption,
.mw-echo-ui-overlay,
th.infobox-title,
.oo-ui-popupWidget.mw-echo-ui-notificationBadgeButton-popup .oo-ui-popupWidget-popup {
.infobox-title,
  background: rgba(8, 18, 12, 0.98) !important;
> tbody > tr:first-child > th {
  border: 1px solid rgba(125, 255, 156, 0.25) !important;
background: @amber !important;
  border-radius: 3px !important;
color: #1a1000 !important;
  color: #cce8d4 !important;
font-family: @font-mono;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.75) !important;
font-weight: 600;
}
font-size: 13px;
letter-spacing: 0.05em;
padding: 10px 14px;
text-align: center;
text-transform: uppercase;
display: block;
}


/* Header du popup (Notifications / Alertes / Avis) */
tr {
.mw-echo-ui-notificationsInboxWidget-toolbarWrapper,
border-top: 1px dashed @border;
.mw-echo-ui-notificationsWrapper-header {
}
  background: rgba(6, 15, 11, 0.95) !important;
  border-bottom: 1px solid rgba(125, 255, 156, 0.15) !important;
  color: #7dff9c !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  padding: 10px 14px !important;
}


/* Chaque ligne de notification */
th {
.mw-echo-ui-notificationItemWidget {
color: @text-muted;
  background: transparent !important;
font-size: 10px;
  border-bottom: 1px solid rgba(125, 255, 156, 0.08) !important;
letter-spacing: 0.08em;
  padding: 10px 14px !important;
text-transform: uppercase;
  color: #cce8d4 !important;
padding: 7px 12px;
  font-family: 'Crimson Pro', Georgia, serif !important;
font-weight: 400;
  transition: background 0.1s !important;
text-align: left;
}
vertical-align: top;
.mw-echo-ui-notificationItemWidget:hover {
background: transparent;
  background: rgba(125, 255, 156, 0.05) !important;
width: 42%;
}
}


/* Notification non lue */
td {
.mw-echo-ui-notificationItemWidget-unread {
color: @text;
  background: rgba(125, 255, 156, 0.04) !important;
padding: 7px 12px;
  border-left: 2px solid rgba(125, 255, 156, 0.4) !important;
vertical-align: top;
font-size: 11px;
background: transparent;
}
}
}


/* Texte principal de la notif */
// ============================================================
.mw-echo-ui-notificationItemWidget-content-message-header { color: #cce8d4 !important; }
// TABLEAUX WIKI
.mw-echo-ui-notificationItemWidget-content-message-body { color: rgba(204, 232, 212, 0.7) !important; font-size: 13px !important; }
// ============================================================
.wikitable {
border-collapse: collapse;
width: 100%;
margin-bottom: 20px;
background: transparent;


/* Timestamp */
th {
.mw-echo-ui-notificationItemWidget-content-actions-timestamp {
background: @bg-elevated;
  color: rgba(125, 255, 156, 0.4) !important;
color: @phosphor;
  font-family: 'IBM Plex Mono', monospace !important;
font-family: @font-mono;
  font-size: 10px !important;
font-size: 10px;
}
letter-spacing: 0.15em;
text-transform: uppercase;
padding: 8px 14px;
text-align: left;
border: 1px solid @border;
}


/* Liens dans les notifications */
td {
.mw-echo-ui-notificationItemWidget a { color: #7dff9c !important; }
padding: 8px 14px;
.mw-echo-ui-notificationItemWidget a:hover { color: #b6ffc6 !important; }
border: 1px solid @border;
color: @text;
vertical-align: top;
font-size: 14px;
}


/* Footer "Toutes les notifications" / "Préférences" */
tr:hover td {
.mw-echo-ui-notificationsWrapper-footer,
background: @ph-faint;
.mw-echo-ui-notificationBadgeButton-popup-footer {
}
  background: rgba(6, 15, 11, 0.95) !important;
  border-top: 1px solid rgba(125, 255, 156, 0.12) !important;
  padding: 8px 14px !important;
}
}
.mw-echo-ui-notificationsWrapper-footer a {
  color: rgba(125, 255, 156, 0.55) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 10px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
}
.mw-echo-ui-notificationsWrapper-footer a:hover { color: #7dff9c !important; }


/* Icônes des notifications */
// ============================================================
.mw-echo-ui-notificationItemWidget .oo-ui-iconElement-icon {
// TABLE DES MATIÈRES
  filter: brightness(0) saturate(100%) invert(91%) sepia(15%) saturate(594%) hue-rotate(76deg) brightness(101%) !important;
// ============================================================
  opacity: 0.55 !important;
.toc,
}
#toc {
background: @bg-panel;
border: 1px solid @border;
padding: 14px 0 10px;
font-family: @font-mono;
display: inline-block;
margin: 0 0 20px;
min-width: 200px;
 
.toctitle {
font-size: 9px;
letter-spacing: 0.28em;
text-transform: uppercase;
color: @text-muted;
padding: 0 16px 10px;
border-bottom: 1px dashed @border;
margin-bottom: 6px;


/* Page Spécial:Notifications */
h2 {
.mw-special-Notifications .mw-echo-ui-notificationItemWidget {
// Override l'h2 général pour la TOC
  background: rgba(6, 15, 11, 0.6) !important;
font-family: @font-mono;
  border: 1px solid rgba(125, 255, 156, 0.1) !important;
font-size: 9px;
  border-radius: 2px !important;
font-style: normal;
  margin-bottom: 4px !important;
color: @text-muted;
}
margin: 0;
padding: 0;
border: none;
}
}


ul {
list-style: none;
margin: 0;
padding: 0;


/* ============================================================
li a {
  46. CITE — références [1][2] et notes de bas de page
display: flex;
  ============================================================ */
align-items: baseline;
gap: 8px;
padding: 5px 16px;
font-size: 11px;
color: @text-dim;
line-height: 1.3;
transition: all 0.15s;
border-left: 2px solid transparent;


/* Numérotation [1] [2] inline */
&:hover {
.reference,
color: @phosphor;
sup.reference {
text-decoration: none;
  font-family: 'IBM Plex Mono', monospace !important;
background: @ph-faint;
}
border-left-color: @ph-dim;
.reference a,
}
sup.reference a {
}
  color: #7dff9c !important;
  background: rgba(125, 255, 156, 0.06) !important;
  border: 1px solid rgba(125, 255, 156, 0.15) !important;
  border-radius: 2px !important;
  padding: 0 3px !important;
  font-size: 0.75em !important;
  font-weight: 500 !important;
  text-decoration: none !important;
}
.reference a:hover,
sup.reference a:hover {
  background: rgba(125, 255, 156, 0.15) !important;
  border-color: rgba(125, 255, 156, 0.4) !important;
  color: #b6ffc6 !important;
}


/* Highlight de la cible quand on clique sur [1] */
// Sous-niveaux
.mw-parser-output li:target,
ul li a {
.mw-parser-output sup:target,
padding-left: 28px;
.mw-parser-output ol.references li:target,
font-size: 10px;
ol.references li:target {
color: @text-muted;
  background: rgba(245, 200, 74, 0.1) !important;
}
  border-left: 2px solid #f5c84a !important;
}
  padding-left: 8px !important;
  margin-left: -10px !important;
  border-radius: 2px !important;
  transition: background 0.3s !important;
}


/* Flèche de retour ↑ depuis la liste des références */
.tocnumber {
.mw-cite-backlink,
color: @text-muted;
.mw-cite-backlink a,
font-size: 10px;
.references .mw-cite-backlink a {
flex-shrink: 0;
  color: rgba(125, 255, 156, 0.6) !important;
min-width: 18px;
  text-decoration: none !important;
}
  font-weight: bold !important;
}
}
.mw-cite-backlink a:hover { color: #7dff9c !important; }


/* Liste des références <references/> */
// ============================================================
.references,
// BANDEAUX & NOTICES
ol.references,
// ============================================================
.mw-parser-output ol.references {
.ambox,
  font-size: 0.88em !important;
.mbox-small {
  line-height: 1.6 !important;
border: 1px solid @amber-faint;
  color: rgba(204, 232, 212, 0.85) !important;
background: @amber-faint;
  padding-left: 2em !important;
border-left: 3px solid @amber;
}
padding: 12px 16px;
.references li,
margin-bottom: 16px;
ol.references li {
font-family: @font-mono;
  margin-bottom: 4px !important;
font-size: 12px;
}
color: @text-dim;
letter-spacing: 0.03em;
line-height: 1.6;
display: flex;
gap: 12px;
align-items: flex-start;
clear: both;


/* Sous-références (a, b, c…) */
td {
.mw-cite-backlink sup {
border: none;
  font-family: 'IBM Plex Mono', monospace !important;
padding: 0;
  font-size: 0.85em !important;
background: transparent;
}
}
}


/* Conteneur multi-colonnes <references/> */
// ============================================================
.mw-references-columns,
// CATÉGORIES
.references-small {
// ============================================================
  column-rule: 1px solid rgba(125, 255, 156, 0.08) !important;
#catlinks {
  column-gap: 24px !important;
margin-top: 40px;
}
padding-top: 16px;
border-top: 1px solid @border;
font-family: @font-mono;
font-size: 11px;
display: flex;
align-items: baseline;
gap: 10px;
flex-wrap: wrap;


a {
padding: 2px 10px;
border: 1px solid @border;
color: @text-dim;
font-size: 10px;
letter-spacing: 0.1em;
text-transform: uppercase;
transition: all 0.15s;
text-decoration: none;


/* ============================================================
&:hover {
  47. SYNTAXHIGHLIGHT — Pygments (<syntaxhighlight>)
color: @phosphor;
  ============================================================ */
border-color: @ph-dim;
background: @ph-faint;
}
}


/* Bloc de code principal */
.mw-normal-catlinks {
.mw-highlight,
&::before {
.mw-parser-output .mw-highlight,
content: 'Catégories :';
.mw-highlight pre {
color: @text-muted;
  background: #060f0b !important;
text-transform: uppercase;
  border: 1px solid rgba(125, 255, 156, 0.15) !important;
letter-spacing: 0.2em;
  border-radius: 3px !important;
margin-right: 8px;
  color: #cce8d4 !important;
}
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
  padding: 12px 14px !important;
  overflow-x: auto !important;
}


/* Numéros de ligne (linenos) */
ul {
.mw-highlight .linenos,
display: inline;
.mw-highlight .lineno {
list-style: none;
  color: rgba(125, 255, 156, 0.25) !important;
padding: 0;
  background: transparent !important;
margin: 0;
  border-right: 1px solid rgba(125, 255, 156, 0.1) !important;
}
  padding-right: 10px !important;
  margin-right: 10px !important;
  user-select: none !important;
}


/* Ligne mise en évidence (hl_lines=) */
ul li {
.mw-highlight .hll {
display: inline;
  background: rgba(125, 255, 156, 0.08) !important;
}
  display: block !important;
  margin: 0 -14px !important;
  padding: 0 14px !important;
  border-left: 2px solid #7dff9c !important;
}


/* Coloration syntaxique Pygments — palette phosphore */
ul li::after {
.mw-highlight .c,
content: ' ';
.mw-highlight .c1,
}
.mw-highlight .cm,
}
.mw-highlight .cs,
.mw-highlight .cp { color: rgba(125, 255, 156, 0.4) !important; font-style: italic !important; } /* Commentaires */
.mw-highlight .k,
.mw-highlight .kc,
.mw-highlight .kd,
.mw-highlight .kn,
.mw-highlight .kp,
.mw-highlight .kr,
.mw-highlight .kt { color: #f5c84a !important; font-weight: 500 !important; } /* Keywords */
.mw-highlight .s,
.mw-highlight .s1,
.mw-highlight .s2,
.mw-highlight .sb,
.mw-highlight .sc,
.mw-highlight .sd,
.mw-highlight .se,
.mw-highlight .sh,
.mw-highlight .si,
.mw-highlight .sx,
.mw-highlight .sr,
.mw-highlight .ss { color: #b6ffc6 !important; } /* Strings */
.mw-highlight .m,
.mw-highlight .mf,
.mw-highlight .mh,
.mw-highlight .mi,
.mw-highlight .mo,
.mw-highlight .il { color: #ff9a9a !important; } /* Numbers */
.mw-highlight .n,
.mw-highlight .na,
.mw-highlight .nb,
.mw-highlight .bp,
.mw-highlight .nc,
.mw-highlight .no,
.mw-highlight .nd,
.mw-highlight .ni,
.mw-highlight .ne,
.mw-highlight .nf,
.mw-highlight .nl,
.mw-highlight .nn,
.mw-highlight .nt,
.mw-highlight .nv,
.mw-highlight .vc,
.mw-highlight .vg,
.mw-highlight .vi { color: #cce8d4 !important; } /* Names */
.mw-highlight .nf { color: #a8d8ea !important; } /* Function names */
.mw-highlight .nt { color: #ff9a9a !important; } /* HTML tags */
.mw-highlight .o,
.mw-highlight .ow { color: rgba(125, 255, 156, 0.7) !important; } /* Operators */
.mw-highlight .err {
  color: #ff5e5e !important;
  background: rgba(255, 94, 94, 0.1) !important;
  border-bottom: 1px dashed rgba(255, 94, 94, 0.4) !important;
}
}


/* Code inline `<code>` standard */
// ============================================================
.mw-parser-output code,
// FOOTER
.mw-parser-output tt {
// ============================================================
  background: rgba(6, 15, 11, 0.9) !important;
.vt-footer {
  border: 1px solid rgba(125, 255, 156, 0.12) !important;
border-top: 1px solid @border;
  border-radius: 2px !important;
background: @bg-panel;
  color: #b6ffc6 !important;
padding: 20px 32px;
  font-family: 'IBM Plex Mono', monospace !important;
display: flex;
  font-size: 0.88em !important;
flex-wrap: wrap;
  padding: 1px 5px !important;
align-items: center;
gap: 16px;
font-family: @font-mono;
font-size: 10px;
letter-spacing: 0.12em;
color: @text-muted;
text-transform: uppercase;
position: relative;
z-index: 2;
}
}


/* Pre standard (non-Pygments) */
.vt-footer-links {
.mw-parser-output pre,
display: flex;
.mw-parser-output .mw-code {
gap: 24px;
  background: #060f0b !important;
flex-wrap: wrap;
  border: 1px solid rgba(125, 255, 156, 0.15) !important;
flex: 1;
  border-radius: 3px !important;
  color: #cce8d4 !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
  padding: 12px 14px !important;
  overflow-x: auto !important;
}


ul {
display: flex;
gap: 16px;
list-style: none;
margin: 0;
padding: 0;
}


/* ============================================================
a {
  48. TABBERNEUE — onglets <tabber>
color: @text-muted;
  ============================================================ */
transition: color 0.15s;


/* Conteneur tabber */
&:hover {
.tabber,
color: @phosphor;
.tabber__container,
text-decoration: none;
.mw-parser-output .tabber {
}
  background: transparent !important;
}
  border: 0 !important;
  margin: 16px 0 !important;
}
}


/* Barre d'onglets */
.vt-footer-brand {
.tabber__header,
display: flex;
.tabber__tabs {
align-items: center;
  background: rgba(6, 15, 11, 0.6) !important;
gap: 10px;
  border-bottom: 1px solid rgba(125, 255, 156, 0.2) !important;
font-family: @font-serif;
  padding: 0 !important;
font-style: italic;
  margin: 0 !important;
font-size: 14px;
  display: flex !important;
letter-spacing: 0.01em;
  flex-wrap: wrap !important;
color: @ph-dim;
  gap: 0 !important;
}
}


/* Onglet individuel */
.vt-footer-brand-mark {
.tabber__tab,
width: 22px;
.tabber__header .tabber__tab,
height: 22px;
.tabber__tabs .tabber__tab {
border: 1px solid @ph-dim;
  background: transparent !important;
display: inline-flex;
  border: 0 !important;
align-items: center;
  border-bottom: 2px solid transparent !important;
justify-content: center;
  color: rgba(125, 255, 156, 0.5) !important;
font-size: 12px;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  padding: 10px 16px !important;
  margin: 0 !important;
  cursor: pointer !important;
  text-decoration: none !important;
  transition: all 0.15s !important;
}
.tabber__tab:hover {
  color: #7dff9c !important;
  background: rgba(125, 255, 156, 0.05) !important;
}
}


/* Onglet actif */
.vt-footer-status {
.tabber__tab--active,
font-family: @font-mono;
.tabber__tab[aria-selected="true"] {
font-style: normal;
  color: #7dff9c !important;
font-size: 9px;
  border-bottom-color: #7dff9c !important;
letter-spacing: 0.2em;
  background: rgba(125, 255, 156, 0.08) !important;
color: @text-muted;
display: flex;
align-items: center;
gap: 5px;
}
}


/* Contenu de l'onglet */
.vt-dot {
.tabber__section,
display: inline-block;
.tabber__panel {
width: 6px;
  background: transparent !important;
height: 6px;
  border: 0 !important;
border-radius: 50%;
  padding: 16px 0 !important;
background: @phosphor;
  color: #cce8d4 !important;
box-shadow: 0 0 6px @phosphor;
animation: vt-blink 2s infinite;
}
}


/* Indicateur de défilement (flèches >) sur petits écrans */
@keyframes vt-blink {
.tabber__header__prev,
0%, 100% { opacity: 1; }
.tabber__header__next {
50%      { opacity: 0.3; }
  background: rgba(6, 15, 11, 0.9) !important;
  color: rgba(125, 255, 156, 0.6) !important;
  border: 0 !important;
  cursor: pointer !important;
}
}
.tabber__header__prev:hover,
.tabber__header__next:hover { color: #7dff9c !important; }


/* Version animée pendant la transition */
// ============================================================
.tabber--live .tabber__section {
// PRINT
  transition: opacity 0.2s ease;
// ============================================================
}
@media print {
.noprint,
.vt-header,
.vt-sidebar,
.vt-page-tabs,
.vt-scanlines,
.vt-vignette,
.vt-watermark,
.vt-footer {
display: none !important;
}


body {
background: #fff;
color: #000;
}


/* ============================================================
.firstHeading {
  49. REVISIONSLIDER — slider de diff entre versions
color: #000;
  ============================================================ */
border-bottom: 2px solid #000;
}


/* Conteneur principal du slider */
a {
.mw-revslider-container,
color: #000;
.mw-revslider-wrapper {
}
  background: rgba(6, 15, 11, 0.8) !important;
  border: 1px solid rgba(125, 255, 156, 0.15) !important;
  border-radius: 3px !important;
  color: #cce8d4 !important;
  margin: 8px 0 !important;
  padding: 12px !important;
}
}


/* Bouton toggle (déplier/replier) */
// ============================================================
.mw-revslider-toggle-button {
// RESPONSIVE
  background: transparent !important;
// ============================================================
  border: 1px solid rgba(125, 255, 156, 0.2) !important;
// ── Desktop : burger et overlay cachés ──────────────────────
  color: rgba(125, 255, 156, 0.55) !important;
@media screen and (min-width: 901px) {
  font-family: 'IBM Plex Mono', monospace !important;
.vt-burger {
  font-size: 10px !important;
display: none;
  text-transform: uppercase !important;
}
  letter-spacing: 0.1em !important;
  padding: 4px 10px !important;
  border-radius: 2px !important;
  cursor: pointer !important;
}
.mw-revslider-toggle-button:hover {
  background: rgba(125, 255, 156, 0.08) !important;
  color: #7dff9c !important;
}


/* Axe horizontal (timeline) */
.vt-drawer-overlay {
.mw-revslider-revisions-container,
display: none;
.mw-revslider-revisions {
}
  background: rgba(6, 15, 11, 0.6) !important;
  border: 1px solid rgba(125, 255, 156, 0.1) !important;
  border-radius: 2px !important;
}


/* Barres représentant chaque révision */
// Flèches scroll : mobile-only
.mw-revslider-revision {
.vt-scroll-arrow {
  background: rgba(125, 255, 156, 0.25) !important;
display: none !important;
  border: 0 !important;
}
  transition: background 0.15s !important;
// Les wrappers créés par JS doivent disparaître du flux sur desktop
}
.vt-user-tools-wrap,
.mw-revslider-revision:hover {
.vt-page-tabs-wrap {
  background: rgba(125, 255, 156, 0.5) !important;
display: contents;
}
}
}


/* Révision sélectionnée (les deux côtés du diff) */
@media screen and (max-width: 1100px) {
.mw-revslider-revision-old,
#bodyContent, .vt-article {
.mw-revslider-revision[data-pos="older"] {
padding: 28px 28px 50px;
  background: rgba(255, 94, 94, 0.6) !important;
}
}
.mw-revslider-revision-new,
.mw-revslider-revision[data-pos="newer"] {
  background: rgba(125, 255, 156, 0.7) !important;
}
}


/* Pointers (curseurs glissants gauche/droite) */
@media screen and (max-width: 900px) {
.mw-revslider-pointer-old,
.mw-revslider-pointer-new,
.mw-revslider-pointer {
  background: rgba(8, 18, 12, 0.95) !important;
  border: 1px solid rgba(125, 255, 156, 0.5) !important;
  color: #7dff9c !important;
  border-radius: 2px !important;
}
.mw-revslider-pointer-old { border-color: rgba(255, 94, 94, 0.6) !important; }
.mw-revslider-pointer-new { border-color: rgba(125, 255, 156, 0.6) !important; }


/* Tooltips au survol d'une révision */
// ── Burger button ────────────────────────────────────────────
.mw-revslider-tooltip,
.vt-burger {
.mw-revslider-tooltip .oo-ui-popupWidget-popup {
display: flex;
  background: rgba(8, 18, 12, 0.98) !important;
flex-direction: column;
  border: 1px solid rgba(125, 255, 156, 0.25) !important;
justify-content: center;
  border-radius: 3px !important;
gap: 5px;
  color: #cce8d4 !important;
width: 40px;
  font-family: 'IBM Plex Mono', monospace !important;
height: 40px;
  font-size: 11px !important;
padding: 8px;
  padding: 8px 10px !important;
background: transparent;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.6) !important;
border: 1px solid @border;
}
border-radius: 2px;
cursor: pointer;
flex-shrink: 0;
transition: border-color 0.2s, background 0.2s;
order: -1;
margin-left: 12px;


/* Liens dans le tooltip */
&:hover {
.mw-revslider-tooltip a { color: #7dff9c !important; }
border-color: @phosphor;
background: @ph-faint;
}
}


/* Flèches navigation */
.vt-burger-bar {
.mw-revslider-arrow {
display: block;
  background: transparent !important;
width: 100%;
  color: rgba(125, 255, 156, 0.5) !important;
height: 1.5px;
  border: 0 !important;
background: @text-dim;
  cursor: pointer !important;
border-radius: 1px;
}
transition: all 0.25s ease;
.mw-revslider-arrow:hover { color: #7dff9c !important; }
transform-origin: center;
}


/* Indicateurs de taille (+/- octets) */
// Burger → X quand ouvert
.mw-revslider-revision-wrapper .mw-revslider-bar-bigger,
.vt-burger.is-open {
.mw-revslider-bar-bigger {
border-color: @phosphor;
  background: rgba(125, 255, 156, 0.6) !important;
background: @ph-faint;
}
.mw-revslider-revision-wrapper .mw-revslider-bar-smaller,
.mw-revslider-bar-smaller {
  background: rgba(255, 94, 94, 0.6) !important;
}


.vt-burger-bar:nth-child(1) { transform: translateY(6.5px) rotate(45deg); background: @phosphor; }
.vt-burger-bar:nth-child(2) { opacity: 0; transform: scaleX(0); }
.vt-burger-bar:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); background: @phosphor; }
}


/* ============================================================
// ── Bouton fermer dans le drawer ─────────────────────────────
  50. TABLEPAGER & LISTES SPÉCIALES — pages d'admin et stats
.vt-drawer-close {
  ============================================================ */
display: block;
width: 100%;
padding: 14px 20px;
background: transparent;
border: 0;
border-bottom: 1px solid @border;
color: @text-dim;
font-family: @font-mono;
font-size: 11px;
font-weight: 500;
letter-spacing: 0.12em;
text-transform: uppercase;
text-align: left;
cursor: pointer;
transition: color 0.15s, background 0.15s;


/* Tableau pager générique (Spécial:Statistiques, ListUsers, AllPages…) */
&::before {
table.mw-statistics-table,
content: '✕  ';
table.TablePager,
color: @phosphor;
table.mw-spcontent,
}
.mw-special-Statistics table,
.mw-special-ActiveUsers table,
.mw-special-Listusers table,
.mw-special-Listfiles table,
.mw-special-Listredirects table,
.mw-special-Wantedpages table,
.mw-special-Mostrevisions table,
.mw-special-Brokenredirects table {
  background: rgba(6, 15, 11, 0.75) !important;
  border: 1px solid rgba(125, 255, 156, 0.15) !important;
  border-collapse: collapse !important;
  color: #cce8d4 !important;
  width: 100% !important;
  margin: 12px 0 !important;
}


/* Entêtes de colonnes */
&:hover {
.TablePager th,
background: @ph-faint;
.mw-statistics-table th,
color: @phosphor;
table.mw-spcontent th,
}
.mw-special-Statistics th,
}
.mw-special-ActiveUsers th,
.mw-special-Listusers th,
.mw-special-Listfiles th {
  background: #0f2015 !important;
  border-bottom: 1px solid rgba(125, 255, 156, 0.2) !important;
  color: #7dff9c !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  padding: 10px 12px !important;
  text-align: left !important;
}


/* En-têtes triables */
.TablePager th.TablePager_sort,
.TablePager th.headerSort,
.TablePager th.headerSortUp,
.TablePager th.headerSortDown {
  cursor: pointer !important;
  background-image: none !important;
}
.TablePager th.headerSortUp,
.TablePager th.headerSortDown { color: #7dff9c !important; }
.TablePager th.headerSortUp::after { content: ' ▲'; opacity: 0.7; font-size: 9px; }
.TablePager th.headerSortDown::after { content: ' ▼'; opacity: 0.7; font-size: 9px; }


/* Lignes */
.vt-drawer-overlay {
.TablePager tr,
display: block;
.mw-statistics-table tr,
position: fixed;
table.mw-spcontent tr {
inset: 0;
  background: transparent !important;
background: rgba(0, 0, 0, 0.65);
  border-bottom: 1px solid rgba(125, 255, 156, 0.06) !important;
z-index: 999;              // sous .vt-sidebar (1001), au-dessus de tout le reste
}
opacity: 0;
pointer-events: none;
transition: opacity 0.3s ease;
-webkit-backdrop-filter: blur(2px);
backdrop-filter: blur(2px);


/* Lignes alternées */
&.is-open {
.TablePager tr:nth-child(even),
opacity: 1;
.TablePager_even {
pointer-events: auto;  // capture les clics (sinon le contenu derrière reste interactif)
  background: rgba(125, 255, 156, 0.025) !important;
                      // Le handler document click ferme le drawer car l'overlay
}
                      // est hors de .vt-sidebar : un clic dessus déclenche closeDrawer().
.TablePager tr:nth-child(odd),
}
.TablePager_odd {
}
  background: transparent !important;
}
.TablePager tr:hover {
  background: rgba(125, 255, 156, 0.06) !important;
}


/* Cellules */
// ── Sidebar → drawer latéral ─────────────────────────────────
.TablePager td,
.vt-sidebar {
.mw-statistics-table td,
position: fixed !important;
table.mw-spcontent td {
top: 0;
  background: transparent !important;
left: 0;
  border: 0 !important;
width: ~"min(280px, 85vw)";  // limite à 85% du viewport sur très petits écrans
  color: #cce8d4 !important;
height: 100%;
  padding: 8px 12px !important;
overflow-y: auto;
  font-size: 13px !important;
overflow-x: hidden;
}
z-index: 1001;                // au-dessus de l'overlay (999)
background: @bg-panel;
border-right: 1px solid @border;
transform: translateX(-100%);
transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
padding-top: 56px;
box-shadow: none;
align-self: auto;


/* Liens dans les pagers */
&.is-open {
.TablePager a,
transform: translateX(0);
.mw-statistics-table a { color: #7dff9c !important; }
box-shadow: 4px 0 32px rgba(0, 0, 0, 0.6);
.TablePager a:visited { color: #4ab06a !important; }
}
.TablePager a:hover { color: #b6ffc6 !important; }
}


/* Valeur numérique de statistiques (Spécial:Statistiques) */
// Pas de margin-left sur mobile
.mw-statistics-numbers,
.vt-page-container {
.mw-statistics-table td.mw-statistics-numbers {
margin-left: 0 !important;
  font-family: 'IBM Plex Mono', monospace !important;
}
  color: #f5c84a !important;
  text-align: right !important;
  font-weight: 500 !important;
}


/* Pagination des TablePagers */
// Masquer la nav primaire dans le header sur mobile (elle est dans le drawer)
.TablePager_nav,
.vt-nav-primary {
.mw-pager-navigation-bar {
display: none;
  background: rgba(6, 15, 11, 0.6) !important;
}
  border: 1px solid rgba(125, 255, 156, 0.1) !important;
  border-radius: 2px !important;
  padding: 8px 12px !important;
  margin: 8px 0 !important;
  color: rgba(204, 232, 212, 0.7) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important;
}
.TablePager_nav a,
.mw-pager-navigation-bar a,
.mw-numlink {
  color: #4ab06a !important;
  border: 1px solid rgba(125, 255, 156, 0.2) !important;
  background: rgba(6, 15, 11, 0.5) !important;
  padding: 3px 9px !important;
  margin: 0 2px !important;
  border-radius: 2px !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  font-size: 10px !important;
}
.TablePager_nav a:hover,
.mw-pager-navigation-bar a:hover {
  background: rgba(125, 255, 156, 0.1) !important;
  border-color: rgba(125, 255, 156, 0.4) !important;
  color: #7dff9c !important;
}


/* Filtres en haut des pagers */
.infobox,
.mw-pager-body,
.mw-parser-output .infobox {
.mw-pager-tools,
width: 220px;
.mw-htmlform-ooui-wrapper {
}
  background: transparent !important;
  border: 0 !important;
}


/* Page Spécial:Contributions fond des lignes */
// ── Header mobile CSS Grid pour layout fiable ───────────
.mw-contributions-list li,
.vt-header {
.mw-special-Contributions ul li {
display: grid !important;
  border-bottom: 1px solid rgba(125, 255, 156, 0.05) !important;
grid-template-areas:
  padding: 4px 0 !important;
"burger logo"
  background: transparent !important;
"usertools usertools"
  color: #cce8d4 !important;
"search search";
}
grid-template-columns: 54px 1fr;
.mw-contributions-list li:hover {
grid-template-rows: 52px 36px auto;
  background: rgba(125, 255, 156, 0.04) !important;
height: auto;
}
padding: 0;
align-items: stretch;
background: @bg-panel !important; // solide sur mobile, pas de blur transparent
backdrop-filter: none !important;
}


/* Liens utilisateur / page dans les listes */
.vt-burger    { grid-area: burger; display: flex !important; align-self: center; justify-self: center; }
.mw-userlink,
.vt-logo {
.mw-changeslist-line .mw-userlink {
grid-area: logo;
  color: #7dff9c !important;
height: 52px;
  font-weight: 500 !important;
border-right: none;
}
display: flex;
.mw-userlink:hover { color: #b6ffc6 !important; }
align-items: center;
justify-content: center;
padding: 0 12px;
}
.vt-logo-link {
justify-content: center;
}
.vt-nav-primary { display: none !important; }
// ── Flèches scroll horizontal génériques (user-tools + page-tabs) ──
.vt-scroll-wrap {
position: relative;
width: 100%;
max-width: 100%;
min-width: 0;
overflow: hidden;
}
.vt-user-tools-wrap {
grid-area: usertools;
height: 36px;
border-top: 1px solid @border;
}
.vt-page-tabs-wrap {
// La page-tabs est sticky avec son propre top, donc le wrap doit suivre
position: sticky;
top: 0; // JS ajustera le top en mobile (pour suivre le header de hauteur variable)
z-index: 500;    // sous l'overlay drawer (999) — évite que les tabs débordent par-dessus
background: @bg-panel;
border-bottom: 1px solid @border;
}
// Sur mobile, c'est le wrap qui est sticky : le tabs interne doit redevenir static
.vt-page-tabs {
position: static !important;
top: auto !important;
z-index: auto !important;
border-bottom: none !important;
// Scrollbar agressivement cachée (les flèches font le job)
scrollbar-width: none !important;
-ms-overflow-style: none !important;


/* Boutons "annuler" / "défaire" / "rollback" dans les listes */
&::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; }
.mw-rollback-link a,
&::-webkit-scrollbar-track { display: none !important; }
.mw-history-undo a,
&::-webkit-scrollbar-thumb { display: none !important; }
.mw-changeslist-links a {
}
  color: #f5c84a !important;
// Pareil pour user-tools
  font-family: 'IBM Plex Mono', monospace !important;
.vt-user-tools {
  font-size: 10px !important;
scrollbar-width: none !important;
  text-transform: uppercase !important;
-ms-overflow-style: none !important;
  letter-spacing: 0.08em !important;
}
.mw-rollback-link a:hover,
.mw-history-undo a:hover { color: #ffe080 !important; }


/* Journaux (Spécial:Journal) */
&::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; }
.mw-logevent-loglines,
&::-webkit-scrollbar-track { display: none !important; }
.mw-special-Log .mw-logline,
&::-webkit-scrollbar-thumb { display: none !important; }
ul.mw-logevent-loglines li {
}
  background: transparent !important;
  border-bottom: 1px solid rgba(125, 255, 156, 0.05) !important;
  padding: 6px 0 !important;
  color: #cce8d4 !important;
  font-size: 13px !important;
}
.mw-logevent-loglines li:hover { background: rgba(125, 255, 156, 0.04) !important; }
.mw-logline-action {
  color: rgba(125, 255, 156, 0.5) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important;
}
.mw-logevent-actionlink {
  color: #4ab06a !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 10px !important;
  text-transform: uppercase !important;
}


/* Marqueurs (m, b, n) dans RC/historique */
.vt-scroll-arrow {
.mw-changeslist-flags abbr,
position: absolute;
abbr.minoredit,
top: 0;
abbr.botedit,
bottom: 0;
abbr.newpage,
width: 28px;
abbr.unpatrolled {
display: flex;
  background: rgba(125, 255, 156, 0.08) !important;
align-items: center;
  border: 1px solid rgba(125, 255, 156, 0.2) !important;
justify-content: center;
  color: #7dff9c !important;
color: rgba(125, 255, 156, 0.6);
  border-radius: 2px !important;
font-size: 16px;
  font-family: 'IBM Plex Mono', monospace !important;
font-family: @font-mono;
  font-size: 9px !important;
font-weight: bold;
  font-weight: 600 !important;
z-index: 2;
  padding: 0 4px !important;
transition: opacity 0.2s ease, color 0.15s ease, background 0.15s ease;
  margin: 0 1px !important;
opacity: 1;
  text-decoration: none !important;
background: transparent;
}
border: 0;
padding: 0;
margin: 0;
cursor: pointer;
-webkit-appearance: none;
appearance: none;
user-select: none;


/* Différence d'octets (+12 / -45) */
&:hover  { color: @phosphor; }
.mw-plusminus-pos {
&:active { color: @phosphor; transform: scale(0.92); }
  color: #7dff9c !important;
&:focus-visible {
  font-family: 'IBM Plex Mono', monospace !important;
outline: 1px solid @phosphor;
  font-weight: 500 !important;
outline-offset: -2px;
}
}
.mw-plusminus-neg {
  color: #ff7a7a !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-weight: 500 !important;
}
.mw-plusminus-null {
  color: rgba(125, 255, 156, 0.4) !important;
  font-family: 'IBM Plex Mono', monospace !important;
}
.mw-plusminus-bold {
  font-weight: 700 !important;
}


&.is-left  {
left: 0;
background: linear-gradient(to right, @bg-panel 60%, transparent);
}
&.is-right {
right: 0;
background: linear-gradient(to left, @bg-panel 60%, transparent);
}
&.is-left:hover  { background: linear-gradient(to right, rgba(125, 255, 156, 0.15) 0%, @bg-panel 60%, transparent); }
&.is-right:hover { background: linear-gradient(to left,  rgba(125, 255, 156, 0.15) 0%, @bg-panel 60%, transparent); }
}


/* ============================================================
.vt-scroll-wrap.is-scroll-start .vt-scroll-arrow.is-left  { opacity: 0; pointer-events: none; }
  51. PAGES FICHIER (Namespace File:) — Spécial:ImagePage
.vt-scroll-wrap.is-scroll-end  .vt-scroll-arrow.is-right { opacity: 0; pointer-events: none; }
  ============================================================ */


/* TOC haut de page "Fichier / Historique / Utilisation" */
.vt-user-tools {
#filetoc,
grid-area: unset !important;
ul#filetoc {
display: block !important;
  background: rgba(6, 15, 11, 0.85) !important;
height: 36px;
  border: 1px solid rgba(125, 255, 156, 0.15) !important;
width: 100% !important;
  border-radius: 3px !important;
max-width: 100% !important;
  color: #cce8d4 !important;
min-width: 0 !important;
  padding: 8px 14px !important;
border-top: none;
  margin: 12px 0 !important;
border-left: none;
  list-style: none !important;
border-right: none;
  display: flex !important;
padding: 0;
  flex-wrap: wrap !important;
overflow-x: auto;
  gap: 0 !important;
overflow-y: hidden;
  font-family: 'IBM Plex Mono', monospace !important;
-webkit-overflow-scrolling: touch;
  font-size: 10px !important;
scrollbar-width: none;
  text-transform: uppercase !important;
&::-webkit-scrollbar { display: none; }
  letter-spacing: 0.12em !important;
ul {
  text-align: center !important;
display: flex !important;
  justify-content: center !important;
width: max-content;        // largeur du contenu, pas 100%
min-width: 100%;            // mais au moins 100% si peu d'items
height: 100%;
margin: 0 !important;
padding: 0 !important;
list-style: none;
gap: 0 !important;
}
li {
flex: 0 0 auto !important; // taille selon contenu, pas étiré
min-width: 0 !important;
display: flex !important;
border-right: 1px solid @border;
}
li:last-child { border-right: none; }
li:empty { display: none !important; }
li a {
display: block !important;
height: 36px !important;
line-height: 36px !important;
font-size: 10px !important;
letter-spacing: 0.08em !important;
text-align: center !important;
padding: 0 14px !important; // padding confortable, pas de tronquage
margin: 0 !important;
white-space: nowrap !important;
border-right: none !important;
box-sizing: border-box !important;
}
// Override desktop logout/createaccount style on mobile
#pt-logout a,
#pt-createaccount a {
background: transparent !important;
color: @text-dim !important;
font-weight: normal !important;
margin-left: 0 !important;
}
}
.vt-search {
grid-area: search;
width: 100%;
padding: 8px 12px;
border-top: 1px solid @border;
form { max-width: 100%; }
}
.vt-logo-text { white-space: nowrap; overflow: hidden; }
.vt-logo-name { font-size: 15px; white-space: nowrap; }
.vt-logo-sup  { font-size: 8px;  white-space: nowrap; }
}
}
#filetoc li {
  display: inline !important;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}
#filetoc li::before {
  content: '·' !important;
  margin: 0 10px !important;
  color: rgba(125, 255, 156, 0.3) !important;
}
#filetoc li:first-child::before { display: none !important; }
#filetoc a {
  color: rgba(125, 255, 156, 0.65) !important;
  text-decoration: none !important;
  letter-spacing: 0.12em !important;
}
#filetoc a:hover { color: #7dff9c !important; }


/* Conteneur principal de l'image */
@media screen and (max-width: 640px) {
.fullImageLink,
#bodyContent, .vt-article {
#file,
padding: 20px 16px 40px;
.mw-filepage-image {
}
  background: transparent !important;
 
  text-align: center !important;
.firstHeading {
  margin: 16px 0 !important;
font-size: 28px;
}
}
.fullImageLink a,
 
.fullImageLink img,
.infobox,
#file a,
.mw-parser-output .infobox {
#file img {
float: none;
  background: transparent !important;
width: 100%;
  border: 0 !important;
margin: 0 0 20px;
  display: inline-block !important;
}
}


/* Image elle-même : juste un cadre discret */
.vt-page-tabs {
.fullImageLink img,
padding: 0 12px;
#file > a > img {
overflow-x: auto;
  border: 1px solid rgba(125, 255, 156, 0.15) !important;
  border-radius: 2px !important;
  background: rgba(6, 15, 11, 0.4) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5) !important;
}


/* Texte "Pas de plus haute résolution disponible" + lien filename */
ul {
.mw-filepage-resolutioninfo,
flex-shrink: 0;
.fullMedia {
}
  color: rgba(204, 232, 212, 0.65) !important;
}
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important;
  text-align: center !important;
  margin: 8px 0 !important;
  background: transparent !important;
}
.fullMedia a,
.mw-filepage-resolutioninfo a {
  color: #7dff9c !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(125, 255, 156, 0.25) !important;
}
.fullMedia a:hover {
  color: #b6ffc6 !important;
  border-bottom-color: #7dff9c !important;
}


/* Informations sur le fichier (taille, type MIME) */
.vt-footer {
.fileInfo,
padding: 16px;
.mw-filepage-mime,
flex-direction: column;
.mw-filepage-dimensions {
align-items: flex-start;
  color: rgba(204, 232, 212, 0.6) !important;
}
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important;
}
}


/* Tableau d'historique du fichier */
// ============================================================
table.filehistory,
// NAVIGATION PRINCIPALE (header)
.filehistory {
// ============================================================
  background: rgba(12, 24, 18, 0.85) !important;
.vt-nav-primary {
  border: 1px solid rgba(125, 255, 156, 0.15) !important;
display: flex;
  border-collapse: collapse !important;
align-items: center;
  width: 100% !important;
height: 100%;
  color: #cce8d4 !important;
padding: 0 8px;
  margin: 12px 0 !important;
gap: 2px;
}
border-right: 1px solid @border;
.filehistory th {
overflow-x: auto;
  background: #0f2015 !important;
flex-shrink: 1;
  border-bottom: 1px solid rgba(125, 255, 156, 0.2) !important;
  color: #7dff9c !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  padding: 10px 12px !important;
  text-align: left !important;
}
.filehistory td {
  background: transparent !important;
  border-bottom: 1px solid rgba(125, 255, 156, 0.06) !important;
  color: #cce8d4 !important;
  padding: 10px 12px !important;
  vertical-align: middle !important;
  font-size: 13px !important;
}
.filehistory tr:hover td {
  background: rgba(125, 255, 156, 0.04) !important;
}
}


/* Marqueur "actuel" dans l'historique */
.vt-nav-link {
.filehistory td.filehistory-selected,
font-family: @font-mono;
.filehistory tr.filehistory-selected td {
font-size: 11px;
  background: rgba(125, 255, 156, 0.06) !important;
letter-spacing: 0.1em;
  color: #7dff9c !important;
color: @text-dim;
}
padding: 0 12px;
height: @header-h;
display: flex;
align-items: center;
text-transform: uppercase;
text-decoration: none;
border-bottom: 2px solid transparent;
white-space: nowrap;
transition: all 0.15s;


/* Vignettes dans le tableau d'historique */
&:hover {
.filehistory img,
color: @phosphor;
.filehistory a img,
background: @ph-faint;
.filehistory .mw-thumbnail-link img {
text-decoration: none;
  background: rgba(6, 15, 11, 0.6) !important;
}
  border: 1px solid rgba(125, 255, 156, 0.15) !important;
  border-radius: 2px !important;
  padding: 2px !important;
}
}


/* Liens de date dans l'historique */
// ============================================================
.filehistory a {
// CODEMIRROR / VE / WIKIEDITOR — fix cursor offset
  color: #7dff9c !important;
// Chargé avec le skin (avant init éditeur) — haute spécificité
  font-family: 'IBM Plex Mono', monospace !important;
// pour empêcher l'héritage de Crimson Pro qui casse les mesures.
  font-size: 11px !important;
// Cf. T418793, T245532, T245568.
  text-decoration: none !important;
// ============================================================
html body #wpTextbox1,
html body .wikiEditor-ui-text textarea,
html body .CodeMirror,
html body .CodeMirror pre,
html body .CodeMirror-code,
html body .CodeMirror-linenumber,
html body .CodeMirror-measure,
html body .CodeMirror-measure pre,
html body .ve-ce-paragraphNode,
html body .ve-ui-mwWikitextSurface,
html body .ve-ui-mwWikitextSurface .ve-ce-paragraphNode {
font-family: monospace, monospace !important;
font-size: 13px !important;
line-height: 1.5em !important;
}
}
.filehistory a:hover { color: #b6ffc6 !important; }


/* "Vous ne pouvez pas remplacer ce fichier" / autres messages */
// ============================================================
.mw-filepage-other-versions,
// SCROLL TO TOP
.mw-filepage-upload-error,
// ============================================================
.sharedUploadNotice {
#vt-scroll-top {
  background: rgba(6, 15, 11, 0.6) !important;
position: fixed;
  border: 1px solid rgba(245, 200, 74, 0.2) !important;
bottom: 28px;
  border-left: 3px solid rgba(245, 200, 74, 0.5) !important;
right: 24px;
  color: rgba(204, 232, 212, 0.85) !important;
width: 36px;
  padding: 10px 14px !important;
height: 36px;
  border-radius: 2px !important;
background: rgba(6, 15, 11, 0.85);
  margin: 12px 0 !important;
border: 1px solid rgba(125, 255, 156, 0.25);
  font-style: italic !important;
color: rgba(125, 255, 156, 0.6);
}
font-size: 16px;
line-height: 1;
cursor: pointer;
border-radius: 2px;
z-index: 800;
display: flex;
align-items: center;
justify-content: center;
opacity: 0;
transform: translateY(8px);
pointer-events: none;
transition: opacity 0.2s ease, transform 0.2s ease,
            color 0.15s, border-color 0.15s, background 0.15s;


/* Section "Utilisation du fichier" */
&.is-visible {
#mw-imagepage-section-linkstoimage,
opacity: 1;
.mw-imagepage-linkstoimage {
transform: translateY(0);
  background: transparent !important;
pointer-events: auto;
}
}
.mw-imagepage-linkstoimage ul,
#mw-imagepage-section-linkstoimage ul {
  background: rgba(6, 15, 11, 0.5) !important;
  border: 1px solid rgba(125, 255, 156, 0.08) !important;
  border-radius: 2px !important;
  padding: 12px 16px 12px 36px !important;
  margin: 8px 0 !important;
  list-style: square !important;
}
.mw-imagepage-linkstoimage li,
#mw-imagepage-section-linkstoimage li {
  color: #cce8d4 !important;
  padding: 3px 0 !important;
}
.mw-imagepage-linkstoimage li::marker {
  color: rgba(125, 255, 156, 0.4) !important;
}


/* Métadonnées EXIF (souvent collapsible) */
&:hover {
.mw_metadata,
background: rgba(125, 255, 156, 0.1);
table.mw_metadata {
border-color: rgba(125, 255, 156, 0.5);
  background: rgba(6, 15, 11, 0.6) !important;
color: #7dff9c;
  border: 1px solid rgba(125, 255, 156, 0.1) !important;
}
  color: #cce8d4 !important;
  margin: 12px 0 !important;
}
.mw_metadata th {
  background: rgba(15, 32, 21, 0.5) !important;
  color: rgba(125, 255, 156, 0.65) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 10px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  text-align: left !important;
  padding: 6px 12px !important;
}
.mw_metadata td {
  background: transparent !important;
  border-bottom: 1px solid rgba(125, 255, 156, 0.05) !important;
  color: rgba(204, 232, 212, 0.75) !important;
  padding: 6px 12px !important;
  font-size: 12px !important;
}
}


/* Liens de section [modifier | modifier le wikicode] dans pages File: */
// ============================================================
.mw-editsection-bracket {
  color: rgba(125, 255, 156, 0.3) !important;
}
.mw-editsection a {
  color: rgba(125, 255, 156, 0.5) !important;
}
.mw-editsection a:hover { color: #7dff9c !important; }


/* Cas spécifique : namespace File: utilise des wikitables pour l'historique
// ============================================================
  mais sans la classe wikitable on cible la table principale du contenu */
// TOC SIDEBAR colonne droite desktop, panneau mobile
.mw-special-Filepage table:not(.wikitable):not(.va-table):not(.avt-infobox) {
// ============================================================
  background: rgba(12, 24, 18, 0.85) !important;
  color: #cce8d4 !important;
}
.mw-special-Filepage table:not(.wikitable):not(.va-table):not(.avt-infobox) th {
  background: #0f2015 !important;
  color: #7dff9c !important;
}
.mw-special-Filepage table:not(.wikitable):not(.va-table):not(.avt-infobox) td {
  background: transparent !important;
  color: #cce8d4 !important;
  border-bottom: 1px solid rgba(125, 255, 156, 0.06) !important;
}


// ── Base commune ─────────────────────────────────────────────
.vt-toc-sidebar {
background: linear-gradient(180deg, @bg-panel 0%, @bg 100%);
border-left: 1px solid @border;
overflow-y: auto;
overflow-x: hidden;
z-index: 950;


/* ============================================================
&::-webkit-scrollbar { width: 2px; }
  52. MULTIMEDIAVIEWER (MMV) — lightbox d'image + boutons Codex
&::-webkit-scrollbar-thumb { background: @ph-border; }
  ============================================================ */


/* ── BOUTONS CODEX (.cdx-button) ──
// Bouton collapse (desktop) / fermer (mobile)
  Codex est le design system Wikimedia, utilisé par MMV, certaines
.vt-toc-collapse-btn {
  préférences, et de plus en plus de modules MW 1.45+. Variables natives
display: flex;
  en blanc/gris clair — on les redéfinit en phosphore. */
align-items: center;
justify-content: center;
width: 100%;
padding: 8px 0;
background: transparent;
border: 0;
border-bottom: 1px solid @border;
color: rgba(125, 255, 156, 0.4);
font-size: 14px;
cursor: pointer;
transition: color 0.15s, background 0.15s;


.cdx-button,
&:hover {
button.cdx-button,
color: @phosphor;
.cdx-button.cdx-button--fake-button {
background: @ph-faint;
  background-color: rgba(125, 255, 156, 0.08) !important;
}
  background-image: none !important;
}
  border: 1px solid rgba(125, 255, 156, 0.25) !important;
  border-radius: 2px !important;
  color: rgba(125, 255, 156, 0.75) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  padding: 6px 14px !important;
  box-shadow: none !important;
  text-shadow: none !important;
  transition: all 0.15s !important;
  cursor: pointer !important;
}
.cdx-button:hover,
.cdx-button:enabled:hover,
button.cdx-button:hover {
  background-color: rgba(125, 255, 156, 0.18) !important;
  border-color: rgba(125, 255, 156, 0.5) !important;
  color: #7dff9c !important;
}
.cdx-button:active,
.cdx-button:enabled:active {
  background-color: rgba(125, 255, 156, 0.28) !important;
  border-color: #7dff9c !important;
  color: #b6ffc6 !important;
}
.cdx-button:focus-visible,
.cdx-button:enabled:focus {
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(125, 255, 156, 0.25) !important;
}
.cdx-button:disabled,
.cdx-button.cdx-button--disabled {
  background-color: rgba(125, 255, 156, 0.04) !important;
  border-color: rgba(125, 255, 156, 0.1) !important;
  color: rgba(125, 255, 156, 0.25) !important;
  cursor: not-allowed !important;
}


/* Boutons "progressive" (action positive principale, ex: "Plus de détails") */
// Titre "SOMMAIRE"
.cdx-button--action-progressive,
.vt-toc-sidebar-title {
.cdx-button.cdx-button--action-progressive,
font-family: @font-mono;
.cdx-button--weight-primary.cdx-button--action-progressive {
font-size: 9px;
  background-color: rgba(125, 255, 156, 0.15) !important;
font-weight: 500;
  border-color: rgba(125, 255, 156, 0.5) !important;
letter-spacing: 0.28em;
  color: #7dff9c !important;
text-transform: uppercase;
}
color: rgba(125, 255, 156, 0.4);
.cdx-button--action-progressive:hover,
padding: 10px 16px 8px;
.cdx-button.cdx-button--action-progressive:hover {
border-bottom: 1px dashed rgba(125, 255, 156, 0.12);
  background-color: rgba(125, 255, 156, 0.28) !important;
}
  border-color: #7dff9c !important;
  color: #b6ffc6 !important;
  box-shadow: 0 0 12px rgba(125, 255, 156, 0.2) !important;
}


/* Boutons "destructive" (ex: supprimer, annuler) */
// TOC dans la sidebar
.cdx-button--action-destructive {
.toc, #toc {
  background-color: rgba(255, 122, 122, 0.1) !important;
float: none !important;
  border-color: rgba(255, 122, 122, 0.4) !important;
position: static !important;
  color: #ff7a7a !important;
width: 100% !important;
}
max-width: 100% !important;
.cdx-button--action-destructive:hover {
min-width: 0 !important;
  background-color: rgba(255, 122, 122, 0.2) !important;
margin: 0 !important;
  border-color: #ff7a7a !important;
padding: 0 !important;
  color: #ff9a9a !important;
background: transparent !important;
}
border: 0 !important;
border-radius: 0 !important;
font-size: 11px !important;
overflow: visible !important;
}


/* Variante "weight-primary" — bouton principal proéminent */
.toctitle { display: none !important; }
.cdx-button--weight-primary:not(.cdx-button--action-progressive):not(.cdx-button--action-destructive) {
  background-color: rgba(125, 255, 156, 0.18) !important;
  border-color: rgba(125, 255, 156, 0.45) !important;
  color: #7dff9c !important;
}


/* Variante "weight-quiet" — pas de bordure, fond transparent (icônes plates) */
.toc > ul, #toc > ul {
.cdx-button--weight-quiet {
display: block !important;
  background-color: transparent !important;
padding: 4px 0 !important;
  border-color: transparent !important;
margin: 0 !important;
  color: rgba(125, 255, 156, 0.55) !important;
}
}
.cdx-button--weight-quiet:hover {
  background-color: rgba(125, 255, 156, 0.08) !important;
  border-color: transparent !important;
  color: #7dff9c !important;
}


/* Icônes dans les boutons Codex */
.toc ul { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.cdx-button .cdx-icon,
.cdx-button svg {
  filter: brightness(0) saturate(100%) invert(91%) sepia(15%) saturate(594%) hue-rotate(76deg) brightness(101%) !important;
  opacity: 0.75 !important;
}
.cdx-button:hover .cdx-icon,
.cdx-button:hover svg { opacity: 1 !important; }


/* ── MULTIMEDIAVIEWER LIGHTBOX ── */
.toc li a {
display: flex !important;
align-items: baseline !important;
padding: 5px 16px !important;
font-size: 11px !important;
color: #7aaa88 !important;
font-family: @font-mono !important;
border-left: 2px solid transparent !important;
transition: all 0.15s !important;
text-decoration: none !important;
white-space: nowrap !important;
overflow: hidden !important;
text-overflow: ellipsis !important;


/* IMPORTANT : .mw-mmv-wrapper englobe TOUTE la lightbox (image comprise).
&:hover {
  Lui appliquer un fond opaque masquerait l'image. On laisse uniquement
color: @phosphor !important;
  .mw-mmv-overlay (le fond noir natif derrière l'image) gérer l'arrière-plan. */
background: @ph-faint !important;
.mw-mmv-overlay {
border-left-color: @ph-dim !important;
  background: rgba(0, 0, 0, 0.88) !important;
}
}
}


/* Container principal et wrappers d'image : transparents, sans filtre */
.toc li li a {
.mw-mmv-wrapper,
padding-left: 28px !important;
.mw-mmv-main,
font-size: 10px !important;
.mw-mmv-image-wrapper,
color: rgba(125, 255, 156, 0.4) !important;
.mw-mmv-pre-image {
}
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  color: #cce8d4 !important;
}


/* L'image elle-même : aucun filtre ni opacité parasite */
.tocnumber {
.mw-mmv-image,
color: rgba(125, 255, 156, 0.3) !important;
.mw-mmv-image img,
margin-right: 6px !important;
.mw-mmv-final-image,
}
img.mw-mmv-dialog-is-open {
  background: transparent !important;
  filter: none !important;
  opacity: 1 !important;
}
}


/* Le panneau du bas (titre + boutons + métadonnées) */
// ── DESKTOP > 1200px — TOC sticky dans le flux flex (pousse le texte)
.mw-mmv-post-image,
@media screen and (min-width: 1201px) {
.mw-mmv-above-fold,
.vt-toc-sidebar {
.mw-mmv-image-metadata,
// STICKY dans le flex — quand il s'ouvre il pousse le contenu
.mw-mmv-title-contain {
position: sticky;
  background: rgba(6, 15, 11, 0.97) !important;
top: @header-h; // JS override avec header+tabs height
  border-top: 1px solid rgba(125, 255, 156, 0.15) !important;
height: calc(100vh - @header-h);
  color: #cce8d4 !important;
flex-shrink: 0;
}
width: 32px;    // collapsed par défaut
overflow: hidden;
transition: width 0.25s ease;


/* Quand panneau réduit (juste le titre visible) */
// Replié
.mw-mmv-post-image.mw-mmv-untruncated,
&.is-collapsed {
.mw-mmv-untruncated .mw-mmv-above-fold {
width: 32px;
  background: rgba(6, 15, 11, 0.97) !important;
overflow: hidden;
}


/* Titre du fichier (ex: "FNV 9 de trefles Frumentarii") */
.toc, #toc { display: none !important; }
.mw-mmv-title,
.mw-mmv-title-para,
.mw-mmv-title-smaller,
p.mw-mmv-title-para,
.mw-mmv-image-desc,
.mw-mmv-image-desc-div {
  color: #cce8d4 !important;
  background: transparent !important;
  font-family: 'Crimson Pro', Georgia, serif !important;
  font-size: 16px !important;
  font-weight: normal !important;
}


/* Auteur / source / licence sous le titre */
.vt-toc-collapse-btn {
.mw-mmv-author,
border-bottom: 1px solid @border;
.mw-mmv-source,
height: 36px;
.mw-mmv-source-author,
flex-shrink: 0;
.mw-mmv-credit,
}
.mw-mmv-credit-fallback {
  color: rgba(204, 232, 212, 0.7) !important;
  background: transparent !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important;
}


/* Liens dans le viewer */
.vt-toc-sidebar-title {
.mw-mmv-post-image a,
padding: 0;
.mw-mmv-image-metadata a,
border-bottom: 0;
.mw-mmv-credit a,
display: flex;
.mw-mmv-author a,
align-items: center;
.mw-mmv-source a {
justify-content: center;
  color: #7dff9c !important;
width: 32px;
  text-decoration: none !important;
flex: 1;
  border-bottom: 1px solid rgba(125, 255, 156, 0.2) !important;
cursor: pointer;
}
overflow: hidden;
.mw-mmv-post-image a:hover,
.mw-mmv-image-metadata a:hover {
  color: #b6ffc6 !important;
  border-bottom-color: #7dff9c !important;
}


/* Bouton "Plus de détails" (gros bouton vert Codex sur ta capture) */
span {
.mw-mmv-stripe-button,
writing-mode: vertical-rl;
.mw-mmv-stripe button,
transform: rotate(180deg);
button.mw-mmv-stripe-button {
white-space: nowrap;
  background-color: rgba(125, 255, 156, 0.18) !important;
letter-spacing: 0.2em;
  border: 1px solid rgba(125, 255, 156, 0.5) !important;
font-size: 9px;
  border-radius: 2px !important;
color: rgba(125, 255, 156, 0.35);
  color: #7dff9c !important;
font-family: @font-mono;
  font-family: 'IBM Plex Mono', monospace !important;
font-weight: 500;
  font-size: 11px !important;
text-transform: uppercase;
  font-weight: 500 !important;
display: block;
  text-transform: uppercase !important;
}
  letter-spacing: 0.12em !important;
}
  padding: 10px 18px !important;
}
  box-shadow: none !important;
}
.mw-mmv-stripe-button:hover {
  background-color: rgba(125, 255, 156, 0.3) !important;
  border-color: #7dff9c !important;
  color: #b6ffc6 !important;
  box-shadow: 0 0 12px rgba(125, 255, 156, 0.25) !important;
}


/* Bouton "Voir les informations sur l'auteur" / liens secondaires */
// Déplié — pousse le texte grâce au flex sticky
.mw-mmv-author-info,
&.is-expanded {
.mw-mmv-permission-link,
width: 200px;
.mw-mmv-credit-fallback {
overflow-y: auto;
  color: rgba(125, 255, 156, 0.6) !important;
overflow-x: hidden;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important;
}
.mw-mmv-author-info:hover,
.mw-mmv-permission-link:hover { color: #7dff9c !important; }


/* Boutons d'action latéraux (télécharger, partager) */
.toc, #toc { display: block !important; }
.mw-mmv-download-pane,
}
.mw-mmv-reuse-pane,
}
.mw-mmv-info-button,
.mw-mmv-download-button,
.mw-mmv-reuse-button,
.mw-mmv-options-button {
  background: rgba(8, 18, 12, 0.85) !important;
  border: 1px solid rgba(125, 255, 156, 0.2) !important;
  color: rgba(125, 255, 156, 0.7) !important;
  border-radius: 2px !important;
  transition: all 0.15s !important;
}
.mw-mmv-download-button:hover,
.mw-mmv-reuse-button:hover,
.mw-mmv-options-button:hover {
  background: rgba(125, 255, 156, 0.1) !important;
  border-color: rgba(125, 255, 156, 0.5) !important;
  color: #7dff9c !important;
}


/* Icônes (télécharger, partager, licence) — couleur phosphore */
#vt-toc-btn { display: none !important; }
.mw-mmv-license-icon,
#vt-toc-mobile-overlay { display: none !important; }
.mw-mmv-download-icon,
.mw-mmv-reuse-icon,
.mw-mmv-permission-icon,
.mw-mmv-post-image .oo-ui-iconElement-icon,
.mw-mmv-above-fold .oo-ui-iconElement-icon {
  filter: brightness(0) saturate(100%) invert(91%) sepia(15%) saturate(594%) hue-rotate(76deg) brightness(101%) !important;
  opacity: 0.6 !important;
}
}
.mw-mmv-post-image .oo-ui-iconElement-icon:hover { opacity: 1 !important; }


/* Boutons navigation gauche/droite (chevrons) */
// ── TABLETTE + MOBILE ≤ 1200px — TOC sticky dans le flex (pousse le contenu)
.mw-mmv-prev-image,
@media screen and (max-width: 1200px) {
.mw-mmv-next-image {
.vt-content-row {
  background: rgba(8, 18, 12, 0.6) !important;
// Reste un flex row même sur mobile pour que le TOC pousse le contenu
  border: 1px solid rgba(125, 255, 156, 0.15) !important;
display: flex;
  color: rgba(125, 255, 156, 0.6) !important;
}
  transition: all 0.15s !important;
}
.mw-mmv-prev-image:hover,
.mw-mmv-next-image:hover {
  background: rgba(125, 255, 156, 0.1) !important;
  border-color: rgba(125, 255, 156, 0.4) !important;
  color: #7dff9c !important;
}
.mw-mmv-prev-image:disabled,
.mw-mmv-next-image:disabled {
  opacity: 0.25 !important;
  cursor: not-allowed !important;
}


/* Bouton fermer (X) + plein écran */
.vt-toc-sidebar {
.mw-mmv-close,
position: sticky;
.mw-mmv-fullscreen,
top: 0;         // JS override avec header+tabs
button.mw-mmv-close,
right: 0;
button.mw-mmv-fullscreen {
height: 100vh;   // JS override avec calc(100vh - top)
  background: rgba(8, 18, 12, 0.6) !important;
width: 32px;     // COLLAPSED PAR DÉFAUT (avant JS)
  border: 1px solid rgba(125, 255, 156, 0.15) !important;
flex-shrink: 0;
  color: rgba(125, 255, 156, 0.7) !important;
overflow: hidden;
   border-radius: 2px !important;
transition: width 0.25s ease;
}
z-index: 800;
.mw-mmv-close:hover,
.mw-mmv-fullscreen:hover {
  background: rgba(125, 255, 156, 0.12) !important;
  border-color: rgba(125, 255, 156, 0.5) !important;
  color: #7dff9c !important;
}


/* Compteur "1/2" (en haut à gauche) */
// Replié (explicite)
.mw-mmv-counter,
&.is-collapsed {
.mw-mmv-progress {
width: 32px;
  background: rgba(8, 18, 12, 0.7) !important;
  border: 1px solid rgba(125, 255, 156, 0.15) !important;
  color: rgba(125, 255, 156, 0.7) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important;
  letter-spacing: 0.08em !important;
  border-radius: 2px !important;
  padding: 4px 10px !important;
}


/* Barre de progression de chargement de l'image */
.toc, #toc { display: none !important; }
.mw-mmv-progress {
  background: rgba(125, 255, 156, 0.1) !important;
  border: 0 !important;
}
.mw-mmv-progress .mw-mmv-progress-percent {
  background: linear-gradient(90deg, #4ab06a, #7dff9c) !important;
  transition: width 0.2s ease !important;
}
.mw-mmv-progress.empty .mw-mmv-progress-percent {
  background: transparent !important;
}


/* Cadre "Plus de détails" / panneau étendu */
.vt-toc-collapse-btn {
.mw-mmv-image-metadata,
border-bottom: 1px solid @border;
.mw-mmv-image-metadata-column,
height: 36px;
.mw-mmv-image-metadata-desc-column,
flex-shrink: 0;
.mw-mmv-image-metadata-links-column {
}
  background: rgba(6, 15, 11, 0.95) !important;
  color: #cce8d4 !important;
  border-top: 1px solid rgba(125, 255, 156, 0.08) !important;
}


/* Titres de sections dans les métadonnées étendues */
.vt-toc-sidebar-title {
.mw-mmv-about-links,
padding: 0;
.mw-mmv-image-links,
border-bottom: 0;
.mw-mmv-image-links h3,
display: flex;
.mw-mmv-image-desc-div .mw-mmv-image-desc {
align-items: center;
  color: rgba(125, 255, 156, 0.7) !important;
justify-content: center;
  font-family: 'IBM Plex Mono', monospace !important;
width: 32px;
  font-size: 11px !important;
flex: 1;
  text-transform: uppercase !important;
cursor: pointer;
  letter-spacing: 0.1em !important;
overflow: hidden;
}


/* Bouton dialog "Réutiliser ce fichier" / "Télécharger" — popovers */
span {
.mw-mmv-reuse-dialog,
writing-mode: vertical-rl;
.mw-mmv-download-dialog,
transform: rotate(180deg);
.mw-mmv-options-dialog {
white-space: nowrap;
  background: rgba(8, 18, 12, 0.98) !important;
letter-spacing: 0.2em;
  border: 1px solid rgba(125, 255, 156, 0.25) !important;
font-size: 9px;
  border-radius: 3px !important;
color: rgba(125, 255, 156, 0.35);
  color: #cce8d4 !important;
font-family: @font-mono;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.8) !important;
font-weight: 500;
}
text-transform: uppercase;
.mw-mmv-reuse-dialog input,
display: block;
.mw-mmv-reuse-dialog textarea,
}
.mw-mmv-download-dialog input {
}
  background: rgba(4, 10, 7, 0.95) !important;
}
  border: 1px solid rgba(125, 255, 156, 0.2) !important;
  color: #cce8d4 !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 12px !important;
  padding: 8px 10px !important;
  border-radius: 2px !important;
}
.mw-mmv-reuse-dialog input:focus,
.mw-mmv-download-dialog input:focus {
  border-color: rgba(125, 255, 156, 0.5) !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(125, 255, 156, 0.1) !important;
}


/* Lien "Afficher la licence" + icône cadenas */
// Déplié — via classe JS .is-expanded UNIQUEMENT
.mw-mmv-permission-link,
&.is-expanded {
.mw-mmv-permission a,
width: 260px;
.mw-mmv-license a {
max-width: 80vw;
  color: #7dff9c !important;
overflow-y: auto;
  text-decoration: none !important;
overflow-x: hidden;
}
box-shadow: -4px 0 24px rgba(0, 0, 0, 0.6);


/* Texte "Fichier: ..." en bas */
.toc li a {
.mw-mmv-image-title-para,
white-space: normal !important;
.mw-mmv-image-title {
overflow: visible !important;
  color: rgba(204, 232, 212, 0.6) !important;
text-overflow: unset !important;
  font-family: 'IBM Plex Mono', monospace !important;
}
  font-size: 11px !important;
}
}
}


/* Texte "Téléversé: 15 novembre 2025" */
#vt-toc-btn { display: none !important; }
.mw-mmv-datetime,
#vt-toc-mobile-overlay { display: none !important; }
.mw-mmv-image-datetime {
  color: rgba(204, 232, 212, 0.5) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important;
}
}

Version du 16 mai 2026 à 11:21

/**
 * VaultTec skin — skin.less
 * MediaWiki 1.39+  |  Vector 2022 alternative
 *
 * Palette : phosphore vert sur fond noir profond.
 * Typo    : IBM Plex Mono (chrome) + Instrument Serif (titres) + Crimson Pro (corps).
 */

// Polices chargées via Google Fonts CDN — voir templates/skin.mustache

// ============================================================
// TOKENS
// ============================================================
@bg:           #06100b;
@bg-panel:     #0c1812;
@bg-elevated:  #111f19;
@bg-infobox:   #0f1c15;
@phosphor:     #7dff9c;
@ph-dim:       #4ab06a;
@ph-faint:     rgba(125, 255, 156, 0.10);
@ph-border:    rgba(125, 255, 156, 0.15);
@ph-border2:   rgba(125, 255, 156, 0.35);
@amber:        #f5c84a;
@amber-faint:  rgba(245, 200, 74, 0.12);
@danger:       #ff5e5e;
@text:         #cce8d4;
@text-dim:     #7aaa88;
@text-muted:   #4a6e55;
@border:       rgba(125, 255, 156, 0.13);

@font-mono:    'IBM Plex Mono', 'Courier New', monospace;
@font-serif:   'Instrument Serif', Georgia, serif;
@font-body:    'Crimson Pro', Georgia, serif;

@header-h:     54px;
@tab-h:        44px;
@sidebar-w:    220px;

// ============================================================
// Z-INDEX SCALE — référence (ne pas modifier sans coordination)
// ============================================================
//  9999  .vt-scanlines           (effet CRT, top layer)
//  9998  .vt-vignette            (effet CRT)
//  1200  #vt-scroll-top          (bouton remonter)
//  1100  .vt-header              (sticky)
//  1099  .ve-ui-toolbar          (sticky sous header, depuis ve-overrides.less)
//  1001  .vt-sidebar             (drawer mobile, au-dessus de l'overlay)
//   999  .vt-drawer-overlay      (overlay drawer mobile, capture les clics)
//   950  .vt-toc-sidebar         (desktop > 1200px)
//   800  .vt-toc-sidebar         (mobile/tablet ≤ 1200px)
//   500  .vt-page-tabs-wrap      (sticky tabs mobile)
//   500  .vt-page-tabs           (sticky tabs desktop, sous le header)
//     2  .vt-content-row         (contexte d'empilement local)
//     1  .vt-scroll-arrow
//     0  .vt-watermark

// ============================================================
// RESET & BASE
// ============================================================
* {
	box-sizing: border-box;
}

html,
body {
	background: @bg;
	color: @text;
	font-family: @font-body;
	font-size: 16px;
	line-height: 1.5;
	margin: 0;
	padding: 0;
}

a {
	color: @ph-dim;
	text-decoration: none;
	transition: color 0.15s;

	&:hover {
		color: @phosphor;
		text-decoration: underline;
		text-decoration-color: @ph-faint;
	}

	&:visited {
		color: darken(@ph-dim, 10%);
	}
}

// ============================================================
// EFFETS CRT
// ============================================================
.vt-scanlines {
	position: fixed;
	inset: 0;
	pointer-events: none;
	background: repeating-linear-gradient(
		0deg,
		transparent 0px,
		transparent 2px,
		rgba(125, 255, 156, 0.018) 3px,
		transparent 4px
	);
	z-index: 9999;
	mix-blend-mode: screen;
}

.vt-vignette {
	position: fixed;
	inset: 0;
	pointer-events: none;
	background: radial-gradient(ellipse at center, transparent 50%, rgba(0, 0, 0, 0.45) 100%);
	z-index: 9998;
}

.vt-watermark {
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	font-family: @font-serif;
	font-style: italic;
	font-size: 55vw;
	color: @phosphor;
	opacity: 0.015;
	z-index: 0;
	user-select: none;
	pointer-events: none;
	line-height: 1;
}

// ============================================================
// HEADER
// ============================================================
.vt-header {
	position: sticky;
	top: 0;
	z-index: 1100; // au-dessus de la sidebar drawer (1000)
	height: @header-h;
	display: flex;
	align-items: center;
	background: rgba(6, 16, 11, 0.92);
	backdrop-filter: blur(14px);
	border-bottom: 1px solid @border;
}

// Logo
.vt-logo {
	flex-shrink: 0;
	height: 100%;
	border-right: 1px solid @border;
	padding: 0 20px;
}

.vt-logo-link {
	display: flex;
	align-items: center;
	gap: 12px;
	height: 100%;
	text-decoration: none !important;

	&:hover .vt-logo-mark {
		background: rgba(125, 255, 156, 0.2);
		box-shadow: 0 0 12px rgba(125, 255, 156, 0.3);
	}
}

.vt-logo-mark {
	width: 32px;
	height: 32px;
	border: 1.5px solid @phosphor;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: @font-serif;
	font-style: italic;
	font-size: 18px;
	color: @phosphor;
	background: @ph-faint;
	flex-shrink: 0;
	transition: all 0.2s;
}

.vt-logo-text {
	display: flex;
	flex-direction: column;
	line-height: 1.15;
}

.vt-logo-sup {
	font-family: @font-mono;
	font-size: 9px;
	letter-spacing: 0.28em;
	color: @text-muted;
	text-transform: uppercase;
}

.vt-logo-name {
	font-family: @font-serif;
	font-style: italic;
	font-size: 17px;
	color: @text;
	letter-spacing: 0.01em;
}

// Recherche
.vt-search {
	flex: 1;
	padding: 0 20px;

	form {
		display: flex;
		gap: 6px;
		max-width: 380px;
	}

	input[type='search'],
	input[type='text'],
	.oo-ui-inputWidget-input {
		background: @bg-panel;
		border: 1px solid @ph-border;
		color: @phosphor;
		font-family: @font-mono;
		font-size: 12px;
		padding: 7px 14px;
		width: 100%;
		letter-spacing: 0.05em;
		transition: border-color 0.15s;

		&::placeholder {
			color: @text-muted;
		}

		&:focus {
			outline: none;
			border-color: @phosphor;
			box-shadow: 0 0 0 1px @ph-faint;
		}
	}

	button,
	input[type='submit'] {
		background: @ph-faint;
		border: 1px solid @ph-border2;
		color: @phosphor;
		font-family: @font-mono;
		font-size: 11px;
		letter-spacing: 0.15em;
		padding: 7px 14px;
		cursor: pointer;
		text-transform: uppercase;
		transition: all 0.15s;
		flex-shrink: 0;

		&:hover {
			background: @phosphor;
			color: @bg;
		}
	}
}

// Outils utilisateur
.vt-user-tools {
	flex-shrink: 0;
	height: 100%;
	border-left: 1px solid @border;
	padding: 0 8px;
	display: flex;
	align-items: center;

	ul {
		display: flex;
		list-style: none;
		margin: 0;
		padding: 0;
		gap: 2px;
	}

	li a {
		font-family: @font-mono;
		font-size: 11px;
		letter-spacing: 0.1em;
		color: @text-dim;
		padding: 0 12px;
		height: @header-h;
		display: flex;
		align-items: center;
		text-transform: uppercase;
		text-decoration: none;
		transition: all 0.15s;

		&:hover {
			color: @phosphor;
			background: @ph-faint;
		}
	}

	// Bouton créer un compte / déconnexion : highlight
	#pt-createaccount a,
	#pt-logout a {
		background: @phosphor;
		color: @bg !important;
		font-weight: 600;
		margin-left: 4px;

		&:hover {
			background: lighten(@phosphor, 10%);
		}
	}
}

// ============================================================
// PAGE CONTAINER
// ============================================================
.vt-page-container {
	display: flex;
	min-height: calc(100vh - @header-h - 56px);
	position: relative;
	z-index: 2;
}

// ============================================================
// SIDEBAR
// ============================================================
.vt-sidebar {
	width: @sidebar-w;
	flex-shrink: 0;
	border-right: 1px solid @border;
	background: linear-gradient(180deg, @bg-panel 0%, @bg 100%);
	padding: 20px 0;
	position: sticky;
	top: @header-h;
	height: calc(100vh - @header-h);
	overflow-y: auto;
	overflow-x: hidden;
	align-self: flex-start;

	&::-webkit-scrollbar { width: 3px; }
	&::-webkit-scrollbar-thumb { background: @ph-border; }
}

.vt-sidebar-section {
	margin-bottom: 24px;
}

.vt-sidebar-title {
	font-family: @font-mono;
	font-size: 9px;
	font-weight: 400;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: @text-muted;
	padding: 0 18px 8px;
	margin: 0 0 4px;
	border-bottom: 1px dashed @border;
}

.vt-sidebar-section ul {
	list-style: none;
	margin: 0;
	padding: 0;

	li a {
		display: block;
		padding: 7px 18px;
		font-family: @font-mono;
		font-size: 12px;
		color: @text-dim;
		border-left: 2px solid transparent;
		text-decoration: none;
		transition: all 0.15s;

		&:hover {
			color: @phosphor;
			background: @ph-faint;
			border-left-color: @ph-dim;
		}
	}
}

// ============================================================
// ONGLETS
// ============================================================
.vt-page-tabs {
	display: flex;
	align-items: flex-end;
	height: @tab-h;
	padding: 0 32px;
	gap: 2px;
	background: @bg-panel;
	border-bottom: 1px solid @border;
	font-family: @font-mono;
	flex-shrink: 0;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	scrollbar-color: rgba(125, 255, 156, 0.25) transparent;
	position: sticky;
	top: @header-h;   // colle sous le header sticky
	z-index: 500;     // sous l'overlay drawer mobile (999), sous le header sticky (1100)
	&::-webkit-scrollbar { height: 3px; }
	&::-webkit-scrollbar-track { background: transparent; }
	&::-webkit-scrollbar-thumb {
		background: rgba(125, 255, 156, 0.25);
		border-radius: 2px;
		&:hover { background: rgba(125, 255, 156, 0.5); }
	}

	ul {
		display: flex;
		list-style: none;
		margin: 0;
		padding: 0;
		gap: 2px;
		height: 100%;
		align-items: flex-end;
	}

	li a {
		display: flex;
		align-items: center;
		padding: 0 14px;
		height: 36px;
		font-size: 11px;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		color: @text-dim;
		border: 1px solid transparent;
		border-bottom: none;
		margin-bottom: -1px;
		text-decoration: none;
		transition: all 0.15s;

		&:hover {
			color: @phosphor;
			background: @ph-faint;
		}
	}

	// Onglet actif
	li.selected a,
	li.new.selected a {
		color: @phosphor;
		border-color: @border;
		border-bottom-color: @bg;
		background: @bg;
	}

	// Onglet "nouvel article" (rouge)
	li.new a {
		color: @danger;
		opacity: 0.7;
	}
}

.vt-tabs-sep {
	flex: 1;
}

// ============================================================
// ARTICLE
// ============================================================
.vt-content-container {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
}

// Wrapper interne : article + TOC en flex row sur desktop
.vt-content-row {
	display: flex;
	flex: 1;
	min-width: 0;
	min-height: 0;
}

.vt-content-main {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
}

#bodyContent, .vt-article {
	flex: 1;
	padding: 36px 40px 60px;
	max-width: 960px;
}

// Titre principal
.firstHeading {
	font-family: @font-serif;
	font-style: italic;
	font-size: 46px;
	line-height: 1.05;
	letter-spacing: -0.01em;
	color: @text;
	margin: 0 0 20px;
	padding-bottom: 16px;
	border-bottom: 1px dashed @border;
}

// Sous-titres — structure MW 1.44+ avec .mw-heading wrapper
.mw-body-content {

	// Le flex est sur .mw-heading (le wrapper), pas sur h2
	.mw-heading {
		display: flex;
		align-items: baseline;
		border-bottom: 1px solid @border;
		margin: 32px 0 14px;
		padding-bottom: 8px;
	}

	h2 {
		font-family: @font-serif;
		font-style: italic;
		font-size: 28px;
		color: @text;
		margin: 0;
		padding-bottom: 0;
		border-bottom: 0;
		display: block;
		flex: 1;
	}

	h3 {
		font-family: @font-mono;
		font-size: 13px;
		font-weight: 600;
		color: @phosphor;
		letter-spacing: 0.1em;
		text-transform: uppercase;
		margin: 22px 0 10px;
		padding-left: 10px;
		border-left: 2px solid @phosphor;
	}

	h4 {
		font-family: @font-mono;
		font-size: 12px;
		font-weight: 500;
		color: @text-dim;
		letter-spacing: 0.1em;
		text-transform: uppercase;
		margin: 18px 0 8px;
	}

	p {
		margin-bottom: 14px;
	}

	// Liens de modification de section
	.mw-editsection {
		font-family: @font-mono;
		font-size: 10px;
		letter-spacing: 0.1em;
		font-style: normal;
		margin-left: 10px;

		a {
			color: @text-muted;
			border: 1px solid @border;
			padding: 2px 8px;
			transition: all 0.15s;

			&:hover {
				color: @phosphor;
				border-color: @ph-dim;
				background: @ph-faint;
				text-decoration: none;
			}
		}
	}
}

// ============================================================
// INFOBOX
// ============================================================
.infobox,
.mw-parser-output .infobox {
	float: right;
	margin: 0 0 20px 28px;
	width: 260px;
	border: 1px solid @ph-border;
	background: @bg-infobox;
	font-family: @font-mono;
	font-size: 12px;
	clear: right;

	// Titre
	caption,
	th.infobox-title,
	.infobox-title,
	> tbody > tr:first-child > th {
		background: @amber !important;
		color: #1a1000 !important;
		font-family: @font-mono;
		font-weight: 600;
		font-size: 13px;
		letter-spacing: 0.05em;
		padding: 10px 14px;
		text-align: center;
		text-transform: uppercase;
		display: block;
	}

	tr {
		border-top: 1px dashed @border;
	}

	th {
		color: @text-muted;
		font-size: 10px;
		letter-spacing: 0.08em;
		text-transform: uppercase;
		padding: 7px 12px;
		font-weight: 400;
		text-align: left;
		vertical-align: top;
		background: transparent;
		width: 42%;
	}

	td {
		color: @text;
		padding: 7px 12px;
		vertical-align: top;
		font-size: 11px;
		background: transparent;
	}
}

// ============================================================
// TABLEAUX WIKI
// ============================================================
.wikitable {
	border-collapse: collapse;
	width: 100%;
	margin-bottom: 20px;
	background: transparent;

	th {
		background: @bg-elevated;
		color: @phosphor;
		font-family: @font-mono;
		font-size: 10px;
		letter-spacing: 0.15em;
		text-transform: uppercase;
		padding: 8px 14px;
		text-align: left;
		border: 1px solid @border;
	}

	td {
		padding: 8px 14px;
		border: 1px solid @border;
		color: @text;
		vertical-align: top;
		font-size: 14px;
	}

	tr:hover td {
		background: @ph-faint;
	}
}

// ============================================================
// TABLE DES MATIÈRES
// ============================================================
.toc,
#toc {
	background: @bg-panel;
	border: 1px solid @border;
	padding: 14px 0 10px;
	font-family: @font-mono;
	display: inline-block;
	margin: 0 0 20px;
	min-width: 200px;

	.toctitle {
		font-size: 9px;
		letter-spacing: 0.28em;
		text-transform: uppercase;
		color: @text-muted;
		padding: 0 16px 10px;
		border-bottom: 1px dashed @border;
		margin-bottom: 6px;

		h2 {
			// Override l'h2 général pour la TOC
			font-family: @font-mono;
			font-size: 9px;
			font-style: normal;
			color: @text-muted;
			margin: 0;
			padding: 0;
			border: none;
		}
	}

	ul {
		list-style: none;
		margin: 0;
		padding: 0;

		li a {
			display: flex;
			align-items: baseline;
			gap: 8px;
			padding: 5px 16px;
			font-size: 11px;
			color: @text-dim;
			line-height: 1.3;
			transition: all 0.15s;
			border-left: 2px solid transparent;

			&:hover {
				color: @phosphor;
				text-decoration: none;
				background: @ph-faint;
				border-left-color: @ph-dim;
			}
		}

		// Sous-niveaux
		ul li a {
			padding-left: 28px;
			font-size: 10px;
			color: @text-muted;
		}
	}

	.tocnumber {
		color: @text-muted;
		font-size: 10px;
		flex-shrink: 0;
		min-width: 18px;
	}
}

// ============================================================
// BANDEAUX & NOTICES
// ============================================================
.ambox,
.mbox-small {
	border: 1px solid @amber-faint;
	background: @amber-faint;
	border-left: 3px solid @amber;
	padding: 12px 16px;
	margin-bottom: 16px;
	font-family: @font-mono;
	font-size: 12px;
	color: @text-dim;
	letter-spacing: 0.03em;
	line-height: 1.6;
	display: flex;
	gap: 12px;
	align-items: flex-start;
	clear: both;

	td {
		border: none;
		padding: 0;
		background: transparent;
	}
}

// ============================================================
// CATÉGORIES
// ============================================================
#catlinks {
	margin-top: 40px;
	padding-top: 16px;
	border-top: 1px solid @border;
	font-family: @font-mono;
	font-size: 11px;
	display: flex;
	align-items: baseline;
	gap: 10px;
	flex-wrap: wrap;

	a {
		padding: 2px 10px;
		border: 1px solid @border;
		color: @text-dim;
		font-size: 10px;
		letter-spacing: 0.1em;
		text-transform: uppercase;
		transition: all 0.15s;
		text-decoration: none;

		&:hover {
			color: @phosphor;
			border-color: @ph-dim;
			background: @ph-faint;
		}
	}

	.mw-normal-catlinks {
		&::before {
			content: 'Catégories :';
			color: @text-muted;
			text-transform: uppercase;
			letter-spacing: 0.2em;
			margin-right: 8px;
		}

		ul {
			display: inline;
			list-style: none;
			padding: 0;
			margin: 0;
		}

		ul li {
			display: inline;
		}

		ul li::after {
			content: ' ';
		}
	}
}

// ============================================================
// FOOTER
// ============================================================
.vt-footer {
	border-top: 1px solid @border;
	background: @bg-panel;
	padding: 20px 32px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
	font-family: @font-mono;
	font-size: 10px;
	letter-spacing: 0.12em;
	color: @text-muted;
	text-transform: uppercase;
	position: relative;
	z-index: 2;
}

.vt-footer-links {
	display: flex;
	gap: 24px;
	flex-wrap: wrap;
	flex: 1;

	ul {
		display: flex;
		gap: 16px;
		list-style: none;
		margin: 0;
		padding: 0;
	}

	a {
		color: @text-muted;
		transition: color 0.15s;

		&:hover {
			color: @phosphor;
			text-decoration: none;
		}
	}
}

.vt-footer-brand {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: @font-serif;
	font-style: italic;
	font-size: 14px;
	letter-spacing: 0.01em;
	color: @ph-dim;
}

.vt-footer-brand-mark {
	width: 22px;
	height: 22px;
	border: 1px solid @ph-dim;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
}

.vt-footer-status {
	font-family: @font-mono;
	font-style: normal;
	font-size: 9px;
	letter-spacing: 0.2em;
	color: @text-muted;
	display: flex;
	align-items: center;
	gap: 5px;
}

.vt-dot {
	display: inline-block;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: @phosphor;
	box-shadow: 0 0 6px @phosphor;
	animation: vt-blink 2s infinite;
}

@keyframes vt-blink {
	0%, 100% { opacity: 1; }
	50%       { opacity: 0.3; }
}

// ============================================================
// PRINT
// ============================================================
@media print {
	.noprint,
	.vt-header,
	.vt-sidebar,
	.vt-page-tabs,
	.vt-scanlines,
	.vt-vignette,
	.vt-watermark,
	.vt-footer {
		display: none !important;
	}

	body {
		background: #fff;
		color: #000;
	}

	.firstHeading {
		color: #000;
		border-bottom: 2px solid #000;
	}

	a {
		color: #000;
	}
}

// ============================================================
// RESPONSIVE
// ============================================================
// ── Desktop : burger et overlay cachés ──────────────────────
@media screen and (min-width: 901px) {
	.vt-burger {
		display: none;
	}

	.vt-drawer-overlay {
		display: none;
	}

	// Flèches scroll : mobile-only
	.vt-scroll-arrow {
		display: none !important;
	}
	// Les wrappers créés par JS doivent disparaître du flux sur desktop
	.vt-user-tools-wrap,
	.vt-page-tabs-wrap {
		display: contents;
	}
}

@media screen and (max-width: 1100px) {
	#bodyContent, .vt-article {
		padding: 28px 28px 50px;
	}
}

@media screen and (max-width: 900px) {

	// ── Burger button ────────────────────────────────────────────
	.vt-burger {
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 5px;
		width: 40px;
		height: 40px;
		padding: 8px;
		background: transparent;
		border: 1px solid @border;
		border-radius: 2px;
		cursor: pointer;
		flex-shrink: 0;
		transition: border-color 0.2s, background 0.2s;
		order: -1;
		margin-left: 12px;

		&:hover {
			border-color: @phosphor;
			background: @ph-faint;
		}
	}

	.vt-burger-bar {
		display: block;
		width: 100%;
		height: 1.5px;
		background: @text-dim;
		border-radius: 1px;
		transition: all 0.25s ease;
		transform-origin: center;
	}

	// Burger → X quand ouvert
	.vt-burger.is-open {
		border-color: @phosphor;
		background: @ph-faint;

		.vt-burger-bar:nth-child(1) { transform: translateY(6.5px) rotate(45deg); background: @phosphor; }
		.vt-burger-bar:nth-child(2) { opacity: 0; transform: scaleX(0); }
		.vt-burger-bar:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); background: @phosphor; }
	}

	// ── Bouton fermer dans le drawer ─────────────────────────────
	.vt-drawer-close {
		display: block;
		width: 100%;
		padding: 14px 20px;
		background: transparent;
		border: 0;
		border-bottom: 1px solid @border;
		color: @text-dim;
		font-family: @font-mono;
		font-size: 11px;
		font-weight: 500;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		text-align: left;
		cursor: pointer;
		transition: color 0.15s, background 0.15s;

		&::before {
			content: '✕  ';
			color: @phosphor;
		}

		&:hover {
			background: @ph-faint;
			color: @phosphor;
		}
	}


	.vt-drawer-overlay {
		display: block;
		position: fixed;
		inset: 0;
		background: rgba(0, 0, 0, 0.65);
		z-index: 999;              // sous .vt-sidebar (1001), au-dessus de tout le reste
		opacity: 0;
		pointer-events: none;
		transition: opacity 0.3s ease;
		-webkit-backdrop-filter: blur(2px);
		backdrop-filter: blur(2px);

		&.is-open {
			opacity: 1;
			pointer-events: auto;  // capture les clics (sinon le contenu derrière reste interactif)
			                       // Le handler document click ferme le drawer car l'overlay
			                       // est hors de .vt-sidebar : un clic dessus déclenche closeDrawer().
		}
	}

	// ── Sidebar → drawer latéral ─────────────────────────────────
	.vt-sidebar {
		position: fixed !important;
		top: 0;
		left: 0;
		width: ~"min(280px, 85vw)";   // limite à 85% du viewport sur très petits écrans
		height: 100%;
		overflow-y: auto;
		overflow-x: hidden;
		z-index: 1001;                // au-dessus de l'overlay (999)
		background: @bg-panel;
		border-right: 1px solid @border;
		transform: translateX(-100%);
		transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
		padding-top: 56px;
		box-shadow: none;
		align-self: auto;

		&.is-open {
			transform: translateX(0);
			box-shadow: 4px 0 32px rgba(0, 0, 0, 0.6);
		}
	}

	// Pas de margin-left sur mobile
	.vt-page-container {
		margin-left: 0 !important;
	}

	// Masquer la nav primaire dans le header sur mobile (elle est dans le drawer)
	.vt-nav-primary {
		display: none;
	}

	.infobox,
	.mw-parser-output .infobox {
		width: 220px;
	}

	// ── Header mobile — CSS Grid pour layout fiable ───────────
	.vt-header {
		display: grid !important;
		grid-template-areas:
			"burger logo"
			"usertools usertools"
			"search search";
		grid-template-columns: 54px 1fr;
		grid-template-rows: 52px 36px auto;
		height: auto;
		padding: 0;
		align-items: stretch;
		background: @bg-panel !important; // solide sur mobile, pas de blur transparent
		backdrop-filter: none !important;
	}

	.vt-burger     { grid-area: burger; display: flex !important; align-self: center; justify-self: center; }
	.vt-logo {
		grid-area: logo;
		height: 52px;
		border-right: none;
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 0 12px;
	}
	.vt-logo-link {
		justify-content: center;
	}
	.vt-nav-primary { display: none !important; }
	// ── Flèches scroll horizontal génériques (user-tools + page-tabs) ──
	.vt-scroll-wrap {
		position: relative;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		overflow: hidden;
	}
	.vt-user-tools-wrap {
		grid-area: usertools;
		height: 36px;
		border-top: 1px solid @border;
	}
	.vt-page-tabs-wrap {
		// La page-tabs est sticky avec son propre top, donc le wrap doit suivre
		position: sticky;
		top: 0; // JS ajustera le top en mobile (pour suivre le header de hauteur variable)
		z-index: 500;     // sous l'overlay drawer (999) — évite que les tabs débordent par-dessus
		background: @bg-panel;
		border-bottom: 1px solid @border;
	}
	// Sur mobile, c'est le wrap qui est sticky : le tabs interne doit redevenir static
	.vt-page-tabs {
		position: static !important;
		top: auto !important;
		z-index: auto !important;
		border-bottom: none !important;
		// Scrollbar agressivement cachée (les flèches font le job)
		scrollbar-width: none !important;
		-ms-overflow-style: none !important;

		&::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; }
		&::-webkit-scrollbar-track { display: none !important; }
		&::-webkit-scrollbar-thumb { display: none !important; }
	}
	// Pareil pour user-tools
	.vt-user-tools {
		scrollbar-width: none !important;
		-ms-overflow-style: none !important;

		&::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; }
		&::-webkit-scrollbar-track { display: none !important; }
		&::-webkit-scrollbar-thumb { display: none !important; }
	}

	.vt-scroll-arrow {
		position: absolute;
		top: 0;
		bottom: 0;
		width: 28px;
		display: flex;
		align-items: center;
		justify-content: center;
		color: rgba(125, 255, 156, 0.6);
		font-size: 16px;
		font-family: @font-mono;
		font-weight: bold;
		z-index: 2;
		transition: opacity 0.2s ease, color 0.15s ease, background 0.15s ease;
		opacity: 1;
		background: transparent;
		border: 0;
		padding: 0;
		margin: 0;
		cursor: pointer;
		-webkit-appearance: none;
		appearance: none;
		user-select: none;

		&:hover  { color: @phosphor; }
		&:active { color: @phosphor; transform: scale(0.92); }
		&:focus-visible {
			outline: 1px solid @phosphor;
			outline-offset: -2px;
		}

		&.is-left  {
			left: 0;
			background: linear-gradient(to right, @bg-panel 60%, transparent);
		}
		&.is-right {
			right: 0;
			background: linear-gradient(to left, @bg-panel 60%, transparent);
		}
		&.is-left:hover  { background: linear-gradient(to right, rgba(125, 255, 156, 0.15) 0%, @bg-panel 60%, transparent); }
		&.is-right:hover { background: linear-gradient(to left,  rgba(125, 255, 156, 0.15) 0%, @bg-panel 60%, transparent); }
	}

	.vt-scroll-wrap.is-scroll-start .vt-scroll-arrow.is-left  { opacity: 0; pointer-events: none; }
	.vt-scroll-wrap.is-scroll-end   .vt-scroll-arrow.is-right { opacity: 0; pointer-events: none; }

	.vt-user-tools {
		grid-area: unset !important;
		display: block !important;
		height: 36px;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		border-top: none;
		border-left: none;
		border-right: none;
		padding: 0;
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		&::-webkit-scrollbar { display: none; }
		ul {
			display: flex !important;
			width: max-content;        // largeur du contenu, pas 100%
			min-width: 100%;            // mais au moins 100% si peu d'items
			height: 100%;
			margin: 0 !important;
			padding: 0 !important;
			list-style: none;
			gap: 0 !important;
		}
		li {
			flex: 0 0 auto !important; // taille selon contenu, pas étiré
			min-width: 0 !important;
			display: flex !important;
			border-right: 1px solid @border;
		}
		li:last-child { border-right: none; }
		li:empty { display: none !important; }
		li a {
			display: block !important;
			height: 36px !important;
			line-height: 36px !important;
			font-size: 10px !important;
			letter-spacing: 0.08em !important;
			text-align: center !important;
			padding: 0 14px !important; // padding confortable, pas de tronquage
			margin: 0 !important;
			white-space: nowrap !important;
			border-right: none !important;
			box-sizing: border-box !important;
		}
		// Override desktop logout/createaccount style on mobile
		#pt-logout a,
		#pt-createaccount a {
			background: transparent !important;
			color: @text-dim !important;
			font-weight: normal !important;
			margin-left: 0 !important;
		}
	}
	.vt-search {
		grid-area: search;
		width: 100%;
		padding: 8px 12px;
		border-top: 1px solid @border;
		form { max-width: 100%; }
	}
	.vt-logo-text { white-space: nowrap; overflow: hidden; }
	.vt-logo-name { font-size: 15px; white-space: nowrap; }
	.vt-logo-sup  { font-size: 8px;  white-space: nowrap; }
}

@media screen and (max-width: 640px) {
	#bodyContent, .vt-article {
		padding: 20px 16px 40px;
	}

	.firstHeading {
		font-size: 28px;
	}

	.infobox,
	.mw-parser-output .infobox {
		float: none;
		width: 100%;
		margin: 0 0 20px;
	}

	.vt-page-tabs {
		padding: 0 12px;
		overflow-x: auto;

		ul {
			flex-shrink: 0;
		}
	}

	.vt-footer {
		padding: 16px;
		flex-direction: column;
		align-items: flex-start;
	}
}

// ============================================================
// NAVIGATION PRINCIPALE (header)
// ============================================================
.vt-nav-primary {
	display: flex;
	align-items: center;
	height: 100%;
	padding: 0 8px;
	gap: 2px;
	border-right: 1px solid @border;
	overflow-x: auto;
	flex-shrink: 1;
}

.vt-nav-link {
	font-family: @font-mono;
	font-size: 11px;
	letter-spacing: 0.1em;
	color: @text-dim;
	padding: 0 12px;
	height: @header-h;
	display: flex;
	align-items: center;
	text-transform: uppercase;
	text-decoration: none;
	border-bottom: 2px solid transparent;
	white-space: nowrap;
	transition: all 0.15s;

	&:hover {
		color: @phosphor;
		background: @ph-faint;
		text-decoration: none;
	}
}

// ============================================================
// CODEMIRROR / VE / WIKIEDITOR — fix cursor offset
// Chargé avec le skin (avant init éditeur) — haute spécificité
// pour empêcher l'héritage de Crimson Pro qui casse les mesures.
// Cf. T418793, T245532, T245568.
// ============================================================
html body #wpTextbox1,
html body .wikiEditor-ui-text textarea,
html body .CodeMirror,
html body .CodeMirror pre,
html body .CodeMirror-code,
html body .CodeMirror-linenumber,
html body .CodeMirror-measure,
html body .CodeMirror-measure pre,
html body .ve-ce-paragraphNode,
html body .ve-ui-mwWikitextSurface,
html body .ve-ui-mwWikitextSurface .ve-ce-paragraphNode {
	font-family: monospace, monospace !important;
	font-size: 13px !important;
	line-height: 1.5em !important;
}

// ============================================================
// SCROLL TO TOP
// ============================================================
#vt-scroll-top {
	position: fixed;
	bottom: 28px;
	right: 24px;
	width: 36px;
	height: 36px;
	background: rgba(6, 15, 11, 0.85);
	border: 1px solid rgba(125, 255, 156, 0.25);
	color: rgba(125, 255, 156, 0.6);
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
	border-radius: 2px;
	z-index: 800;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transform: translateY(8px);
	pointer-events: none;
	transition: opacity 0.2s ease, transform 0.2s ease,
	            color 0.15s, border-color 0.15s, background 0.15s;

	&.is-visible {
		opacity: 1;
		transform: translateY(0);
		pointer-events: auto;
	}

	&:hover {
		background: rgba(125, 255, 156, 0.1);
		border-color: rgba(125, 255, 156, 0.5);
		color: #7dff9c;
	}
}

// ============================================================

// ============================================================
// TOC SIDEBAR — colonne droite desktop, panneau mobile
// ============================================================

// ── Base commune ─────────────────────────────────────────────
.vt-toc-sidebar {
	background: linear-gradient(180deg, @bg-panel 0%, @bg 100%);
	border-left: 1px solid @border;
	overflow-y: auto;
	overflow-x: hidden;
	z-index: 950;

	&::-webkit-scrollbar { width: 2px; }
	&::-webkit-scrollbar-thumb { background: @ph-border; }

	// Bouton collapse (desktop) / fermer (mobile)
	.vt-toc-collapse-btn {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		padding: 8px 0;
		background: transparent;
		border: 0;
		border-bottom: 1px solid @border;
		color: rgba(125, 255, 156, 0.4);
		font-size: 14px;
		cursor: pointer;
		transition: color 0.15s, background 0.15s;

		&:hover {
			color: @phosphor;
			background: @ph-faint;
		}
	}

	// Titre "SOMMAIRE"
	.vt-toc-sidebar-title {
		font-family: @font-mono;
		font-size: 9px;
		font-weight: 500;
		letter-spacing: 0.28em;
		text-transform: uppercase;
		color: rgba(125, 255, 156, 0.4);
		padding: 10px 16px 8px;
		border-bottom: 1px dashed rgba(125, 255, 156, 0.12);
	}

	// TOC dans la sidebar
	.toc, #toc {
		float: none !important;
		position: static !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		font-size: 11px !important;
		overflow: visible !important;
	}

	.toctitle { display: none !important; }

	.toc > ul, #toc > ul {
		display: block !important;
		padding: 4px 0 !important;
		margin: 0 !important;
	}

	.toc ul { list-style: none !important; margin: 0 !important; padding: 0 !important; }

	.toc li a {
		display: flex !important;
		align-items: baseline !important;
		padding: 5px 16px !important;
		font-size: 11px !important;
		color: #7aaa88 !important;
		font-family: @font-mono !important;
		border-left: 2px solid transparent !important;
		transition: all 0.15s !important;
		text-decoration: none !important;
		white-space: nowrap !important;
		overflow: hidden !important;
		text-overflow: ellipsis !important;

		&:hover {
			color: @phosphor !important;
			background: @ph-faint !important;
			border-left-color: @ph-dim !important;
		}
	}

	.toc li li a {
		padding-left: 28px !important;
		font-size: 10px !important;
		color: rgba(125, 255, 156, 0.4) !important;
	}

	.tocnumber {
		color: rgba(125, 255, 156, 0.3) !important;
		margin-right: 6px !important;
	}
}

// ── DESKTOP > 1200px — TOC sticky dans le flux flex (pousse le texte)
@media screen and (min-width: 1201px) {
	.vt-toc-sidebar {
		// STICKY dans le flex — quand il s'ouvre il pousse le contenu
		position: sticky;
		top: @header-h; // JS override avec header+tabs height
		height: calc(100vh - @header-h);
		flex-shrink: 0;
		width: 32px;     // collapsed par défaut
		overflow: hidden;
		transition: width 0.25s ease;

		// Replié
		&.is-collapsed {
			width: 32px;
			overflow: hidden;

			.toc, #toc { display: none !important; }

			.vt-toc-collapse-btn {
				border-bottom: 1px solid @border;
				height: 36px;
				flex-shrink: 0;
			}

			.vt-toc-sidebar-title {
				padding: 0;
				border-bottom: 0;
				display: flex;
				align-items: center;
				justify-content: center;
				width: 32px;
				flex: 1;
				cursor: pointer;
				overflow: hidden;

				span {
					writing-mode: vertical-rl;
					transform: rotate(180deg);
					white-space: nowrap;
					letter-spacing: 0.2em;
					font-size: 9px;
					color: rgba(125, 255, 156, 0.35);
					font-family: @font-mono;
					font-weight: 500;
					text-transform: uppercase;
					display: block;
				}
			}
		}

		// Déplié — pousse le texte grâce au flex sticky
		&.is-expanded {
			width: 200px;
			overflow-y: auto;
			overflow-x: hidden;

			.toc, #toc { display: block !important; }
		}
	}

	#vt-toc-btn { display: none !important; }
	#vt-toc-mobile-overlay { display: none !important; }
}

// ── TABLETTE + MOBILE ≤ 1200px — TOC sticky dans le flex (pousse le contenu)
@media screen and (max-width: 1200px) {
	.vt-content-row {
		// Reste un flex row même sur mobile pour que le TOC pousse le contenu
		display: flex;
	}

	.vt-toc-sidebar {
		position: sticky;
		top: 0;          // JS override avec header+tabs
		right: 0;
		height: 100vh;   // JS override avec calc(100vh - top)
		width: 32px;     // COLLAPSED PAR DÉFAUT (avant JS)
		flex-shrink: 0;
		overflow: hidden;
		transition: width 0.25s ease;
		z-index: 800;

		// Replié (explicite)
		&.is-collapsed {
			width: 32px;

			.toc, #toc { display: none !important; }

			.vt-toc-collapse-btn {
				border-bottom: 1px solid @border;
				height: 36px;
				flex-shrink: 0;
			}

			.vt-toc-sidebar-title {
				padding: 0;
				border-bottom: 0;
				display: flex;
				align-items: center;
				justify-content: center;
				width: 32px;
				flex: 1;
				cursor: pointer;
				overflow: hidden;

				span {
					writing-mode: vertical-rl;
					transform: rotate(180deg);
					white-space: nowrap;
					letter-spacing: 0.2em;
					font-size: 9px;
					color: rgba(125, 255, 156, 0.35);
					font-family: @font-mono;
					font-weight: 500;
					text-transform: uppercase;
					display: block;
				}
			}
		}

		// Déplié — via classe JS .is-expanded UNIQUEMENT
		&.is-expanded {
			width: 260px;
			max-width: 80vw;
			overflow-y: auto;
			overflow-x: hidden;
			box-shadow: -4px 0 24px rgba(0, 0, 0, 0.6);

			.toc li a {
				white-space: normal !important;
				overflow: visible !important;
				text-overflow: unset !important;
			}
		}
	}

	#vt-toc-btn { display: none !important; }
	#vt-toc-mobile-overlay { display: none !important; }
}