/* =====================================================================
   FILE D'AFFICHAGE DES POPUPS — zones réservées (js/popup-queue.js)
   ---------------------------------------------------------------------
   Audit : AUDIT-POPUPS-2026-10-19.md. Ce fichier ne pose QUE la mise en
   place des zones non bloquantes ; l'ordre d'affichage est dans le JS.
     · #pq-quests : UN SEUL encart de quêtes à gauche (Oogway + contrats
       de fin de partie empilés, plus jamais l'un sur l'autre) ;
     · #sound-prompt.sp-mini : l'ancienne bannière « Activer le son ? »
       devient une petite icône sous le bouton son ;
     · body.pq-spawn : pendant la séquence de spawn (grâce,
       carte d'accueil), l'encart de quêtes s'efface.
   ===================================================================== */

/* ---------- encart unique de quêtes (colonne de gauche) ---------- */
#pq-quests {
  position: fixed; left: 12px; top: calc(50% - 150px); z-index: 30;
  display: flex; flex-direction: column; gap: 6px;
  max-width: 230px; pointer-events: none;
  transition: opacity .35s ease;
}
/* les deux panneaux se posaient chacun en position:fixed à gauche : dans l'encart ils s'empilent */
#pq-quests > #oog-hud,
#pq-quests > #eg-hud {
  position: static !important; transform: none !important;
  left: auto !important; right: auto !important; top: auto !important; bottom: auto !important;
  max-width: none !important;
}
/* discret : un peu plus compact que les panneaux d'origine */
#pq-quests .oog-box { padding: 5px 8px; }
#pq-quests .oog-box:not(.oog-hot) { opacity: .88; }
@media (max-width: 720px) {
  #pq-quests { top: auto; bottom: 230px; max-width: 190px; font-size: 11px; }
}
@media (max-height: 500px) { /* téléphone couché : sous le classement, loin de la mini-carte */
  #pq-quests { left: auto; right: 12px; top: 132px; bottom: auto; max-width: 190px; }
}
body.pq-spawn #pq-quests { opacity: 0; }

/* DOCK DES BOOSTS sous l'encart de quêtes (2026-10-23, « la boîte quête chevauche le dock de boosts ») : les deux vivent
   dans la colonne de gauche ; le dock démarre juste SOUS l'encart (hauteur publiée en --pq-h par js/popup-queue.js,
   0 si l'encart est masqué) au lieu d'être centré verticalement. Tactile portrait : même principe, au-dessus de l'encart. */
html body:not(.vtouch) #boost-dock { top: calc(50% - 150px + var(--pq-h, 0px)); transform: none; }
@media (max-width: 720px) {
  html body.vtouch #boost-dock { bottom: calc(230px + var(--pq-h, 0px)); }
}
@media (max-height: 500px) { /* téléphone couché : l'encart est à droite, le dock garde sa place habituelle */
  html body.vtouch #boost-dock { bottom: 120px; }
}

