/* ============================================================================
   bffr.fr/raid - GUILDES (refonte du 2026-09-26)
   ----------------------------------------------------------------------------
   Classement (/raid/guildes), fiche + gestion d'une guilde (/raid/guilde/:id),
   raccourci « Ma guilde » (/raid/ma-guilde). Chargée par l'option head de shell()
   APRÈS raids/ds.css. Comportements : scripts/raids/guilde.js.

   Couleurs : uniquement les variables de ds.css. La couleur PROPRE à chaque guilde
   (choisie par son Maître) arrive en variables sur l'élément, calculées côté serveur
   (routes_raid_game.mjs, guildColorVars) :
     --gc  texte lisible sur fond sombre (couleur éclaircie si trop foncée)
     --gcs couleur brute (liseré)      --gct fond teinté      --gcl bordure teintée
   Sans couleur : repli sur l'accent violet.
   ============================================================================ */

/* ── 0. Commun ─────────────────────────────────────────────────────────────── */
body.raidnew .rggl-page .rgbtn, body.raidnew .rggd .rgbtn, body.raidnew .rgge .rgbtn, body.raidnew .rggd-hero .rgbtn { margin-top: 0; }
body.raidnew .rggl-page, body.raidnew .rggd { --gcx: var(--gc, var(--accent2)); }

/* Monogramme de guilde : initiale sur un carré teinté de la couleur de la guilde. */
body.raidnew .rggl-mono {
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
  width: 44px; height: 44px; border-radius: 13px;
  background: var(--gct, var(--accent-dim)); border: 1px solid var(--gcl, var(--accent-line));
  color: var(--gc, var(--accent2)); font: 800 1.12rem/1 var(--font-display); letter-spacing: -.02em;
  text-transform: uppercase; user-select: none;
}
/* Tag de guilde : pastille à la couleur de la guilde. */
body.raidnew .rggl-tagc {
  display: inline-flex; align-items: center; flex: 0 0 auto;
  padding: 2px 7px; border-radius: 7px; border: 1px solid var(--gcl, var(--accent-line));
  background: var(--gct, var(--accent-dim)); color: var(--gc, var(--accent2));
  font: 800 .7rem/1.3 var(--font); letter-spacing: .04em; white-space: nowrap;
}
body.raidnew .rggl-tagc[hidden] { display: none; }
body.raidnew .rggl-lv {
  display: inline-flex; align-items: center; gap: 4px; flex: 0 0 auto;
  padding: 3px 10px; border-radius: 999px; background: var(--bg2); border: 1px solid var(--line2);
  color: var(--txt2); font: 700 .78rem/1.3 var(--font); white-space: nowrap; font-variant-numeric: tabular-nums;
}
body.raidnew .rggl-lv.is-max { color: var(--accent2); border-color: var(--accent-line); background: var(--accent-dim); }
body.raidnew .rggl-you {
  display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 999px;
  background: var(--accent-dim); border: 1px solid var(--accent-line); color: var(--accent2);
  font: 700 .68rem/1.3 var(--font); letter-spacing: .03em; white-space: nowrap;
}
body.raidnew .rggd-hint, body.raidnew .rggl-hint { color: var(--mut); font-size: .84rem; line-height: 1.5; margin: 0; }
body.raidnew .rggd-hint b, body.raidnew .rggl-hint b { color: var(--txt2); }