/* ---------- invite « son » : petite icône ---------- */
html body #sound-prompt.sp-mini {
  left: calc(12px + env(safe-area-inset-left)); top: calc(58px + env(safe-area-inset-top));
  transform: none; max-width: none;
  animation: pqSoundIn .3s ease both;
}
html body #sound-prompt.sp-mini .sp-inner {
  padding: 0 !important; gap: 0 !important;
  background: none !important; border: 0 !important; box-shadow: none !important;
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
}
html body #sound-prompt.sp-mini .sp-text,
html body #sound-prompt.sp-mini button.sp-close { display: none !important; }
html body #sound-prompt.sp-mini button.sp-cta {
  padding: 0 !important; margin: 0 !important; width: auto !important; min-width: 0 !important;
  background: none !important; border: 0 !important; box-shadow: none !important;
}
html body #sound-prompt.sp-mini .sp-ic {
  position: relative; width: 36px; height: 36px;
  border: 2px solid rgba(29, 42, 58, .85);
}
/* pastille « ? » : le son est coupé, un tap le rallume */
html body #sound-prompt.sp-mini .sp-ic::after {
  content: '?'; position: absolute; right: -5px; top: -5px;
  width: 15px; height: 15px; border-radius: 50%;
  background: #ff6a3d; color: #fff; font: 800 10px/15px system-ui, sans-serif; text-align: center;
  box-shadow: 0 0 0 2px #fff;
}
@keyframes pqSoundIn { from { opacity: 0; transform: scale(.6); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { html body #sound-prompt.sp-mini { animation: none; } }

/* ---------- carte d'accueil (1re partie) en portrait mobile ----------
   Ancrée left:50% + translateX(-50%), la carte n'avait que la MOITIÉ de l'écran pour se dimensionner
   (195 px sur un téléphone de 390 px) : texte tassé sur 10 lignes. Elle prend toute la largeur utile. */
@media (max-width: 720px) {
  #ob-welcome { left: 16px !important; right: 16px; transform: none !important; max-width: none !important; animation: none !important; }
}
/* l'astuce « joue en paysage » (6,5 s après l'entrée) attend que le centre se libère */
body.pq-modal #rotate-hint { visibility: hidden; }

/* demandes GPS reçues : affichées quand la file leur donne le centre (js/popup-queue.js, _watchGps) */
body:not(.pq-gps) #gps-toasts { display: none !important; }

/* =====================================================================================
   FAMILLE UNIQUE DE NOTIFICATIONS (2026-10-21, « trop de styles de popup différents, mal intégrés »).
   Tout ce qui s'affiche en cours de partie sans demander de choix — pancarte canvas (GAME.drawEventFlash),
   cartes d'événement + journal [J], fil, toast de quête, bandeaux boss / concert, radio du Gardien,
   demandes GPS — partage la MÊME carte : fond marine, trait d'encre, barre d'accent à gauche, texte
   clair (contraste > 12:1, accents ≥ 7:1 sur marine), police arcade. Les cartes crème restent réservées
   aux fenêtres de choix (boutique, coffre, écran de mort).
   ===================================================================================== */
html body.ui-arcade {
  --pn-bg: rgba(9, 22, 36, .94);
  --pn-ink: #1a3d55;
  --pn-text: #f4f8fb;
  --pn-dim: #aacde1;
  --pn-info: #5cc8ff; --pn-gain: #ffe36b; --pn-warn: #ff8a80; --pn-ok: #8fe98a;
}
html body.ui-arcade #hud #boss-banner,
html body.ui-arcade #hud #heli-notice,
html body.ui-arcade #hud #gardien-radio,
html body.ui-arcade #quest-toast,
html body.ui-arcade #gps-toasts .gps-toast {
  background: var(--pn-bg) !important; background-image: none !important; color: var(--pn-text) !important;
  border: 2px solid var(--pn-ink) !important; border-left: 5px solid var(--pn-info) !important; border-radius: 14px !important;
  box-shadow: 0 4px 0 rgba(0, 0, 0, .35), 0 8px 18px rgba(0, 0, 0, .3) !important;
  text-shadow: none !important; font-weight: 800 !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
}
html body.ui-arcade #hud #gardien-radio { border-left-color: var(--pn-warn) !important; }
html body.ui-arcade #hud #gardien-radio .grtitle { color: var(--pn-warn) !important; }
html body.ui-arcade #hud #heli-notice { border-left-color: var(--pn-gain) !important; }
html body.ui-arcade #quest-toast { border-left-color: var(--pn-ok) !important; }
html body.ui-arcade #quest-toast .qt-title { color: var(--pn-ok) !important; font-weight: 900 !important; text-shadow: none !important; }
html body.ui-arcade #quest-toast .qt-label { color: var(--pn-text) !important; font-weight: 800 !important; text-shadow: none !important; }
html body.ui-arcade #quest-toast .qt-xp {
  background: var(--pn-gain) !important; color: #3b2a00 !important; border: 2px solid #3b2a00 !important;
  border-radius: 999px !important; box-shadow: none !important; text-shadow: none !important; font-weight: 900 !important;
}
html body.ui-arcade #gps-toasts .gps-toast * { color: var(--pn-text) !important; text-shadow: none !important; }
/* fil : pastilles marines un peu plus opaques (texte blanc lisible sur la mer claire) */
html body.ui-arcade #hud #killfeed .feed-msg { background: rgba(9, 22, 36, .88) !important; }
/* cartes d'événement : même barre d'accent que le reste de la famille */
html body.ui-arcade .event-card, html body.ui-arcade .event-journal {
  border-left: 5px solid var(--pn-gain) !important; border-radius: 14px !important;
}
html body.ui-arcade .event-card .ev-gain { color: var(--pn-gain) !important; }
@media (prefers-reduced-motion: reduce) { html body.ui-arcade #quest-toast, html body.ui-arcade #hud #gardien-radio { animation: none !important; transition: opacity .2s linear !important; } }

/* =====================================================================================
   2e PASSE (2026-10-21) — TOUT le reste passe dans la MÊME famille.
   Deux gabarits, un seul système (jetons --pn-*) :
     · NOTIFICATION (non bloquante, barre d'accent à GAUCHE) : bulle du tuto, carte d'accueil, texte du
       spotlight, bulle réglages mobile, astuces (paysage, sticks), encarts de quêtes, mission éclair,
       boussole, toast de capture ;
     · FENÊTRE (demande une réponse ou célèbre, bandeau d'accent EN HAUT) : coffre, cadeau,
       « Grand Large débloqué », bateau à la dérive, totem, annonce admin. Même fond, même trait d'encre,
       mêmes rayons / ombres / typographie / boutons — seul le liseré d'accent change de côté.
   Règles communes : fond marine, texte clair (≥ 12:1), accents ≥ 7:1 sur marine, police arcade,
   UNE animation d'entrée (pnIn / pnPop) coupée par prefers-reduced-motion.
   ===================================================================================== */
html body.ui-arcade {
  --pn-font: var(--ar-font, system-ui, sans-serif);
  --pn-r: 14px; --pn-r-lg: 18px;
  --pn-shadow: 0 4px 0 rgba(0, 0, 0, .35), 0 8px 18px rgba(0, 0, 0, .3);
  --pn-shadow-lg: 0 6px 0 rgba(0, 0, 0, .35), 0 16px 36px rgba(0, 0, 0, .4);
  --pn-btn-bg: #ffe36b; --pn-btn-ink: #3b2a00;
}
@keyframes pnIn { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
@keyframes pnInC { from { opacity: 0; transform: translate(-50%, -8px); } to { opacity: 1; transform: translate(-50%, 0); } }
@keyframes pnPop { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: none; } }

/* ---------- NOTIFICATIONS (barre d'accent à gauche) ---------- */
html body.ui-arcade #onboard-tip,
html body.ui-arcade #ob-welcome,
html body.ui-arcade #ob-spot-text,
html body.ui-arcade #mob-settings-coach,
html body.ui-arcade #rotate-hint,
html body.ui-arcade #tc-hint,
html body.ui-arcade #guide-pointer,
html body.ui-arcade #flash-mission,
html body.ui-arcade #dov-cap-toast,
html body.ui-arcade #pq-quests .oog-box,
html body.ui-arcade #pq-quests #eg-hud > div {
  background: var(--pn-bg) !important; background-image: none !important; color: var(--pn-text) !important;
  border: 2px solid var(--pn-ink) !important; border-left: 5px solid var(--pn-info) !important; border-radius: var(--pn-r) !important;
  box-shadow: var(--pn-shadow) !important; text-shadow: none !important; font-family: var(--pn-font) !important;
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
}
html body.ui-arcade #onboard-tip *, html body.ui-arcade #ob-welcome *, html body.ui-arcade #mob-settings-coach *,
html body.ui-arcade #rotate-hint *, html body.ui-arcade #guide-pointer *, html body.ui-arcade #flash-mission * { font-family: var(--pn-font) !important; text-shadow: none !important; }
/* la guirlande dorée et la flèche du coach étaient propres à ces modules */
html body.ui-arcade #onboard-tip::before, html body.ui-arcade #mob-settings-coach::before, html body.ui-arcade #flash-mission.fm-urgent::before { display: none !important; }
/* accents : un rôle = une couleur (info bleu, gain jaune, ok vert, danger rouge) */
html body.ui-arcade #ob-welcome { border-left-color: var(--pn-gain) !important; }
html body.ui-arcade #mob-settings-coach { border-left-color: var(--pn-gain) !important; }
html body.ui-arcade #flash-mission { border-left-color: var(--pn-gain) !important; }
html body.ui-arcade #flash-mission.fm-urgent { border-left-color: var(--pn-warn) !important; }
html body.ui-arcade #pq-quests .oog-box { border-left-color: var(--pn-ok) !important; }
html body.ui-arcade #pq-quests .oog-box.oog-hot { border-left-color: var(--pn-gain) !important; box-shadow: var(--pn-shadow) !important; }
html body.ui-arcade #pq-quests .oog-box .oog-t { color: var(--pn-ok) !important; font-weight: 900 !important; }
html body.ui-arcade #pq-quests .oog-box .oog-arrow { color: var(--pn-ok) !important; }
html body.ui-arcade #pq-quests .oog-box:not(.oog-hot) { opacity: 1; }
html body.ui-arcade #ob-welcome .obw-h { color: var(--pn-gain) !important; font-weight: 900 !important; }
html body.ui-arcade #ob-welcome .obw-k { color: var(--pn-ok) !important; }
html body.ui-arcade #ob-welcome .obw-v { background: rgba(255, 255, 255, .08) !important; }
html body.ui-arcade #onboard-tip .ob-text, html body.ui-arcade #mob-settings-coach .msc-text,
html body.ui-arcade #guide-pointer .gp-label { color: var(--pn-text) !important; font-weight: 700 !important; }
html body.ui-arcade #onboard-tip .ob-emblem { background: var(--pn-gain) !important; color: var(--pn-btn-ink) !important; box-shadow: none !important; }
html body.ui-arcade #onboard-tip .ob-step { background: transparent !important; color: var(--pn-info) !important; box-shadow: none !important; padding: 0 !important; font-weight: 900 !important; }
html body.ui-arcade #flash-mission .fm-count { color: var(--pn-info) !important; }
html body.ui-arcade #flash-mission .fm-reward { color: var(--pn-ok) !important; }
html body.ui-arcade #flash-mission .fm-time { color: var(--pn-gain) !important; }
html body.ui-arcade #rotate-hint, html body.ui-arcade #tc-hint { color: var(--pn-text) !important; font-weight: 700 !important; }
html body.ui-arcade #tc-hint { padding: 5px 12px !important; border-radius: var(--pn-r) !important; }
html body.ui-arcade #guide-pointer .gp-arrowwrap { background: rgba(255, 255, 255, .1) !important; color: var(--pn-info) !important; }
html body.ui-arcade #guide-pointer.act .gp-arrowwrap { background: rgba(255, 227, 107, .18) !important; color: var(--pn-gain) !important; }
html body.ui-arcade #ob-spot-text { font-weight: 800 !important; }
/* boutons des notifications (tuto, accueil, coach) : même bouton jaune que les fenêtres */
html body.ui-arcade #onboard-tip .ob-ok, html body.ui-arcade #ob-welcome .obw-ok, html body.ui-arcade #mob-settings-coach .msc-ok,
html body.ui-arcade #map2-grad-cta, html body.ui-arcade #gift-card button, html body.ui-arcade #derelict-offer .do-accept,
html body.ui-arcade #totem-prompt .totem-accept {
  background: var(--pn-btn-bg) !important; background-image: none !important; color: var(--pn-btn-ink) !important;
  border: 2px solid var(--pn-btn-ink) !important; border-radius: 10px !important; box-shadow: 0 3px 0 rgba(0, 0, 0, .4) !important;
  font-family: var(--pn-font) !important; font-weight: 900 !important; text-shadow: none !important; -webkit-text-stroke: 0 !important;
  letter-spacing: .02em !important; text-transform: none !important; cursor: pointer;
}
html body.ui-arcade #onboard-tip .ob-ok:active, html body.ui-arcade #ob-welcome .obw-ok:active, html body.ui-arcade #mob-settings-coach .msc-ok:active,
html body.ui-arcade #map2-grad-cta:active, html body.ui-arcade #gift-card button:active, html body.ui-arcade #derelict-offer .do-accept:active,
html body.ui-arcade #totem-prompt .totem-accept:active { transform: translateY(2px) !important; box-shadow: 0 1px 0 rgba(0, 0, 0, .4) !important; }
html body.ui-arcade #ob-welcome .obw-off, html body.ui-arcade #derelict-offer .do-refuse, html body.ui-arcade #totem-prompt .totem-decline {
  background: transparent !important; background-image: none !important; color: var(--pn-text) !important;
  border: 2px solid var(--pn-dim) !important; border-radius: 10px !important; box-shadow: none !important;
  font-family: var(--pn-font) !important; font-weight: 800 !important; text-shadow: none !important; -webkit-text-stroke: 0 !important;
  letter-spacing: .02em !important; text-transform: none !important;
}
/* focus visible commun (WCAG 2.4.7) */
html body.ui-arcade :is(#onboard-tip, #ob-welcome, #mob-settings-coach, #gift-card, #derelict-offer, #totem-prompt, #map2-grad-toast, #chest-reward, #rotate-hint) :is(button, [tabindex]):focus-visible {
  outline: 3px solid var(--pn-info) !important; outline-offset: 2px !important;
}
/* animation d'entrée unique */
html body.ui-arcade #onboard-tip, html body.ui-arcade #flash-mission.fm-in, html body.ui-arcade #pq-quests .oog-box,
html body.ui-arcade #mob-settings-coach.coach-show { animation: pnIn .25s ease-out both !important; }
html body.ui-arcade #ob-welcome { animation: pnInC .25s ease-out both !important; }