/* ── 1. Classement : bloc « Ta guilde » ────────────────────────────────────── */
body.raidnew .rggl-mine {
  position: relative; margin: 0 0 22px; padding: 16px 18px;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-l);
  box-shadow: inset 4px 0 0 var(--gcs, var(--accent)), var(--hl);
}
body.raidnew .rggl-mine-top { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
body.raidnew .rggl-mine-tx { flex: 1 1 260px; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
body.raidnew .rggl-mine-k { font: 700 .68rem/1 var(--font); letter-spacing: .14em; text-transform: uppercase; color: var(--mut); }
body.raidnew .rggl-mine-n { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 1.12rem; font-weight: 750; color: var(--gc, var(--txt)); }
body.raidnew .rggl-mine-n:hover { color: var(--gc, var(--txt)); text-decoration: underline; text-underline-offset: 3px; }
body.raidnew .rggl-mine-s { color: var(--mut); font-size: .86rem; font-variant-numeric: tabular-nums; }
body.raidnew .rggl-mine-s b { color: var(--txt2); }
body.raidnew .rggl-mine-a { display: flex; gap: 8px; flex-wrap: wrap; }

/* ── 2. Formulaire « Personnaliser ma guilde » (classement + onglet Gestion) ─ */
body.raidnew .rgge { margin-top: 14px; border-top: 1px solid var(--line); }
body.raidnew .rgge.is-panel { margin-top: 0; border-top: 0; }
body.raidnew .rgge > summary {
  list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px;
  min-height: 48px; padding: 12px 2px 4px; color: var(--txt); font-weight: 700; user-select: none;
}
body.raidnew .rgge > summary::-webkit-details-marker { display: none; }
body.raidnew .rgge > summary small { display: block; color: var(--mut); font-weight: 500; font-size: .8rem; margin-top: 1px; }
body.raidnew .rgge-car { width: 16px; height: 16px; margin-left: auto; opacity: .6; transition: transform .2s; flex: 0 0 16px; }
body.raidnew .rgge[open] > summary .rgge-car { transform: rotate(180deg); }
body.raidnew .rgge-body { padding: 8px 0 2px; }
body.raidnew .rgge-sub { color: var(--mut); font-size: .84rem; margin: 0 0 12px; }
body.raidnew .rgge-preview {
  display: flex; align-items: center; gap: 12px; padding: 12px 14px; margin-bottom: 12px;
  background: var(--bg2); border: 1px solid var(--line); border-radius: var(--r-m);
}
body.raidnew .rgge-pv-tx { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
body.raidnew .rgge-pv-name { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-weight: 750; font-size: 1.02rem; color: var(--gc, var(--txt)); overflow-wrap: anywhere; }
body.raidnew .rgge-pv-motd { color: var(--mut); font-size: .82rem; font-style: italic; overflow-wrap: anywhere; }
body.raidnew .rgge-pv-k { margin-left: auto; font: 700 .64rem/1 var(--font); letter-spacing: .14em; text-transform: uppercase; color: var(--mut); align-self: flex-start; }
body.raidnew .rgge-row { display: grid; grid-template-columns: 78px minmax(0, 1fr) 210px; align-items: center; gap: 10px; margin: 10px 0; }
body.raidnew .rgge-row label { color: var(--mut); font-size: .85rem; font-weight: 600; }
body.raidnew .rgge-row input { width: 100%; min-width: 0; box-sizing: border-box; }
body.raidnew .rgge-row input:disabled { opacity: .6; }
body.raidnew .rgge-color { display: flex; align-items: center; gap: 10px; min-width: 0; }
body.raidnew .rgge-row input[type="color"] { width: 54px; min-width: 54px; flex: 0 0 54px; height: 40px; padding: 3px; cursor: pointer; }
body.raidnew .rgge-hex { color: var(--txt2); font: 600 .86rem var(--font); font-variant-numeric: tabular-nums; text-transform: uppercase; }
body.raidnew .rgge-b { width: 100%; min-height: 40px; padding: 0 14px; font-size: .84rem; white-space: nowrap; }
/* Quatre boutons d'enregistrement côte à côte : style secondaire (le formulaire reste calme), accent au survol. */
body.raidnew .rgbtn.rgge-b { background: var(--card2); color: var(--txt); border: 1px solid var(--line2); box-shadow: none; }
body.raidnew .rgbtn.rgge-b:hover { border-color: var(--accent-line); color: var(--accent2); filter: none; }
body.raidnew .rgge-note { color: var(--mut); font-size: .78rem; grid-column: 3; }
body.raidnew .rgge-msg { min-height: 20px; margin-top: 8px; font-size: .86rem; font-weight: 600; }
body.raidnew .rgge-msg:empty { min-height: 0; margin: 0; }
body.raidnew .rgge-ok { color: var(--ok); }
body.raidnew .rgge-ko { color: var(--bad); }

/* ── 3. Classement : podium (top 3) ────────────────────────────────────────── */
body.raidnew .rggl-podium { display: grid; grid-template-columns: 1fr 1.1fr 1fr; gap: 14px; align-items: end; margin: 6px 0 18px; }
body.raidnew .rggl-pod {
  position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px;
  padding: 22px 16px 16px; min-width: 0;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-l);
  box-shadow: inset 0 3px 0 var(--gcs, var(--accent)), var(--hl);
  transition: border-color .15s, transform .15s var(--ease);
}
body.raidnew .rggl-pod:hover { border-color: var(--line2); transform: translateY(-2px); }
body.raidnew .rggl-pod-1 { order: 2; padding-top: 30px; padding-bottom: 20px; border-color: var(--accent-line); }
body.raidnew .rggl-pod-2 { order: 1; }
body.raidnew .rggl-pod-3 { order: 3; }
body.raidnew .rggl-pod.is-mine { border-color: var(--accent); }
body.raidnew .rggl-pod .rgmed { position: absolute; top: 12px; left: 12px; font-size: 1rem; }
body.raidnew .rggl-pod .rggl-lv { position: absolute; top: 12px; right: 12px; }
body.raidnew .rggl-pod .rggl-mono { width: 66px; height: 66px; border-radius: 19px; font-size: 1.7rem; margin-top: 4px; }
body.raidnew .rggl-pod-1 .rggl-mono { width: 78px; height: 78px; border-radius: 22px; font-size: 2rem; }
body.raidnew .rggl-pod-n { display: flex; align-items: center; justify-content: center; gap: 7px; flex-wrap: wrap; max-width: 100%; margin: 2px 0 0; font-size: 1.12rem; font-weight: 750; color: var(--gc, var(--txt)); overflow-wrap: anywhere; }
body.raidnew .rggl-pod-1 .rggl-pod-n { font-size: 1.28rem; }
body.raidnew .rggl-pod .rggl-motd { max-width: 100%; }
body.raidnew .rggl-pod-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; margin-top: 6px; }
body.raidnew .rggl-pod-stats > div { display: flex; flex-direction: column; gap: 2px; padding: 9px 6px; background: var(--bg2); border: 1px solid var(--line); border-radius: 12px; min-width: 0; }
body.raidnew .rggl-pod-stats b { color: var(--txt); font-size: 1.02rem; font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
body.raidnew .rggl-pod-stats span { color: var(--mut); font-size: .7rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
body.raidnew .rggl-pod-1 .rggl-pod-stats b { color: var(--accent2); }

/* Lien qui couvre toute la carte (les liens internes, ex. le Maître, passent au-dessus). */
body.raidnew .rggl-cover { position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
body.raidnew .rggl-cover:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
body.raidnew .rggl-owner {
  position: relative; z-index: 2; display: inline-flex; align-items: center; gap: 6px; min-width: 0; max-width: 100%;
  color: var(--mut); font-size: .84rem; font-weight: 600;
}
body.raidnew .rggl-owner:hover { color: var(--txt); }
body.raidnew .rggl-owner img { width: 22px; height: 22px; border-radius: 50%; flex: 0 0 22px; background: var(--bg2); }
body.raidnew .rggl-owner span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.raidnew .rggl-owner small { color: var(--mut); font-size: .72rem; font-weight: 600; opacity: .8; }
body.raidnew .rggl-motd { color: var(--mut); font-size: .82rem; font-style: italic; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ── 4. Classement : lignes (4e et suivants) ───────────────────────────────── */
body.raidnew .rggl-listh { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 26px 0 12px; }
body.raidnew .rggl-listh h2 { font-size: 1.08rem; }
body.raidnew .rggl-list { display: flex; flex-direction: column; gap: 8px; }
body.raidnew .rggl-row {
  position: relative; display: grid; align-items: center; gap: 12px 14px;
  grid-template-columns: 38px 44px minmax(0, 1fr) 150px 74px 132px;
  grid-template-areas: "rank mono id mem lv pts";
  padding: 11px 16px 11px 12px;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-m);
  box-shadow: inset 3px 0 0 var(--gcs, transparent), var(--hl);
  contain-intrinsic-size: auto 70px;
  transition: border-color .15s, background-color .15s;
}
body.raidnew .rggl-row:hover { border-color: var(--line2); background: var(--card2); }
body.raidnew .rggl-row.is-mine { border-color: var(--accent-line); background: var(--accent-dim); }
body.raidnew .rggl-rank { grid-area: rank; text-align: center; color: var(--mut); font: 800 .98rem/1 var(--font); font-variant-numeric: tabular-nums; }
body.raidnew .rggl-row .rggl-mono { grid-area: mono; }
body.raidnew .rggl-id { grid-area: id; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
body.raidnew .rggl-n { display: flex; align-items: center; gap: 8px; min-width: 0; }
body.raidnew .rggl-nm { color: var(--gc, var(--txt)); font-weight: 750; font-size: 1rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
body.raidnew .rggl-sub { display: flex; align-items: center; gap: 8px; min-width: 0; }
body.raidnew .rggl-sub .rggl-motd { flex: 1 1 auto; min-width: 0; }
body.raidnew .rggl-sep { color: var(--line2); flex: 0 0 auto; }
body.raidnew .rggl-mem { grid-area: mem; display: flex; flex-direction: column; gap: 5px; min-width: 0; }
body.raidnew .rggl-mem-t { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; color: var(--mut); font-size: .76rem; }
body.raidnew .rggl-mem-t b { color: var(--txt2); font-size: .88rem; font-variant-numeric: tabular-nums; }
body.raidnew .rggl-bar { display: block; height: 5px; border-radius: 99px; background: var(--bg2); border: 1px solid var(--line); overflow: hidden; }
body.raidnew .rggl-bar > i { display: block; height: 100%; border-radius: inherit; background: var(--gcs, var(--accent)); opacity: .85; }
body.raidnew .rggl-row .rggl-lv { grid-area: lv; justify-self: center; }
body.raidnew .rggl-pts { grid-area: pts; display: flex; flex-direction: column; align-items: flex-end; line-height: 1.15; }
body.raidnew .rggl-pts b { color: var(--txt); font-size: 1.02rem; font-variant-numeric: tabular-nums; letter-spacing: -.01em; white-space: nowrap; }
body.raidnew .rggl-pts small { color: var(--mut); font-size: .7rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }

/* ── 5. Fiche : bandeau ────────────────────────────────────────────────────── */
/* Retour « Classement des guildes » : a.rgx-back de ds.css (.rggd-back reste posée comme alias, sans règle propre). */
body.raidnew .rghero.rggd-hero { box-shadow: inset 4px 0 0 var(--gcs, var(--accent)), var(--hl); gap: 12px; }
body.raidnew .rggd-idrow { display: flex; align-items: center; gap: 16px; min-width: 0; }
body.raidnew .rggd-idrow .rggl-mono { width: 68px; height: 68px; border-radius: 20px; font-size: 1.8rem; background-color: var(--bg2); }
body.raidnew .rggd-idtx { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
body.raidnew .rghero.rggd-hero h1 { color: var(--gc, var(--txt)); overflow-wrap: anywhere; }
body.raidnew .rggd-idtx .rggl-tagc { align-self: flex-start; font-size: .78rem; padding: 3px 9px; }
body.raidnew .rghero.rggd-hero p.rggd-motd { font-style: italic; color: var(--txt2); overflow-wrap: anywhere; }
/* Voiles sur l'illustration du bandeau : fond de page translucide, suit le thème du joueur (--bg). */
body.raidnew .rggd-lvl { display: flex; flex-direction: column; gap: 7px; max-width: 520px; padding: 12px 14px; border-radius: var(--r-m); background: color-mix(in srgb, var(--bg) 55%, transparent); border: 1px solid var(--line2); }
body.raidnew .rggd-lvl-top { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-size: .84rem; color: var(--mut); font-variant-numeric: tabular-nums; }
body.raidnew .rggd-lvl-top b { color: var(--txt); font-size: .98rem; }
body.raidnew .rggd-lvbar { height: 8px; border-radius: 99px; background: var(--bg2); border: 1px solid var(--line); overflow: hidden; }
body.raidnew .rggd-lvbar > i { display: block; height: 100%; border-radius: inherit; background: var(--accent); transition: width .4s var(--ease); }
body.raidnew .rggd-lvbonus { color: var(--mut); font-size: .8rem; }
body.raidnew .rggd-lvbonus b { color: var(--accent2); font-weight: 700; }
body.raidnew .rggd-hero .rgx-herostats { margin-top: 0; }
body.raidnew .rggd-boosts { display: flex; flex-direction: column; gap: 7px; }
body.raidnew .rggd-boosts:empty { display: none; }
body.raidnew .rggd-boosts-h { font: 700 .68rem/1 var(--font); letter-spacing: .14em; text-transform: uppercase; color: var(--mut); }
body.raidnew .rggd-boosts-wrap { display: flex; flex-wrap: wrap; gap: 7px; }
body.raidnew .rgb-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 999px; font-size: .8rem; line-height: 1.2; border: 1px solid var(--line2); background: color-mix(in srgb, var(--bg) 60%, transparent); color: var(--txt2); }
body.raidnew .rgb-chip img { width: 18px; height: 18px; object-fit: contain; flex: 0 0 18px; }
body.raidnew .rgb-chip .rgb-nm { color: var(--txt); font-weight: 700; }
body.raidnew .rgb-chip .rgb-ef { color: var(--mut); }
body.raidnew .rgb-chip .rgb-t { color: var(--warn); font-weight: 700; font-variant-numeric: tabular-nums; }
body.raidnew .rgb-chip .rgb-lv { color: var(--accent2); font-weight: 700; font-variant-numeric: tabular-nums; }
body.raidnew .rgb-chip.tmp { border-color: var(--warn-line); }
body.raidnew .rgb-chip.prm { border-color: var(--accent-line); }

/* ── 6. Fiche : onglets + panneaux ─────────────────────────────────────────── */
body.raidnew .rggd { min-height: 320px; }
body.raidnew .rggd-tabs { margin: 0 0 16px; position: relative; z-index: 2; }
body.raidnew .rggd-tabs .rgtab { min-height: 40px; }
body.raidnew .rggd-tabs .rgtab .re, body.raidnew .rggd-tabs .rgtab img { width: 1.25em; height: 1.25em; }
body.raidnew .rggd-tc { display: inline-flex; align-items: center; padding: 1px 7px; border-radius: 999px; background: var(--bg2); border: 1px solid var(--line); color: var(--mut); font-size: .72rem; font-weight: 700; font-variant-numeric: tabular-nums; }
body.raidnew .rgtab.active .rggd-tc { color: var(--txt2); border-color: var(--line2); }
body.raidnew .rggd-panel[hidden] { display: none; }
body.raidnew .rggd-panel { animation: rggd-in .22s var(--ease) both; }
@keyframes rggd-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
body.raidnew .rggd-sech { display: flex; align-items: center; justify-content: space-between; gap: 10px 14px; flex-wrap: wrap; margin: 0 0 12px; }
/* Titres de section : .rgx-h2 (ds.css, taille et filet communs) ; le titre prend la place libre de la ligne. */
body.raidnew .rggd-sech h2 { margin: 0; flex: 1 1 auto; min-width: 0; }
body.raidnew .rggd-sech h2 .rgsi, body.raidnew .rggd-card h3 .rgsi { width: 22px; height: 22px; object-fit: contain; }
body.raidnew .rggd-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-l); padding: 16px 18px; box-shadow: var(--hl); min-width: 0; }
body.raidnew .rggd-card + .rggd-card { margin-top: 14px; }
body.raidnew .rggd-card h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; font-size: 1rem; color: var(--txt); }
body.raidnew .rggd-card h3 small { margin-left: auto; color: var(--mut); font-size: .8rem; font-weight: 600; }
body.raidnew .rggd-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: start; }
body.raidnew .rggd-grid2 > .rggd-card + .rggd-card, body.raidnew .rggd-bank > .rggd-card + .rggd-card { margin-top: 0; }
body.raidnew .rggd-gest, body.raidnew .rggd-gest > div { display: flex; flex-direction: column; gap: 14px; }
body.raidnew .rggd-gest .rggd-card + .rggd-card { margin-top: 0; }
body.raidnew .rggd-gest > div:empty { display: none; }
body.raidnew .rggd-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; margin: 0 0 10px; }
body.raidnew .rggd-form.is-item { grid-template-columns: minmax(0, 1fr) 78px auto auto; }
body.raidnew .rggd-form input, body.raidnew .rggd-form select { width: 100%; min-width: 0; box-sizing: border-box; }
body.raidnew .rggd-form .rgbtn { min-height: 40px; padding: 0 16px; }
body.raidnew .rggd-lab { display: block; margin: 12px 0 6px; color: var(--mut); font-size: .78rem; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; }
body.raidnew .rggd-lab:first-of-type { margin-top: 0; }
/* Impôt de guilde sous le champ Pièces du dépôt (guilde.js, depositTaxHint). */
body.raidnew .rggd-hint.rggd-tax { margin: -2px 0 4px; }
body.raidnew .rggd-max { min-height: 40px; }
body.raidnew .rggd-bulk { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
body.raidnew .rggd-empty { color: var(--mut); font-size: .88rem; padding: 14px 16px; background: var(--bg2); border: 1px dashed var(--line2); border-radius: var(--r-m); text-align: center; }
body.raidnew .rggd-err { display: flex; flex-direction: column; align-items: center; gap: 10px; }

/* Messages : encadré rouge pour le refus sous malus (bien visible, au point d'usage). */
body.raidnew .rggd-msg { min-height: 0; margin: 0; font-size: .88rem; }
body.raidnew .rggd-msg:empty { display: none; }
body.raidnew .rggd-msg.rggd-ok { color: var(--ok); margin: 0 0 12px; }
body.raidnew .rggd-msg.rggd-ko { color: var(--bad); margin: 0 0 12px; }
body.raidnew .rggd-alert { display: block; padding: 11px 14px; border: 1px solid var(--bad-line); background: var(--bad-dim); border-radius: 12px; color: var(--bad); font-weight: 650; }

/* Notification flottante (enfant de <body>, z-index > 1400). Sur PC elle passe entre la palette (bas
   gauche) et le bouton du chat (bas droite, 54 px à 18 px du bord). Sous 720 px la bulle centrée (520 px
   au plus) atteint le bouton du chat : elle monte au-dessus (section 15). */
body.raidnew .rggd-toast {
  /* width: max-content : sans elle, left: 50% limitait la bulle à la moitié de l'écran (195 px sur téléphone). */
  position: fixed; left: 50%; bottom: 26px; z-index: 1600; width: max-content; max-width: min(520px, calc(100vw - 32px)); box-sizing: border-box;
  transform: translate(-50%, 16px); opacity: 0; pointer-events: none;
  padding: 12px 18px; border-radius: 14px; background: var(--card2); border: 1px solid var(--line2); color: var(--txt);
  font: 650 .9rem/1.4 var(--font); box-shadow: var(--shadow-pop); transition: opacity .22s, transform .22s var(--ease);
}
body.raidnew .rggd-toast.show { opacity: 1; transform: translate(-50%, 0); }
body.raidnew .rggd-toast.ok { border-color: var(--ok-line); }
body.raidnew .rggd-toast.bad { border-color: var(--bad-line); }

/* ── 7. Fiche : membres ────────────────────────────────────────────────────── */
body.raidnew .rggd-cap { display: inline-flex; align-items: center; gap: 10px; flex-wrap: wrap; color: var(--mut); font-size: .84rem; font-variant-numeric: tabular-nums; }
body.raidnew .rggd-cap b { color: var(--txt); }
body.raidnew .rggd-cap .rgmini { min-height: 36px; }
body.raidnew .rggd-mlist { display: flex; flex-direction: column; gap: 6px; margin-top: 12px; }
body.raidnew .rggd-m {
  display: grid; align-items: center; gap: 10px 12px;
  grid-template-columns: 34px 42px minmax(0, 1fr) auto auto;
  grid-template-areas: "rank av id stats act";
  padding: 10px 12px; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-m); box-shadow: var(--hl);
}
body.raidnew .rggd-m.is-me { border-color: var(--accent-line); background: var(--accent-dim); }
body.raidnew .rggd-mrank { grid-area: rank; text-align: center; font-weight: 800; color: var(--mut); font-variant-numeric: tabular-nums; font-size: .95rem; }
body.raidnew .rggd-mrank.is-zero { color: var(--dim); font-weight: 600; }   /* aucun point cette semaine : pas de rang */
body.raidnew .rggd-mrank .re { width: 1.5em; height: 1.5em; }
body.raidnew .rggd-mav { grid-area: av; display: block; width: 42px; height: 42px; }
body.raidnew .rggd-mav img { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line2); background: var(--bg2); display: block; }
body.raidnew .rggd-mid { grid-area: id; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
body.raidnew .rggd-mname-row { display: flex; align-items: center; gap: 7px; min-width: 0; }
body.raidnew .rggd-mname { color: var(--txt); font-weight: 700; font-size: .98rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
body.raidnew .rggd-mname:hover { color: var(--accent2); }
body.raidnew .rggd-mrk { display: inline-flex; align-items: center; gap: 5px; color: var(--mut); font-size: .8rem; font-weight: 600; }
body.raidnew .rggd-mrk.is-maitre { color: var(--accent2); }
body.raidnew .rgrk { width: 18px; height: 18px; object-fit: contain; flex: 0 0 18px; }
body.raidnew .rggd-mstats { grid-area: stats; display: flex; align-items: center; gap: 8px; }
body.raidnew .rggd-stat { display: inline-flex; align-items: center; gap: 5px; padding: 5px 10px; border-radius: 999px; background: var(--bg2); border: 1px solid var(--line); color: var(--mut); font-size: .8rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
body.raidnew .rggd-stat b { color: var(--txt); font-weight: 700; }
body.raidnew .rggd-stat.wk b { color: var(--warn); }
body.raidnew .rggd-stat .rgce, body.raidnew .rggd-stat .re { width: 15px; height: 15px; }
body.raidnew .rgce { width: 1em; height: 1em; vertical-align: -2px; object-fit: contain; }
body.raidnew .rgcoin { width: 16px; height: 16px; vertical-align: -3px; object-fit: contain; margin: 0 1px; }
body.raidnew .rggd-ma { grid-area: act; display: flex; gap: 6px; }
body.raidnew .rggd-ma button {
  width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center;
  background: var(--card2); border: 1px solid var(--line2); color: var(--txt); border-radius: 10px;
  cursor: pointer; font-size: .85rem; line-height: 1; transition: border-color .13s, color .13s;
}
body.raidnew .rggd-ma button:hover { border-color: var(--accent-line); color: var(--accent2); }
body.raidnew .rggd-ma button.ko:hover { border-color: var(--bad-line); color: var(--bad); }
body.raidnew .rggd-ma button .re { width: 18px; height: 18px; }
body.raidnew .rggd-invite { margin-top: 16px; }

/* ── 8. Fiche : coffre (pièces + objets) ───────────────────────────────────── */
body.raidnew .rggd-bank { display: grid; grid-template-columns: minmax(220px, 300px) minmax(0, 1fr); gap: 14px; margin-bottom: 14px; }
body.raidnew .rggd-bank-main { display: flex; align-items: center; gap: 14px; }
body.raidnew .rggd-bank-ic { width: 52px; height: 52px; flex: 0 0 52px; display: flex; align-items: center; justify-content: center; border-radius: 15px; background: var(--bg2); border: 1px solid var(--line); font-size: 1.6rem; }
body.raidnew .rggd-bank-ic img { width: 34px; height: 34px; object-fit: contain; }
body.raidnew .rggd-bank-k { display: block; color: var(--mut); font-size: .74rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
body.raidnew .rggd-bank-v { display: flex; align-items: center; gap: 6px; color: var(--txt); font-size: 1.6rem; font-weight: 800; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
body.raidnew .rggd-bank-v .rgcoin { width: 22px; height: 22px; }
body.raidnew .rggd-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; }
body.raidnew .rggd-it { display: flex; align-items: center; gap: 9px; min-width: 0; padding: 8px 10px; font-size: .88rem; background: var(--bg2); border: 1px solid var(--line); border-radius: 11px; }
body.raidnew .rggd-it img { width: 26px; height: 26px; object-fit: contain; flex: 0 0 26px; }
body.raidnew .rggd-it span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--txt2); }
body.raidnew .rggd-it .q { margin-left: auto; flex: 0 0 auto; color: var(--txt); font-weight: 700; font-variant-numeric: tabular-nums; }

/* ── 9. Fiche : coffre d'équipement ────────────────────────────────────────── */
body.raidnew .rgv-cap { display: inline-flex; align-items: center; gap: 10px; color: var(--mut); font-size: .84rem; font-variant-numeric: tabular-nums; }
body.raidnew .rgv-cap b { color: var(--txt); }
body.raidnew .rgv-cap .rggl-bar { width: 120px; }
body.raidnew .rgv-cap.full b { color: var(--bad); }
body.raidnew .rgv-tools { display: grid; grid-template-columns: minmax(0, 1fr) 230px 230px; gap: 8px; margin: 0 0 14px; }
body.raidnew .rgv-tools input, body.raidnew .rgv-tools select { width: 100%; min-width: 0; box-sizing: border-box; }
body.raidnew .rgv-sub { display: flex; align-items: center; gap: 8px; margin: 18px 0 10px; font: 700 .76rem/1.2 var(--font); letter-spacing: .1em; text-transform: uppercase; color: var(--mut); }
body.raidnew .rgv-sub:first-child { margin-top: 0; }
body.raidnew .rgv-sub::after { content: ""; flex: 1; height: 1px; background: var(--line); }
body.raidnew .rgv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(232px, 1fr)); gap: 10px; }
body.raidnew .rgv-card {
  display: flex; flex-direction: column; gap: 8px; min-width: 0; padding: 11px 12px;
  background: var(--card); border: 1px solid var(--line); border-top: 3px solid var(--rgv-c, var(--line2)); border-radius: var(--r-m);
  box-shadow: var(--hl); cursor: default; contain: layout paint;
}
body.raidnew .rgv-card[data-inst] { cursor: pointer; }
body.raidnew .rgv-card[data-inst]:hover { border-color: var(--line2); border-top-color: var(--rgv-c, var(--line2)); background: var(--card2); }
body.raidnew .rgv-top { display: flex; gap: 10px; align-items: flex-start; min-width: 0; }
body.raidnew .rgv-ic { flex: 0 0 44px; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; border-radius: 11px; background: var(--bg2); border: 1px solid var(--line); }
body.raidnew .rgv-ic img { width: 36px; height: 36px; object-fit: contain; }
body.raidnew .rgv-ph { color: var(--mut); font-weight: 700; }
body.raidnew .rgv-b { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
body.raidnew .rgv-nm { color: var(--txt); font-weight: 650; font-size: .9rem; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
body.raidnew .rgv-tags { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
body.raidnew .rgv-badge { flex: 0 0 auto; font: 800 .68rem/1.3 var(--font); border: 1px solid; border-radius: 6px; padding: 1px 6px; background: var(--bg2); }
body.raidnew .rgv-tier-ic { width: 20px; height: 20px; object-fit: contain; }
body.raidnew .rgv-rar { font-size: .74rem; font-weight: 700; }
body.raidnew .rgv-lock { font-size: .74rem; }
body.raidnew .rgv-meta { color: var(--mut); font-size: .76rem; }
body.raidnew .rgv-pot { color: var(--accent2); font-weight: 650; }
body.raidnew .rgv-st { color: var(--txt2); font-size: .76rem; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
body.raidnew .rgv-by { color: var(--mut); font-size: .72rem; font-style: italic; }
body.raidnew .rgv-btn { width: 100%; min-height: 38px; padding: 0 12px; font-size: .82rem; margin-top: auto; }
body.raidnew .rgv-pager { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 14px 0 2px; }
body.raidnew .rgv-pager .rgmini { min-width: 44px; min-height: 40px; }
body.raidnew .rgv-pager span { color: var(--mut); font-size: .86rem; font-variant-numeric: tabular-nums; }

/* ── 10. Fiche : boutique de guilde ────────────────────────────────────────── */
body.raidnew .rgshop-bal { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
body.raidnew .rgshop-bal .rggd-stat { font-size: .84rem; padding: 7px 12px; }
body.raidnew .rgshop-bal .rggd-stat.pts b { color: var(--accent2); }
body.raidnew .rgshop-recip { display: grid; grid-template-columns: auto minmax(0, 320px); justify-content: start; align-items: center; gap: 10px; margin: 0 0 8px; }
body.raidnew .rgshop-recip label { color: var(--mut); font-size: .85rem; font-weight: 600; }
body.raidnew .rgshop-cat { display: flex; align-items: center; gap: 8px; margin: 22px 0 10px; font-size: .98rem; font-weight: 750; color: var(--txt); }
body.raidnew .rgshop-cat::after { content: ""; flex: 1; height: 1px; background: var(--line); margin-left: 6px; }
body.raidnew .rgshop-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; }
body.raidnew .rgshop-card { display: flex; flex-direction: column; gap: 8px; min-width: 0; padding: 13px 14px; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-m); box-shadow: var(--hl); }
body.raidnew .rgshop-card.ok { border-color: var(--accent-line); }
body.raidnew .rgshop-card.locked { opacity: .6; }
body.raidnew .rgshop-h { display: flex; align-items: center; gap: 10px; }
body.raidnew .rgshop-h img { width: 32px; height: 32px; object-fit: contain; flex: 0 0 32px; }
body.raidnew .rgshop-fb { font-size: 1.45rem; line-height: 1; flex: 0 0 auto; }
body.raidnew .rgshop-h .nm { color: var(--txt); font-weight: 700; font-size: .95rem; line-height: 1.2; min-width: 0; }
body.raidnew .rgshop-badge { margin-left: auto; flex: 0 0 auto; font: 800 .64rem/1.3 var(--font); text-transform: uppercase; letter-spacing: .06em; padding: 2px 8px; border-radius: 999px; background: var(--accent-dim); border: 1px solid var(--accent-line); color: var(--accent2); }
body.raidnew .rgshop-badge.soon { background: var(--bg2); border-color: var(--line2); color: var(--mut); }
body.raidnew .rgshop-desc { color: var(--mut); font-size: .82rem; line-height: 1.45; flex: 1; }
body.raidnew .rgshop-cost { display: flex; flex-wrap: wrap; gap: 6px; font-size: .8rem; }
body.raidnew .rgshop-cost .c { display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border-radius: 999px; background: var(--bg2); border: 1px solid var(--line); color: var(--txt2); font-variant-numeric: tabular-nums; }
body.raidnew .rgshop-cost img { width: 15px; height: 15px; object-fit: contain; }
body.raidnew .rgshop-cost .pts { color: var(--accent2); font-weight: 700; }
body.raidnew .rgshop-cost .rgshop-miss { color: var(--bad); border-color: var(--bad-line); }
body.raidnew .rgshop-card .rgbtn { width: 100%; min-height: 40px; }
body.raidnew .rgbtn.rgshop-soon { background: var(--bg2); color: var(--mut); border: 1px solid var(--line2); box-shadow: none; }

/* ── 11. Fiche : journal ───────────────────────────────────────────────────── */
body.raidnew .rglog-list { display: flex; flex-direction: column; }
body.raidnew .rglog-row { display: flex; align-items: center; gap: 11px; padding: 9px 4px; border-bottom: 1px solid var(--line); contain-intrinsic-size: auto 46px; }
body.raidnew .rglog-row:last-child { border-bottom: 0; }
body.raidnew .rglog-row img.av { width: 28px; height: 28px; border-radius: 50%; flex: 0 0 28px; background: var(--bg2); }
body.raidnew .rglog-ic { width: 28px; height: 28px; flex: 0 0 28px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--bg2); border: 1px solid var(--line); font-size: .78rem; font-weight: 800; }
body.raidnew .rglog-row .t { flex: 1; min-width: 0; font-size: .88rem; color: var(--txt2); overflow-wrap: anywhere; }
body.raidnew .rglog-row .t b { color: var(--txt); }
body.raidnew .rglog-row .when { color: var(--mut); font-size: .76rem; white-space: nowrap; flex: 0 0 auto; font-variant-numeric: tabular-nums; }
body.raidnew .rglog-dep .rglog-v { color: var(--ok); }
body.raidnew .rglog-wd .rglog-v { color: var(--warn); }
body.raidnew .rglog-shop .rglog-v { color: var(--accent2); }
body.raidnew .rglog-tax .rglog-v { color: var(--bad); }

/* ── 12. Fiche : gestion ───────────────────────────────────────────────────── */
body.raidnew .rggd-acts { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
body.raidnew .rggd-danger-zone { border-color: var(--bad-line); }
body.raidnew .rgbtn.rggd-danger { background: transparent; color: var(--bad); border: 1px solid var(--bad-line); box-shadow: none; }
body.raidnew .rgbtn.rggd-danger:hover { background: var(--bad-dim); color: var(--bad); filter: none; }
/* Confirmation stylée (guilde.js, askConfirm) : .rgd-modal > .rgd-sheet de ds.css, enfant de <body>,
   feuille qui monte du bas sur téléphone. Remplace les confirm() natifs du navigateur. */
body.raidnew .rggd-cf-sheet { max-width: 420px; padding: 22px 22px 18px; }
body.raidnew .rggd-cf-t { margin: 0 0 8px; color: var(--txt); font-size: 1.1rem; font-weight: 750; line-height: 1.3; }
body.raidnew .rggd-cf-d { margin: 0 0 18px; color: var(--txt2); font-size: .92rem; line-height: 1.55; }
body.raidnew .rggd-cf-act { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
body.raidnew .rgbtn.rggd-danger.is-solid { background: var(--bad); border-color: var(--bad); color: var(--on-accent); }
body.raidnew .rgbtn.rggd-danger.is-solid:hover { background: var(--bad); color: var(--on-accent); filter: brightness(1.08); }

/* ── 13. Ma guilde (sans guilde) ───────────────────────────────────────────── */
body.raidnew .rgmg-empty { max-width: 640px; margin: 0 auto; }
body.raidnew .rgmg-empty .rgempty-box { max-width: none; margin: 0 0 14px; }
body.raidnew .rgmg-acts { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
body.raidnew .rgmg-acts .rgbtn { margin-top: 8px; }
body.raidnew .rgmg-how { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: stretch; }
body.raidnew .rgmg-how .rggd-card + .rggd-card { margin-top: 0; }
body.raidnew .rgmg-how h3 { font-size: .95rem; margin: 0 0 6px; }
body.raidnew .rgmg-how p { margin: 0; color: var(--mut); font-size: .86rem; line-height: 1.5; }
body.raidnew .rgmg-how p b { color: var(--txt2); }

/* ── 14. Tablette ──────────────────────────────────────────────────────────── */
@media (max-width: 1100px) {
  body.raidnew .rggl-row { grid-template-columns: 34px 44px minmax(0, 1fr) 130px 70px 118px; gap: 10px 12px; }
  body.raidnew .rggd-m { grid-template-columns: 30px 42px minmax(0, 1fr) auto; grid-template-areas: "rank av id act" "rank av stats stats"; }
  body.raidnew .rggd-mstats { justify-self: start; }
}
@media (max-width: 900px) {
  body.raidnew .rggd-bank, body.raidnew .rggd-grid2 { grid-template-columns: 1fr; }
  body.raidnew .rgv-tools { grid-template-columns: 1fr 1fr; }
  body.raidnew .rgv-tools .rgv-q { grid-column: 1 / -1; }
}

/* ── 15. Téléphone ─────────────────────────────────────────────────────────── */
@media (max-width: 760px) {
  body.raidnew .rggl-podium { grid-template-columns: 1fr; gap: 10px; align-items: stretch; }
  body.raidnew .rggl-pod, body.raidnew .rggl-pod-1 {
    order: 0; display: grid; text-align: left; align-items: center; gap: 4px 12px; padding: 14px 14px 14px 16px;
    grid-template-columns: 56px minmax(0, 1fr); grid-template-areas: "mono name" "mono owner" "stats stats";
    box-shadow: inset 3px 0 0 var(--gcs, var(--accent)), var(--hl);
  }
  body.raidnew .rggl-pod:hover { transform: none; }
  body.raidnew .rggl-pod .rggl-mono, body.raidnew .rggl-pod-1 .rggl-mono { grid-area: mono; width: 56px; height: 56px; border-radius: 16px; font-size: 1.45rem; margin: 0; }
  body.raidnew .rggl-pod-n, body.raidnew .rggl-pod-1 .rggl-pod-n { grid-area: name; justify-content: flex-start; font-size: 1.04rem; padding-right: 64px; }
  body.raidnew .rggl-pod .rggl-owner { grid-area: owner; }
  body.raidnew .rggl-pod .rggl-motd { display: none; }
  body.raidnew .rggl-pod-stats { grid-area: stats; margin-top: 8px; }
  body.raidnew .rggl-pod .rgmed { top: -8px; left: -6px; box-shadow: 0 0 0 3px var(--bg); }
  body.raidnew .rggl-pod .rggl-lv { top: 14px; right: 12px; }

  body.raidnew .rggl-row {
    grid-template-columns: 26px 42px minmax(0, 1fr) auto;
    grid-template-areas: "rank mono id pts" "rank mono mem lv";
    gap: 6px 10px; padding: 11px 12px 11px 8px;
  }
  body.raidnew .rggl-row .rggl-mono { width: 42px; height: 42px; font-size: 1.05rem; align-self: start; }
  body.raidnew .rggl-rank { font-size: .86rem; align-self: start; padding-top: 13px; }
  body.raidnew .rggl-sub .rggl-motd, body.raidnew .rggl-sub .rggl-sep { display: none; }
  body.raidnew .rggl-mem { flex-direction: row; align-items: center; gap: 8px; }
  body.raidnew .rggl-mem-t { flex: 0 0 auto; }
  body.raidnew .rggl-mem .rggl-bar { flex: 1 1 auto; max-width: 110px; }
  body.raidnew .rggl-row .rggl-lv { justify-self: end; }
  body.raidnew .rggl-pts b { font-size: .96rem; }

  body.raidnew .rgge-row { grid-template-columns: minmax(0, 1fr) auto; gap: 6px 8px; }
  body.raidnew .rgge-b { width: auto; }
  body.raidnew .rgge-row-name { grid-template-columns: minmax(0, 1fr); }
  body.raidnew .rgge-row-name .rgge-b { width: 100%; }
  body.raidnew .rgge-row label { grid-column: 1 / -1; }
  body.raidnew .rgge-note { grid-column: 1 / -1; }
  body.raidnew .rggl-mine-a, body.raidnew .rggl-mine-a .rgbtn { width: 100%; }
}
/* Notification au-dessus du bouton du chat dès que la bulle centrée peut l'atteindre (< 680 px). */
@media (max-width: 720px) {
  body.raidnew .rggd-toast { bottom: 92px; }
}
/* Fenêtre ouverte (fiche d'une pièce du coffre d'équipement : feuille qui monte du bas sous 960 px) :
   la notification passe en haut, comme les notifications communes de ds.css. */
@media (max-width: 960px) {
  body.raidnew:has(.rgd-modal, [aria-modal="true"]) .rggd-toast { top: 14px; bottom: auto; }
}
@media (max-width: 560px) {
  /* Confirmation : deux boutons pleine largeur au pouce, au-dessus de la barre d'accueil de l'iPhone. */
  body.raidnew .rggd-cf-sheet { padding: 20px 18px calc(18px + env(safe-area-inset-bottom, 0px)); }
  body.raidnew .rggd-cf-act .rgbtn { flex: 1 1 0; min-height: 46px; }
  /* « Nom, tag, couleur et devise » sous « Personnaliser ma guilde » : texte courant, 13 px. */
  body.raidnew .rgge > summary small { font-size: .8125rem; }
  body.raidnew .rggd-idrow { gap: 12px; }
  body.raidnew .rggd-idrow .rggl-mono { width: 54px; height: 54px; border-radius: 16px; font-size: 1.4rem; }
  body.raidnew .rggd-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; box-sizing: border-box; }
  body.raidnew .rggd-tabs .rgtab { justify-content: center; padding: 0 6px; min-height: 42px; font-size: .8rem; gap: 5px; }
  body.raidnew .rggd-tabs[data-n="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.raidnew .rggd-tabs .rgtab .rggd-tc { display: none; }
  body.raidnew .rggd-card { padding: 14px; }
  body.raidnew .rggd-m { grid-template-columns: 26px 40px minmax(0, 1fr); grid-template-areas: "rank av id" "stats stats stats" "act act act"; padding: 10px; }
  body.raidnew .rggd-mav, body.raidnew .rggd-mav img { width: 40px; height: 40px; }
  body.raidnew .rggd-mstats { flex-wrap: wrap; }
  body.raidnew .rggd-ma { justify-content: flex-end; }
  body.raidnew .rggd-ma:empty { display: none; }
  body.raidnew .rggd-ma button { width: 44px; height: 40px; }
  body.raidnew .rggd-form.is-item { grid-template-columns: minmax(0, 1fr) 72px; }
  body.raidnew .rggd-form.is-item select { grid-column: 1 / -1; }
  body.raidnew .rggd-form.is-item .rgbtn { grid-column: 1 / -1; width: 100%; }
  body.raidnew .rggd-form .rgbtn { min-height: 42px; }
  body.raidnew .rggd-bulk .rgbtn { flex: 1 1 auto; }
  body.raidnew .rgv-tools { grid-template-columns: 1fr; }
  body.raidnew .rgv-grid, body.raidnew .rgshop-grid { grid-template-columns: 1fr; }
  body.raidnew .rgshop-recip { grid-template-columns: 1fr; gap: 6px; }
  body.raidnew .rggd-acts .rgbtn { width: 100%; }
  body.raidnew .rgmg-how { grid-template-columns: 1fr; }
  body.raidnew .rggd-items { grid-template-columns: 1fr 1fr; }
  /* Boosts : une carte par boost (nom + palier sur une ligne, effet dessous) au lieu de pastilles écrasées. */
  body.raidnew .rggd-boosts-wrap { flex-direction: column; }
  body.raidnew .rgb-chip { display: flex; flex-wrap: wrap; gap: 3px 8px; border-radius: 12px; padding: 8px 11px; }
  body.raidnew .rgb-chip .rgb-t, body.raidnew .rgb-chip .rgb-lv { margin-left: auto; }
  body.raidnew .rgb-chip .rgb-ef { order: 5; flex: 1 1 100%; padding-left: 26px; font-size: .78rem; }
  /* Planchers de lecture (charte §4.5) : micro-étiquettes en capitales, tags et pastilles à 12 px. */
  body.raidnew .rggl-mine-tx .rggl-mine-k, body.raidnew .rgge-preview .rgge-pv-k { font-size: .75rem; letter-spacing: .1em; }
  body.raidnew .rggl-pod-stats span, body.raidnew .rggl-pts small { font-size: .75rem; letter-spacing: .06em; }
  body.raidnew .rggl-n .rggl-tagc, body.raidnew .rggl-you { font-size: .75rem; }
  body.raidnew .rggd-sech .rggd-tc { font-size: .75rem; }
  body.raidnew .rggd-boosts-h { font-size: .75rem; letter-spacing: .1em; }
  body.raidnew .rggd-bank-k, body.raidnew .rgshop-badge { font-size: .75rem; }
}
@media (max-width: 380px) {
  body.raidnew .rggd-items { grid-template-columns: 1fr; }
}

/* ── 16. Mouvement réduit ──────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  body.raidnew .rggd-panel { animation: none; }
  body.raidnew .rggl-pod, body.raidnew .rggd-toast, body.raidnew .rggd-lvbar > i { transition: none; }
}