/* ---------- FENÊTRES (bandeau d'accent en haut) ---------- */
html body.ui-arcade #chest-reward .chest-reward-card,
html body.ui-arcade #gift-card,
html body.ui-arcade #map2-grad-toast,
html body.ui-arcade #derelict-offer .do-box,
html body.ui-arcade #totem-prompt #totem-prompt-box,
html body.ui-arcade #big-announce .ba-card {
  background: var(--pn-bg) !important; background-image: none !important; color: var(--pn-text) !important;
  border: 2px solid var(--pn-ink) !important; border-top: 6px solid var(--pn-gain) !important; border-radius: var(--pn-r-lg) !important;
  box-shadow: var(--pn-shadow-lg) !important; text-shadow: none !important; font-family: var(--pn-font) !important;
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
}
html body.ui-arcade #chest-reward *, html body.ui-arcade #gift-card *, html body.ui-arcade #map2-grad-toast *,
html body.ui-arcade #derelict-offer *, html body.ui-arcade #totem-prompt *, html body.ui-arcade #big-announce * { font-family: var(--pn-font) !important; }
html body.ui-arcade #derelict-offer .do-box { border-top-color: var(--pn-ok) !important; }
html body.ui-arcade #totem-prompt #totem-prompt-box { border-top-color: var(--pn-warn) !important; border-radius: var(--pn-r-lg) !important; }
html body.ui-arcade #big-announce .ba-card { border-top-color: var(--pn-info) !important; }
/* titres / intitulés : jaune « gain » ; texte courant : clair ; secondaire : dim */
html body.ui-arcade #derelict-offer .do-note, html body.ui-arcade #derelict-offer .do-desc { color: var(--pn-dim) !important; }
html body.ui-arcade #chest-reward .chest-reward-head, html body.ui-arcade #gift-card h2, html body.ui-arcade #totem-prompt h2,
html body.ui-arcade #derelict-offer .do-title { color: var(--pn-gain) !important; -webkit-text-fill-color: currentColor !important; font-weight: 900 !important; text-shadow: none !important; }
html body.ui-arcade #derelict-offer .do-kicker { color: var(--pn-ok) !important; }
html body.ui-arcade #derelict-offer .do-chip { background: rgba(255, 255, 255, .08) !important; border: 1px solid var(--pn-ink) !important; color: var(--pn-text) !important; }
html body.ui-arcade #derelict-offer .do-chip b { color: var(--pn-info) !important; }
html body.ui-arcade #derelict-offer .do-ship { border: 2px solid var(--pn-ink) !important; background: rgba(255, 255, 255, .06) !important; box-shadow: none !important; }
html body.ui-arcade #chest-reward .chest-reward-list li, html body.ui-arcade #gift-card li {
  background: rgba(255, 255, 255, .08) !important; color: var(--pn-text) !important; border: 2px solid var(--pn-ink) !important; border-radius: 10px !important; font-weight: 800 !important;
}
html body.ui-arcade #gift-card p, html body.ui-arcade #totem-prompt .totem-sub, html body.ui-arcade #totem-prompt .totem-count { color: var(--pn-text) !important; opacity: 1 !important; font-weight: 700 !important; }
html body.ui-arcade #totem-prompt .totem-sub b, html body.ui-arcade #totem-prompt #totem-prompt-cd { color: var(--pn-gain) !important; }
html body.ui-arcade #map2-grad-toast > div:first-child { color: var(--pn-info) !important; }
html body.ui-arcade #map2-grad-toast > div:nth-child(2) { color: var(--pn-gain) !important; }
html body.ui-arcade #map2-grad-toast > div:nth-child(3) { color: var(--pn-dim) !important; }
html body.ui-arcade #big-announce .ba-card > div:first-child { color: var(--pn-info) !important; }
html body.ui-arcade #big-announce .ba-card > div:last-child { color: var(--pn-text) !important; text-shadow: none !important; }
/* pictogrammes décoratifs : une seule taille */
html body.ui-arcade #gift-card > div:first-child, html body.ui-arcade #totem-prompt .totem-ico { font-size: 34px !important; line-height: 1 !important; margin: 0 0 6px !important; }
/* voiles : un seul voile marine léger pour toutes les fenêtres */
html body.ui-arcade #derelict-offer, html body.ui-arcade #totem-prompt { background: rgba(9, 22, 36, .5) !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
/* entrée unique */
html body.ui-arcade #derelict-offer .do-box, html body.ui-arcade #totem-prompt #totem-prompt-box { animation: pnPop .22s ease-out both !important; }
html body.ui-arcade #gift-card { animation: none !important; }
html body.ui-arcade #big-announce .ba-card { animation: pnPop .25s ease-out both !important; }
/* zone : le toast « Grand Large » rejoint la colonne haut-centre des autres annonces */
html body.ui-arcade #map2-grad-toast { top: 64px !important; }
@media (prefers-reduced-motion: reduce) {
  html body.ui-arcade #onboard-tip, html body.ui-arcade #flash-mission, html body.ui-arcade #pq-quests .oog-box, html body.ui-arcade #mob-settings-coach,
  html body.ui-arcade #ob-welcome, html body.ui-arcade #derelict-offer .do-box, html body.ui-arcade #totem-prompt #totem-prompt-box,
  html body.ui-arcade #chest-reward .chest-reward-card, html body.ui-arcade #big-announce .ba-card,
  html body.ui-arcade #rotate-hint .rotate-icon { animation: none !important; }
}

/* ---------- bandeau confidentialité (bas, 1re visite) : même carte, pleine largeur ---------- */
html body.ui-arcade #privacy-notice {
  background: var(--pn-bg) !important; background-image: none !important; color: var(--pn-text) !important;
  border: 0 !important; border-top: 5px solid var(--pn-info) !important; box-shadow: 0 -4px 0 rgba(0, 0, 0, .25), 0 -8px 18px rgba(0, 0, 0, .3) !important;
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important; font-family: var(--pn-font) !important;
}
html body.ui-arcade #privacy-notice .pn-text, html body.ui-arcade #privacy-notice .pn-text span, html body.ui-arcade #privacy-notice p { color: var(--pn-text) !important; font-weight: 700 !important; }
html body.ui-arcade #privacy-notice .pn-text b { color: var(--pn-gain) !important; }
html body.ui-arcade #privacy-notice .pn-ic { color: var(--pn-info) !important; }
html body.ui-arcade #privacy-notice .pn-btn--primary {
  background: var(--pn-btn-bg) !important; color: var(--pn-btn-ink) !important; border: 2px solid var(--pn-btn-ink) !important;
  border-radius: 10px !important; box-shadow: 0 3px 0 rgba(0, 0, 0, .4) !important; font-weight: 900 !important;
}
html body.ui-arcade #privacy-notice .pn-btn--ghost {
  background: transparent !important; color: var(--pn-text) !important; border: 2px solid var(--pn-dim) !important;
  border-radius: 10px !important; box-shadow: none !important; font-weight: 800 !important;
}
html body.ui-arcade #privacy-notice .pn-btn:focus-visible { outline: 3px solid var(--pn-info) !important; outline-offset: 2px !important; }
/* une seule pastille au centre-bas : l'astuce attend la fin du toast de capture */
body:has(#dov-cap-toast.show) #rotate-hint { visibility: hidden; }

/* ---- anti-chevauchement géométrique (POPQ.layout, 2026-10-21) : une notification qui ne tient pas sous l'atelier
   de level-up ATTEND sa fermeture (invisible, intacte) — jamais superposée. */
.pq-wait { visibility: hidden !important; pointer-events: none !important; }

/* ---- CARTE D'ÉVÉNEMENT lisible d'un coup d'œil (2026-10-21) : titre gros, GAIN en avant, DANGER rouge + icône,
   détails secondaires plus petits, contrastes AA sur le marbre crème. Haut de l'écran : ne masque pas les navires. */
html body.ui-arcade .event-card.event-card { width: min(300px, calc(100vw - 32px)) !important; padding: 9px 12px 7px !important; }
html body.ui-arcade .event-card.event-card .ev-title { font-size: 19px !important; line-height: 1.15 !important; margin-bottom: 6px !important; font-weight: 900 !important; gap: 8px !important; }
html body.ui-arcade .event-card.event-card .ev-ic { font-size: 26px !important; }
html body.ui-arcade .event-card.event-card .ev-rows { gap: 3px 9px !important; }
html body.ui-arcade .event-card.event-card dt { font-size: 9.5px !important; letter-spacing: .08em !important; }
html body.ui-arcade .event-card.event-card dd { font-size: 12px !important; }
html body.ui-arcade .event-card.event-card .ev-gain { font-size: 14.5px !important; font-weight: 900 !important; color: #6b4300 !important; background: rgba(232, 180, 67, .28); border-radius: 6px; padding: 1px 6px; }
html body.ui-arcade .event-card.event-card .ev-danger { color: #8f1d12 !important; font-weight: 800 !important; }
html body.ui-arcade .event-card.event-card .ev-danger::before { content: "⚠ "; }
html body.ui-arcade .event-card.event-card .ev-foot { font-size: 9.5px !important; margin-top: 3px !important; }
html body.ui-arcade .event-card.event-card { transition: opacity .6s ease, transform .6s ease !important; }

/* ---- bandeau de grade/nom (« MATELOT », #xpbar-name) RETIRÉ du HUD (2026-10-21, Simon) : on garde la barre d'XP,
   son texte et le bouton [R]. L'élément reste dans le DOM (js/ui.js l'alimente encore, sans effet visible). */
html body #hud #xpbar-name, html body #xpbar-name { display: none !important; }
