/* Arcmarch, calendrier d'événements : le ruban unique de la Cité, la caravane et l'écran Événements (contrat docs/design/CALENDRIER_EVENEMENTS.md).
   Réécrit le 18 octobre 2026 (lot 3, critique d'Astra : « un empilement de panneaux administratifs »). Règles de la feuille :
   · UN cadre par information (jamais carte + bordure + badge + ombre) : une carte blanche à filet fin ; le liseré d'or épais n'appartient qu'à ce qui se PREND ; le rouge à l'ennemi ; l'azur au seul bouton principal ;
   · la police condensée italique sert aux titres courts, aux chiffres héros et aux boutons ; les explications, les statuts et les données sont en Barlow droite ;
   · un état terminé tient sur UNE ligne (le détail se déplie) ; les gains sont une ligne d'icônes et de montants, jamais une pastille encadrée par montant ;
   · cibles de 44 points, zones sûres. Aucun filter ni backdrop-filter sur #canvas. Jetons : tokens.css et invasion.css (--inv-*).
   Les médias s'adaptent APRÈS la règle de base qu'ils adaptent (une requête de média n'ajoute aucune spécificité). Le résultat d'un raid vit dans invasion.css. */

/* ---------- le ruban unique et la caravane, sous la barre haute ---------- */
.ev-pile { position:absolute; left:calc(10px + var(--safe-l)); right:calc(10px + var(--safe-r)); top:calc(var(--safe-t) + 8px + var(--inv-bar-h) + 2px); z-index:2;
  display:flex; flex-direction:column; align-items:stretch; gap:6px; pointer-events:none; }
.ev-pile > * { pointer-events:auto; }
.ev-ruban { position:relative; overflow:hidden; overflow:clip; display:flex; align-items:center; gap:8px; width:100%; min-height:46px; box-sizing:border-box; padding:4px 8px 7px 6px; border-radius:12px; text-align:left;
  background:linear-gradient(100deg, #FFF3C4 0%, #FFFBEA 46%, var(--inv-chip) 100%); color:var(--inv-encre); border:1.5px solid #E8B64C; box-shadow:0 3px 0 #C99626, 0 6px 14px rgba(8,20,48,.28); transition:transform var(--t-appui) var(--courbe); }
.ev-ruban[hidden], .ev-caravane[hidden] { display:none; }
.ev-ruban:active { transform:translateY(2px); box-shadow:0 1px 0 #C99626, 0 3px 8px rgba(8,20,48,.28); }
.ev-ruban:focus-visible, .ev-caravane:focus-visible { outline:3px solid var(--azur); outline-offset:2px; }
/* ce qui attend : un liseré d'or plein, le bouton d'or « Prendre » à droite (le rouge est à l'ennemi, jamais à un gain) */
.ev-ruban.attend { border-color:#F2C14E; }
.ev-ruban-ico { flex:none; width:32px; height:32px; display:grid; place-items:center; border-radius:10px; color:#5A3A06;
  background:linear-gradient(#FFEFB5, #F2C14E 60%, #E0A92E); border:1.5px solid #B8821C; box-shadow:inset 0 1.5px 0 rgba(255,255,255,.8), 0 2px 0 #A87A1E; }
.ev-ruban-ico .picon { width:20px; color:#5A3A06; }
.ev-ruban-ico .rival-brique { width:20px; height:15px; }
.ev-ruban.ico-saison .ev-ruban-ico { background:none; border:0; box-shadow:none; }
.ev-ruban-ico .ev-art.ruban-emb { width:32px; height:32px; }
.ev-ruban-txt { flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.ev-ruban-txt b { font:italic 900 18px/1 var(--f-titre); letter-spacing:.015em; color:var(--inv-encre); overflow-wrap:anywhere; }
.ev-ruban-txt small { font:700 12.5px/1.1 var(--f-texte); color:#6B4A08; overflow-wrap:anywhere; }
.ev-ruban-badge { flex:none; display:inline-flex; align-items:center; justify-content:center; min-width:56px; height:34px; padding:0 12px; box-sizing:border-box; border-radius:11px; color:var(--inv-encre); white-space:nowrap;
  background:linear-gradient(#FFF0B0, #FFD24E 55%, #F0A91E); border:2px solid #B8821C; box-shadow:0 2px 0 #94670F, inset 0 1.5px 0 rgba(255,255,255,.85); }
.ev-ruban-badge[hidden] { display:none; }
.ev-ruban-badge b { font:italic 900 17px/1 var(--f-titre); letter-spacing:.02em; white-space:nowrap; }
.ev-chevron { flex:none; width:9px; height:9px; margin:0 6px 0 2px; border-top:2.5px solid var(--inv-encre-2); border-right:2.5px solid var(--inv-encre-2); transform:rotate(45deg); }
.ev-ruban.avec-badge .ev-chevron { display:none; }
.ev-ruban-ico, .ev-ruban-txt, .ev-ruban-badge, .ev-chevron { position:relative; z-index:1; }
/* la saison du mois : une fine barre au pied du ruban (sa légende est sur l'écran Événements et dans l'étiquette d'accessibilité), jamais du texte sur la barre */
.ev-ruban-barre { position:absolute; left:0; right:0; bottom:0; height:4px; background:rgba(90,58,6,.22); pointer-events:none; z-index:2; }
.ev-ruban-barre[hidden] { display:none; }
.ev-ruban-barre > i { display:block; height:100%; border-radius:0 3px 3px 0; background:linear-gradient(90deg, #F6C84A, #D98E1C); transition:width 500ms var(--courbe); }
.ev-ruban-barre > em { display:none; }
/* un reflet lent traverse le ruban qui attend (jamais sous mouvement réduit) */
.ev-ruban::after { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(100deg, rgba(255,255,255,0), rgba(255,255,255,.7), rgba(255,255,255,0)) -150% 0 / 36% 100% no-repeat; }
/* la caravane : une pastille d'or de 44 points, à droite sous le ruban, tant qu'une caravane est ouverte */
.ev-caravane { align-self:flex-end; display:flex; align-items:center; gap:5px; height:46px; padding:0 9px 0 6px; box-sizing:border-box; border-radius:23px; color:var(--inv-encre);
  background:linear-gradient(#FFF1C2, #F6D37E); border:2px solid #FFF8E1; box-shadow:0 3px 0 #94670F, 0 6px 12px rgba(8,20,48,.28); transition:transform var(--t-appui) var(--courbe); }
.ev-caravane:active { transform:translateY(2px); box-shadow:0 1px 0 #94670F, 0 3px 6px rgba(8,20,48,.28); }
.ev-car-art { display:block; flex:none; width:30px; height:30px; }
.ev-car-art svg { display:block; width:100%; height:100%; }
.ev-car-txt { display:flex; flex-direction:column; gap:1px; text-align:left; }
.ev-car-txt b { font:italic 900 17px/1 var(--f-titre); color:var(--inv-encre); }
.ev-car-txt small { display:block; font:800 12px/1 var(--f-texte); color:#6B4A08; white-space:nowrap; }
/* la Cité se tait sous le journal des attaques ; une alerte d'état (sauvegarde, partie ouverte ailleurs) REMPLACE le ruban au lieu de le recouvrir */
.screen.home:has(> #inv-journal:not([hidden])) .ev-pile { visibility:hidden; }
#stage:has(> #save-warning:not([hidden])) .ev-pile { display:none; }

/* ---------- l'écran Événements : feuille ivoire, cartes blanches à filet fin ---------- */
.screen.panel.evenements-screen { padding:0 0 var(--nav-h); background:radial-gradient(120% 60% at 50% -10%, #FFFDF5 0%, var(--inv-ivoire) 55%, #EFE5C9 100%); color:var(--inv-encre); }
/* la barre basse s'y montre (écran de liste comme Missions, Boutique et la ligue) et ne plonge pas pendant la sortie de la Cité */
#stage:has(> .screen.panel.evenements-screen[data-screen="evenements"]:not([hidden])) > #nav-rail { display:flex; animation:none; }
.ev-tete { flex:none; position:relative; z-index:2; display:flex; align-items:center; gap:6px; padding:calc(var(--safe-t) + 8px) calc(10px + var(--safe-r)) 8px calc(10px + var(--safe-l)); }
.ev-retour { width:48px; height:60px; border-radius:12px; background:var(--inv-ivoire); color:var(--inv-encre); box-shadow:var(--inv-ombre); border:1.5px solid var(--inv-bord); }
.ev-retour .picon { width:24px; color:var(--inv-encre); }
.ev-retour:active { transform:translateY(2px); background:var(--inv-ivoire-2); }
.ev-retour:focus-visible { outline:3px solid var(--azur); outline-offset:2px; }
.ev-plaque { position:relative; flex:1; min-width:0; display:flex; align-items:center; gap:10px; min-height:60px; box-sizing:border-box; padding:4px 12px 4px 8px; border-radius:12px; background:var(--inv-ivoire); border:2px solid #E8B64C; box-shadow:0 3px 0 #C99626, 0 6px 14px rgba(8,20,48,.22); }
.ev-sceau { flex:none; width:44px; height:44px; display:grid; place-items:center; border-radius:12px; background:linear-gradient(#FFE9A8, #F2C14E); border:1.5px solid #C99626; box-shadow:inset 0 1.5px 0 rgba(255,255,255,.7); }
.ev-sceau .picon { width:26px; color:#5A3A06; }
.ev-titres { flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
.ev-nom { margin:0; font:italic 900 27px/1 var(--f-titre); letter-spacing:.01em; color:var(--inv-encre); }
.ev-sous { margin:0; font:700 13px/1.15 var(--f-texte); color:var(--inv-encre-2); }
.ev-liste { flex:1; min-height:0; margin:0; padding:2px 10px 16px; overflow:auto; display:flex; flex-direction:column; gap:8px; -webkit-overflow-scrolling:touch; overscroll-behavior:contain; }
/* les trois groupes de l'écran */
.ev-groupe { margin:8px 2px -2px; font:italic 900 15px/1 var(--f-titre); letter-spacing:.06em; text-transform:uppercase; color:#8A5A12; }
.ev-groupe:first-child { margin-top:2px; }
.ev-carte { flex:none; display:flex; flex-direction:column; gap:8px; padding:10px 12px 12px; border-radius:16px; background:#fff; border:1.5px solid var(--inv-bord); }
/* ce qui se PREND : le liseré d'or épais, le halo d'un cran ; le reste reste calme */
.ev-carte.dispo { border:2px solid #E8B64C; box-shadow:0 0 0 3px rgba(242,193,78,.28); background:linear-gradient(#FFF6D6 0, #fff 76px); }
.ev-c-tete { display:flex; align-items:center; gap:10px; min-width:0; }
.ev-tuile { flex:none; width:44px; height:44px; display:grid; place-items:center; border-radius:12px; color:var(--inv-encre-2); background:var(--inv-ivoire-2); border:1.5px solid var(--inv-bord); }
.ev-tuile.or { color:#5A3A06; background:linear-gradient(#FFE9A8, #F2C14E); border-color:#C99626; box-shadow:inset 0 1.5px 0 rgba(255,255,255,.7); }
.ev-tuile .picon { width:26px; color:inherit; }
.ev-tuile .rival-brique { width:26px; height:20px; }
.ev-c-titres { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.ev-kicker { margin:0; font:700 12.5px/1.15 var(--f-texte); color:#8A5A12; }
.ev-kicker b { font-weight:800; color:var(--inv-encre); }
.ev-c-titre { margin:0; font:italic 900 24px/1.02 var(--f-titre); letter-spacing:.01em; color:var(--inv-encre); overflow-wrap:anywhere; }
.ev-c-titre.petit { font-size:19px; }
.ev-note { margin:0; font:600 13px/1.3 var(--f-texte); color:var(--inv-encre-2); overflow-wrap:anywhere; }
.ev-note b { font-weight:800; color:var(--inv-encre); }
.ev-saveur { margin:0; font:600 13.5px/1.3 var(--f-texte); color:var(--inv-encre); overflow-wrap:anywhere; }
.ev-compte { flex:none; display:flex; flex-direction:column; align-items:center; gap:2px; padding:3px 9px 4px; border-radius:12px; background:var(--inv-ivoire-2); border:1.5px solid var(--inv-bord); color:var(--inv-encre); }
.ev-compte .ev-cn { display:flex; align-items:baseline; gap:1px; font:italic 900 24px/1 var(--f-titre); }
.ev-compte small { font:italic 900 14px/1 var(--f-titre); color:var(--inv-encre-2); }
.ev-compte > i { font:700 11.5px/1 var(--f-texte); font-style:normal; letter-spacing:.02em; color:var(--inv-encre-2); }
.ev-art { display:block; flex:none; width:44px; height:44px; }
.ev-art svg { display:block; width:100%; height:100%; overflow:visible; }
.ev-art.portrait { width:60px; height:60px; }
.ev-art.portrait.petit { width:52px; height:52px; }
.ev-art.fete { width:60px; height:60px; }
.ev-art.fete.mini { width:36px; height:36px; }
.ev-art.saison-emb { width:44px; height:44px; }
.ev-art.saison-emb.petit { width:40px; height:40px; }
.ev-art.caravane { width:44px; height:44px; }
.ev-art.caravane.petit, .ev-art.coffre.petit { width:36px; height:36px; }
.ev-art.medaille { width:72px; height:72px; }
.ev-art.medaille-prix { width:44px; height:44px; }
.ev-art.medaille-mini { width:28px; height:28px; }
.ev-art.serie-coffre { width:30px; height:30px; margin:-3px 0; }

/* le bouton d'or de tout ce qui se prend : « Prendre », 44 points, compact (UN seul verbe, une seule forme) */
.ev-prendre { flex:none; display:inline-flex; align-items:center; justify-content:center; gap:6px; min-width:96px; min-height:46px; padding:0 14px 1px; box-sizing:border-box; border-radius:13px; color:#4A2F04; font:inherit;
  background:linear-gradient(#FFF0B0, #FFD24E 55%, #F0A91E); border:2px solid #B8821C; box-shadow:0 3px 0 #94670F, inset 0 1.5px 0 rgba(255,255,255,.85); }
.ev-prendre .picon { width:20px; color:#4A2F04; }
.ev-prendre b { font:italic 900 19px/1 var(--f-titre); letter-spacing:.02em; }
.ev-prendre:active { transform:translateY(2px); box-shadow:0 1px 0 #94670F, inset 0 1.5px 0 rgba(255,255,255,.85); }
.ev-prendre:focus-visible, .ev-defier:focus-visible, .ev-raider:focus-visible, .ev-plier:focus-visible, .sa-tout:focus-visible { outline:3px solid var(--azur); outline-offset:2px; }
.ev-prendre:disabled { opacity:.55; box-shadow:none; }
/* un second bouton « Prendre » dans la même carte (une des quatre lignes du défi) : plus étroit, le doré plein reste à la ligne la plus haute */
.ev-prendre.petit { min-width:84px; min-height:44px; padding:0 10px 1px; background:#FFF8E1; border-color:#B8821C; box-shadow:0 2px 0 #C99626; }
.ev-prendre.petit:active { box-shadow:none; }
.ev-prendre.petit b { font-size:17px; }

/* ---------- les gains : une ligne d'icônes et de montants, jamais un cadre par montant ---------- */
.ev-gl { display:flex; flex-wrap:wrap; align-items:center; gap:2px 12px; min-width:0; }
.ev-g { display:inline-flex; align-items:center; gap:4px; color:var(--inv-encre); }
.ev-g .picon { width:20px; color:#B8821C; }
.ev-g .picon.pi-or, .ev-g .picon.pi-cristaux { color:inherit; border-radius:50%; }
.ev-g .picon.pi-cristaux { border-radius:0; }
.ev-g .rival-brique { width:20px; height:15px; }
.ev-g b { font:italic 900 20px/1 var(--f-titre); }
.ev-g small { font:700 12.5px/1 var(--f-texte); color:var(--inv-encre-2); }
.ev-gl.mini .ev-g .picon { width:17px; }
.ev-gl.mini .ev-g .rival-brique { width:17px; height:13px; }
.ev-gl.mini .ev-g b { font-size:16px; }
.ev-gl.mini .ev-g small { font-size:11.5px; }
.ev-gl.mini { gap:2px 9px; }
.ev-gl.avenir .ev-g { opacity:.92; }
.ev-gl.gros { justify-content:center; gap:4px 18px; }
.ev-gl.gros .ev-g { gap:6px; }
.ev-gl.gros .ev-g .picon { width:34px; }
.ev-gl.gros .ev-g .rival-brique { width:34px; height:26px; }
.ev-gl.gros .ev-g b { font-size:34px; }
.ev-gl.gros .ev-g small { font-size:14px; }
.ev-gl.recu .ev-g { animation:evPop 420ms var(--courbe) both; }
@keyframes evPop { 0% { transform:scale(.7); opacity:0; } 60% { transform:scale(1.08); opacity:1; } 100% { transform:scale(1); opacity:1; } }
.ev-hero { display:flex; flex-direction:column; align-items:center; gap:3px; padding:2px 0; }
.ev-hero-t { font:700 12px/1 var(--f-texte); color:#8A5A12; }
.ev-hero.recu { padding:6px 0; border-radius:12px; background:linear-gradient(#FFF6D6, #FFEFC0); }

/* ---------- le cadeau du jour ---------- */
.ev-serie { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); gap:4px; }
.ev-serie li { position:relative; min-width:0; height:62px; box-sizing:border-box; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; border-radius:10px;
  background:var(--inv-ivoire-2); border:1px solid var(--inv-bord); color:var(--inv-encre-2); }
.ev-s-n { font:italic 900 15px/1 var(--f-titre); }
.ev-s-ico { display:grid; place-items:center; height:24px; }
.ev-s-ico .picon { width:22px; color:#B8821C; border-radius:50%; }
.ev-s-l { display:inline-flex; align-items:center; gap:1px; font:800 12px/1 var(--f-texte); color:var(--inv-encre-2); white-space:nowrap; }
.ev-s-x { display:inline-grid; place-items:center; }
.ev-s-x .picon { width:11px; color:#B8821C; }
.ev-s-x .picon.pi-cristaux { color:inherit; }
.ev-s-x .rival-brique { width:11px; height:8px; }
.ev-serie li.grand .ev-s-l { color:#8A5A12; }
.ev-serie li.fait { background:#FFF3CC; border-color:#E8C878; color:#5A3A06; }
.ev-serie li.courant { background:linear-gradient(#FFFDF2, #FFE9A8); border:2px solid #E8B64C; color:var(--inv-encre); transform:translateY(-1px); }
.ev-serie li.courant .ev-s-l { color:var(--inv-encre); }
.ev-serie li.avenir { opacity:.85; }
.ev-s-coche { position:absolute; right:2px; top:2px; width:15px !important; height:15px; padding:3px; box-sizing:border-box; border-radius:50%; background:#2E6B22; color:#fff !important; }
.ev-reclamer { position:relative; overflow:hidden; overflow:clip; width:100%; min-width:0; min-height:56px; margin:0; padding:0 10px; }
.menu-command.primary.ev-reclamer { box-shadow:var(--tranche-azur), inset 0 2px 0 rgba(230,251,255,.98); }
.menu-command.primary.ev-reclamer:active { box-shadow:var(--tranche-azur-appui), inset 0 2px 0 rgba(230,251,255,.98); }
.ev-reclamer .picon { width:28px; }
.ev-reclamer .command-copy { min-width:0; max-width:100%; }
.ev-reclamer .command-copy strong { font-size:32px; }
/* le cadeau pris : une ligne ; les sept jours se déplient */
.ev-cadeau.pris { gap:6px; padding:8px 12px 8px; background:#fff; }
.ev-pris-ligne { display:flex; align-items:center; gap:10px; min-width:0; }
.ev-coche { flex:none; width:30px !important; height:30px; padding:6px; box-sizing:border-box; border-radius:50%; background:#2E6B22; color:#fff !important; }
.ev-coche.pi-temps { background:var(--inv-ivoire-2); color:#8A5A12 !important; }
.ev-pris-ligne .ev-sous { font-size:12.5px; color:var(--inv-encre-2); }
.ev-plier { flex:none; display:inline-flex; align-items:center; gap:6px; min-height:44px; padding:0 4px 0 8px; margin:0; border:0; background:none; font:700 13px/1.1 var(--f-texte); color:var(--inv-encre-2); }
.ev-plier span { white-space:nowrap; }
.ev-carte > .ev-plier { align-self:flex-start; min-height:44px; margin:-4px 0 -6px; padding-left:0; }
.ev-chevron-b { flex:none; width:10px; height:10px; margin:-4px 4px 0 2px; border-right:2.5px solid var(--inv-encre-2); border-bottom:2.5px solid var(--inv-encre-2); transform:rotate(45deg); }
.ev-chevron-b.haut { margin-top:4px; transform:rotate(-135deg); }
.ev-detail { display:flex; flex-direction:column; gap:8px; padding-top:2px; }

/* ---------- la faveur du jour ---------- */
.ev-jour { gap:2px; }
.ev-jour .ev-c-tete { margin-bottom:4px; }
.ev-effets { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.ev-effet { display:flex; align-items:center; gap:10px; min-height:46px; padding:4px 0; border-top:1px solid #EFE6CC; }
.ev-e-ico { flex:none; width:28px; display:grid; place-items:center; }
.ev-e-ico .picon { width:24px; color:#B8821C; }
.ev-e-ico .picon.pi-or, .ev-e-ico .picon.pi-cristaux { color:inherit; }
.ev-e-ico .rival-brique { width:24px; height:18px; }
.ev-e-txt { flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.ev-e-txt b { font:800 15px/1.1 var(--f-texte); color:var(--inv-encre); }
.ev-e-txt small { font:600 12.5px/1.2 var(--f-texte); color:var(--inv-encre-2); overflow-wrap:anywhere; }
.ev-e-val { flex:none; font:italic 900 24px/1 var(--f-titre); color:#7A4E0A; white-space:nowrap; text-align:right; }

/* ---------- le défi de la semaine : une grille constante (coffre, consigne, compteur), les terminés en une ligne ---------- */
.ev-objs { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.ev-obj { position:relative; display:grid; grid-template-columns:40px minmax(0, 1fr) auto; column-gap:9px; align-items:center; padding:7px 8px; border-radius:12px; background:var(--inv-ivoire); border:1px solid var(--inv-bord); color:var(--inv-encre); }
.ev-obj-art { align-self:start; display:block; width:40px; height:40px; }
.ev-obj-art .ev-art { width:40px; height:40px; }
.ev-obj-corps { display:flex; flex-direction:column; gap:4px; min-width:0; }
.ev-obj-texte { font:800 15px/1.15 var(--f-texte); color:var(--inv-encre); overflow-wrap:anywhere; }
.ev-obj-cond { font:600 12.5px/1.2 var(--f-texte); color:var(--inv-encre-2); }
.ev-obj-gain { display:flex; flex-wrap:wrap; align-items:center; gap:2px 10px; }
.ev-rang { font:800 11.5px/1 var(--f-texte); letter-spacing:.03em; color:#8A5A12; }
.ev-rang::first-letter { text-transform:uppercase; }
.ev-obj-gain.large { grid-column:1 / -1; justify-content:center; padding-top:4px; border-top:1px solid #EAD9A2; }
.ev-jauge { display:block; position:relative; height:8px; border-radius:5px; background:#E4D9B8; box-shadow:inset 0 1px 2px rgba(60,40,0,.2); overflow:hidden; overflow:clip; }
.ev-jauge > i { position:absolute; left:0; top:0; bottom:0; border-radius:5px; background:linear-gradient(#FFE9A8, #F2B83A 60%, #D99A1C); transition:width 500ms var(--courbe); }
.ev-obj-d { align-self:stretch; display:flex; flex-direction:column; align-items:flex-end; justify-content:space-between; gap:3px; min-width:52px; }
.ev-obj-n { font:italic 900 24px/1 var(--f-titre); color:var(--inv-encre); }
.ev-obj-n small { font:italic 900 14px/1 var(--f-titre); color:var(--inv-encre-2); }
.ev-obj-d > u { text-decoration:none; font:700 11.5px/1 var(--f-texte); color:var(--inv-encre-2); }
.ev-raider { display:inline-flex; align-items:center; justify-content:center; gap:5px; min-width:84px; min-height:44px; margin-top:2px; padding:0 10px; box-sizing:border-box; border-radius:12px; color:var(--inv-rouge-sombre); background:#fff; border:2px solid var(--inv-rouge); box-shadow:0 2px 0 #E6A5A9; }
.ev-raider .picon { width:20px; color:var(--inv-rouge); }
.ev-raider b { font:italic 900 17px/1 var(--f-titre); letter-spacing:.02em; }
.ev-raider:active { transform:translateY(2px); box-shadow:none; }
.ev-obj.atteint { background:#FFFBEA; border:1.5px solid #E8B64C; }
/* un objectif terminé : une ligne, le texte éteint, « Terminé » à droite */
.ev-obj.pris { padding:3px 8px; min-height:44px; grid-template-columns:30px minmax(0, 1fr) auto; background:transparent; border-color:transparent; }
.ev-obj.pris .ev-obj-art, .ev-obj.pris .ev-obj-art .ev-art { width:30px; height:30px; align-self:center; opacity:.6; }
.ev-obj.pris .ev-obj-texte { font-weight:700; color:var(--inv-encre-2); }
.ev-obj-fin { display:inline-flex; align-items:center; gap:4px; color:#2E6B22; }
.ev-obj-fin .picon { width:18px; color:#2E6B22; }
.ev-obj-fin small { font:800 12px/1 var(--f-texte); }
/* le grand coffre de la semaine : la conclusion du défi, un fond d'or soutenu et le plus grand coffre */
.ev-obj.grand { grid-template-columns:48px minmax(0, 1fr) auto; margin-top:2px; background:linear-gradient(#FFF1BF, #FFE08A); border:2px solid #E8B64C; }
.ev-obj.grand .ev-obj-art, .ev-obj.grand .ev-obj-art .ev-art { width:48px; height:48px; }
.ev-obj.grand.cours { background:var(--inv-ivoire-2); border:1.5px dashed #C9A85C; }
.ev-obj.grand.cours .ev-obj-art { opacity:.75; }
.ev-obj.grand.pris { background:transparent; border:0; min-height:44px; grid-template-columns:30px minmax(0, 1fr) auto; }
.ev-obj.grand.pris .ev-obj-art, .ev-obj.grand.pris .ev-obj-art .ev-art { width:30px; height:30px; }
.ev-obj.grand .ev-obj-texte { font-size:16px; }
.ev-prendre.grand { min-width:96px; }

/* ---------- le seigneur de guerre et le raid de fête : un ENNEMI, donc le rouge ---------- */
.ev-seigneur, .ev-fete.en-cours { border:1.5px solid var(--inv-rouge); }
.ev-seigneur { background:linear-gradient(#FFEDEA 0, #fff 92px); }
.ev-seigneur.vaincu { border-color:#5BA63F; background:linear-gradient(#EAF6E3 0, #fff 92px); }
.ev-seigneur .ev-kicker { color:var(--inv-rouge-sombre); }
.ev-seigneur .sei-nom, .ft-rival { font-family:'Grenze Gotisch', var(--f-titre); font-style:normal; font-weight:800; font-size:26px; line-height:1; letter-spacing:0; }
.ev-epithete { margin:0; font:700 13px/1.1 var(--f-texte); color:var(--inv-rouge-sombre); }
.ev-ligne-ennemi { display:flex; flex-wrap:wrap; align-items:center; gap:3px 12px; margin:0; font:700 13px/1.2 var(--f-texte); color:var(--inv-encre); }
.ev-puiss { display:inline-flex; align-items:center; gap:5px; color:var(--inv-rouge-sombre); }
.ev-puiss .picon { width:17px; color:var(--inv-rouge); }
.ev-puiss b { font:italic 900 19px/1 var(--f-titre); color:var(--inv-rouge-sombre); }
.ev-garn { display:inline-flex; align-items:center; gap:5px; color:var(--inv-encre-2); }
.ev-garn .picon { width:17px; color:var(--inv-rouge); }
.ev-statut { display:inline-flex; align-items:center; gap:5px; color:var(--inv-encre-2); }
.ev-statut.dispo { color:#8A4B00; }
.ev-statut.ok { color:#1E4A15; font-weight:800; }
.ev-statut .picon { width:17px; color:#2E6B22; }
.ev-recomp { display:flex; flex-direction:column; gap:4px; min-width:0; }
.ev-recomp-tete { display:flex; align-items:center; gap:10px; min-width:0; }
.ev-recomp-tete > b { font:800 14px/1.15 var(--f-texte); color:var(--inv-encre); }
.ev-recomp .ev-art.coffre, .ev-recomp .ev-art.medaille-prix { width:40px; height:40px; }
.ev-art-med { display:block; flex:none; }
.ev-recomp-t { flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
.ev-recomp-t > b { font:800 14px/1.15 var(--f-texte); color:var(--inv-encre); }
.ev-recomp-l { display:flex; flex-wrap:wrap; align-items:center; gap:3px 8px; margin:0; font:600 12.5px/1.2 var(--f-texte); color:var(--inv-encre-2); }
.ev-recomp-l .ev-gl { margin-left:0; }
.ev-tag { flex:none; min-width:66px; font:800 11.5px/1 var(--f-texte); letter-spacing:.04em; text-transform:uppercase; color:#8A5A12; }
.ev-recomp-l .ev-g .picon { width:17px; }
.ev-recomp-l .ev-g .rival-brique { width:17px; height:13px; }
.ev-recomp-l .ev-g small { font-size:12.5px; color:var(--inv-encre); }
.ev-defier { position:relative; display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:50px; margin:0; padding:0 12px 2px; box-sizing:border-box; border-radius:14px; color:#fff;
  background:linear-gradient(#F0626A, var(--inv-rouge) 55%, var(--inv-rouge-sombre)); border:2px solid #6D0F18; box-shadow:0 3px 0 #6D0F18, inset 0 2px 0 rgba(255,255,255,.4); }
.ev-defier .picon { flex:none; width:26px; color:#FFE08A; }
.ev-defier strong { font:italic 900 25px/1 var(--f-titre); letter-spacing:.02em; text-shadow:0 2px 0 rgba(80,0,8,.5); }
.ev-defier:active { transform:translateY(3px); box-shadow:0 0 0 #6D0F18, inset 0 2px 0 rgba(255,255,255,.4); }
.ev-defier:disabled { color:var(--inv-encre-2); background:var(--inv-ivoire-2); border:1.5px solid var(--inv-bord); box-shadow:none; min-height:46px; }
.ev-defier:disabled .picon { color:var(--inv-encre-2); }
.ev-defier:disabled strong { font-size:20px; color:var(--inv-encre); text-shadow:none; }
.ft-rival-ligne { display:flex; align-items:center; gap:10px; min-width:0; padding-top:8px; border-top:1px solid #F0C9C6; }
.ft-rival-ligne .ev-c-titres { gap:2px; }
.ft-rival { color:var(--inv-encre); overflow-wrap:anywhere; }
.ev-fete.en-cours { background:linear-gradient(#FFF1C9 0, #fff 70px); }
.ev-fete.en-cours.dispo { box-shadow:0 0 0 3px rgba(209,36,46,.14); }
.ev-fete.gagnee { border-color:#5BA63F; background:linear-gradient(#EAF6E3 0, #fff 76px); }
.ft-trophee-ligne { display:flex; align-items:center; gap:10px; margin:0; }
.ft-trophee-ligne > span:last-child { display:flex; flex-direction:column; gap:2px; }
.ft-trophee-ligne b { font:800 14.5px/1.1 var(--f-texte); color:var(--inv-encre); }
.ft-trophee-ligne small { font:600 12.5px/1.2 var(--f-texte); color:var(--inv-encre-2); }
.ft-trophees { list-style:none; margin:0; padding:6px 0 0; display:flex; flex-wrap:wrap; gap:4px 12px; border-top:1px solid #EFE6CC; }
.ft-troph { display:inline-flex; align-items:center; gap:5px; min-height:32px; font:700 12.5px/1.1 var(--f-texte); color:var(--inv-encre-2); }
.ft-troph span { white-space:nowrap; }
.ft-troph.plus { color:var(--inv-encre-2); }

/* ---------- la saison du mois : un bandeau aux couleurs du thème, la progression, la piste ---------- */
.ev-saison { padding:0 0 10px; gap:8px; overflow:hidden; overflow:clip; border:1.5px solid var(--sa-1, #E8B64C); }
.ev-saison > :not(.sa-bandeau):not(.sa-piste):not(.ev-piste) { margin-left:12px; margin-right:12px; }
.ev-saison.dispo { background:#fff; border:2px solid var(--sa-1, #E8B64C); }
.sa-bandeau { position:relative; overflow:hidden; overflow:clip; padding:9px 12px; gap:10px; min-height:70px; box-sizing:border-box; background:linear-gradient(100deg, rgba(0,0,0,.5), rgba(0,0,0,.05) 75%), linear-gradient(100deg, var(--sa-3, #2b2d42), var(--sa-1, #c8452a)); color:#fff; }
.sa-bandeau .ev-kicker { color:#FFF1BF; }
.sa-bandeau .ev-kicker b { color:#fff; }
.sa-bandeau .ev-c-titre { color:#fff; font-size:23px; text-shadow:0 2px 0 rgba(0,0,0,.4); }
.sa-compte { background:rgba(255,255,255,.96); border-color:rgba(0,0,0,.25); }
.sa-filigrane { position:absolute; right:4px; top:50%; width:80px; height:80px; margin-top:-40px; opacity:.16; pointer-events:none; }
.sa-filigrane svg { display:block; width:100%; height:100%; }
.sa-bandeau > :not(.sa-filigrane) { position:relative; }
.sa-prog { display:flex; flex-direction:column; gap:5px; }
.sa-prog-t { display:flex; align-items:baseline; justify-content:space-between; gap:8px; }
.sa-prog-t b { font:italic 900 17px/1 var(--f-titre); color:var(--inv-encre); }
.sa-prog-t small { font:700 13px/1 var(--f-texte); color:var(--inv-encre-2); }
.sa-prog .ev-jauge { height:12px; border-radius:7px; }
.sa-prog .ev-jauge > i { border-radius:7px; }
.sa-tout { display:flex; align-items:center; justify-content:center; gap:10px; width:calc(100% - 24px); min-height:56px; margin:0 12px; padding:0 12px; box-sizing:border-box; border-radius:14px; color:#4A2F04; text-align:left;
  background:linear-gradient(#FFF0B0, #FFD24E 55%, #F0A91E); border:2px solid #B8821C; box-shadow:0 4px 0 #94670F, inset 0 2px 0 rgba(255,255,255,.85); }
.sa-tout .picon { flex:none; width:28px; color:#4A2F04; }
.sa-tout .command-copy { display:flex; flex-direction:column; align-items:flex-start; gap:2px; min-width:0; }
.sa-tout .command-copy strong { font:italic 900 25px/1 var(--f-titre); letter-spacing:.02em; }
.sa-tout .command-copy small { font:800 12.5px/1.15 var(--f-texte); color:#5A3A06; overflow-wrap:anywhere; }
.sa-tout:active { transform:translateY(3px); box-shadow:0 1px 0 #94670F, inset 0 2px 0 rgba(255,255,255,.85); }
.sa-tout:disabled { opacity:.55; box-shadow:none; }
/* la piste : un défilement horizontal de 30 cases de 64 points, qui s'accrochent ; la case suivante dépasse au bord pour dire qu'il y en a d'autres */
.sa-piste { position:relative; list-style:none; margin:0; padding:4px 12px 6px; display:flex; align-items:stretch; gap:6px; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x proximity; scroll-padding:0 12px; -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain; scrollbar-width:none; background:linear-gradient(#FFF8E1, #F6EDD0); border-top:1px solid #EADFC0; border-bottom:1px solid #EADFC0; }
.sa-piste::-webkit-scrollbar { display:none; }
.sa-piste:focus-visible { outline:3px solid var(--azur); outline-offset:-3px; }
.sa-p { flex:none; width:64px; display:flex; scroll-snap-align:start; }
.sa-p.grand { width:80px; }
.sa-case { position:relative; display:flex; flex-direction:column; align-items:center; gap:2px; width:100%; min-height:84px; margin:0; padding:5px 3px 4px; box-sizing:border-box; border-radius:12px; overflow:hidden; overflow:clip; font:inherit; color:var(--inv-encre-2); text-align:center;
  background:var(--inv-ivoire-2); border:1px solid var(--inv-bord); -webkit-appearance:none; appearance:none; }
.sa-n { display:flex; align-items:center; justify-content:center; gap:3px; font:italic 900 19px/1 var(--f-titre); color:var(--inv-encre); }
.sa-n .picon { width:17px; color:#B8821C; }
.sa-gains { display:flex; flex-direction:column; align-items:center; gap:1px; width:100%; }
.sa-g { display:flex; align-items:center; justify-content:center; gap:3px; min-height:17px; }
.sa-g .picon { flex:none; width:14px; color:#B8821C; }
.sa-g .picon.pi-or, .sa-g .picon.pi-cristaux { color:inherit; }
.sa-g .rival-brique { flex:none; width:14px; height:10px; }
.sa-g b { font:italic 900 14px/1 var(--f-titre); color:var(--inv-encre); }
.sa-pied { margin-top:auto; display:grid; place-items:center; min-height:20px; }
.sa-pied .picon { width:17px; color:#9A8A62; }
.sa-pied b { font:italic 900 15px/1 var(--f-titre); letter-spacing:.02em; color:#4A2F04; padding:1px 8px; border-radius:7px; background:linear-gradient(#FFF0B0, #FFD24E); border:1.5px solid #B8821C; }
.sa-p.fait .sa-case { background:#F6F0DC; border-color:#E4D6A8; opacity:.85; }
.sa-p.fait .sa-pied .picon { color:#2E6B22; }
.sa-p.avenir .sa-case { opacity:.85; }
.sa-p.suivant .sa-case { background:#fff; border:2px solid var(--sa-1, #E8B64C); }
.sa-p.dispo .sa-case { cursor:pointer; background:linear-gradient(#FFF6D2, #FFDC7A); border:2px solid #E8B64C; color:var(--inv-encre); transition:transform var(--t-appui) var(--courbe); }
.sa-p.dispo .sa-case:active { transform:translateY(2px); }
.sa-p.dispo .sa-case:focus-visible { outline:3px solid var(--azur); outline-offset:2px; }
.sa-p.grand .sa-case { border-color:var(--sa-1, #C99626); background:linear-gradient(#FFF6D2, #FFE9A8); }
.sa-p.grand.avenir .sa-case, .sa-p.grand.suivant .sa-case { background:linear-gradient(#FFF9E6, #FFF1C4); }
.sa-p.grand .sa-n { font-size:21px; }
.sa-jauge { position:absolute; left:0; right:0; bottom:0; height:5px; background:#E4D9B8; }
.sa-jauge > i { display:block; height:100%; background:linear-gradient(#FFE9A8, #F2B83A 60%, #D99A1C); transition:width 500ms var(--courbe); }
.sa-src { display:flex; justify-content:space-between; gap:8px; font:600 13px/1.3 var(--f-texte); color:var(--inv-encre); }
.sa-sources { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px; }
.sa-src b { font:italic 900 15px/1 var(--f-titre); color:#8A5A12; }
/* la saison gagnée : le trophée est le héros (la médaille du thème), la piste se replie */
.sa-trophee { display:flex; align-items:center; gap:14px; padding:6px 4px; }
.sa-trophee .ev-art.medaille { margin:2px 0; }
.sa-troph-txt { display:flex; flex-direction:column; gap:3px; min-width:0; }
.sa-troph-txt small { font:800 12px/1 var(--f-texte); letter-spacing:.05em; text-transform:uppercase; color:#8A5A12; }
.sa-troph-txt b { font:italic 900 26px/1.02 var(--f-titre); color:var(--inv-encre); overflow-wrap:anywhere; }
.sa-troph-txt > span { font:700 13px/1.2 var(--f-texte); color:var(--inv-encre-2); }
.sa-trophee.neuf { position:relative; }
.sa-avant { display:flex; align-items:center; gap:10px; padding:6px 0 0; border-top:1px solid #EFE6CC; }
.sa-avant > .picon { flex:none; width:22px; color:#B8821C; }
.sa-avant-t { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.sa-avant-t b { font:800 14.5px/1.1 var(--f-texte); color:var(--inv-encre); }
.sa-avant-t small { font:600 12.5px/1.2 var(--f-texte); color:var(--inv-encre-2); overflow-wrap:anywhere; }
.ev-saison .ev-plier { margin-top:-4px; margin-bottom:-2px; }
.ev-pliers { display:flex; flex-wrap:wrap; gap:0 18px; margin-top:-2px; margin-bottom:-4px; }
.ev-pliers .ev-plier { margin:0; padding-left:0; }

/* ---------- les lignes d'action de « À prendre » ---------- */
.ev-act { flex:none; display:flex; align-items:center; gap:10px; min-height:62px; padding:8px 10px; box-sizing:border-box; border-radius:14px; background:#fff; border:2px solid #E8B64C; box-shadow:0 0 0 3px rgba(242,193,78,.2); }
.ev-act.or { background:linear-gradient(#FFF6D6 0, #fff 70px); }
.ev-act-t { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.ev-act-t b { font:800 14.5px/1.15 var(--f-texte); color:var(--inv-encre); overflow-wrap:anywhere; }
.ev-act-t small { font:600 12.5px/1.2 var(--f-texte); color:var(--inv-encre-2); overflow-wrap:anywhere; }
.ev-act .ev-prendre { min-width:92px; }

/* ---------- « À venir » : replié par défaut, une seule carte de lignes quand il s'ouvre ---------- */
.ev-avenir-tete { flex:none; display:flex; align-items:center; gap:10px; width:100%; min-height:62px; padding:8px 12px; box-sizing:border-box; margin:6px 0 0; border:1.5px solid var(--inv-bord); border-radius:16px; background:#fff; color:var(--inv-encre); text-align:left; font:inherit; }
.ev-avenir-tete .ev-c-titres { gap:2px; }
.ev-groupe-t { display:block; font:italic 900 17px/1 var(--f-titre); letter-spacing:.04em; text-transform:uppercase; color:#8A5A12; }
.ev-deplie-aper { display:block; font:600 13px/1.2 var(--f-texte); color:var(--inv-encre-2); }
.ev-avenir-tete:focus-visible { outline:3px solid var(--azur); outline-offset:-3px; }
.ev-avenir { padding:2px 12px; gap:0; }
.ev-avs { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.ev-av { display:flex; align-items:center; gap:10px; min-height:54px; padding:6px 0; border-top:1px solid #EFE6CC; }
.ev-av:first-child { border-top:0; }
.ev-av-ico { flex:none; width:36px; display:grid; place-items:center; }
.ev-av-ico .picon { width:22px; color:#B8821C; }
.ev-av-ico .rival-brique { width:22px; height:17px; }
.ev-av-t { flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.ev-av-t b { font:800 14.5px/1.15 var(--f-texte); color:var(--inv-encre); }
.ev-av-t small { font:600 12.5px/1.25 var(--f-texte); color:var(--inv-encre-2); overflow-wrap:anywhere; }
.ev-av-d { flex:none; max-width:96px; text-align:right; font:700 12.5px/1.2 var(--f-texte); color:#8A5A12; }

/* sur l'écran Événements le toast se pose au-dessus de la barre basse (en haut il masquait « encore N j » du bandeau de saison) */
#stage:has(> .screen.panel.evenements-screen[data-screen="evenements"]:not([hidden])) > #toast { top:auto; bottom:calc(var(--nav-h) + 12px); transform:translateX(-50%) translateY(6px); }
#stage:has(> .screen.panel.evenements-screen[data-screen="evenements"]:not([hidden])) > #toast.on { transform:translateX(-50%); }

/* ---------- écrans étroits et courts (après les règles de base) ---------- */
@media (max-width:359px) {
  .ev-ruban-txt b { font-size:17px; }
  .ev-ruban-badge { padding:0 9px; min-width:50px; }
  .ev-c-titre { font-size:22px; }
  .ev-obj-texte { font-size:14px; }
  .ev-prendre.petit { min-width:76px; }
  .sa-p { width:60px; }
  .sa-p.grand { width:76px; }
  .ev-seigneur .sei-nom, .ft-rival { font-size:24px; }
  .ev-serie { gap:3px; }
}
@media (max-height:700px) {
  .ev-effet { min-height:42px; }
  .ev-serie li { height:56px; }
  .ev-reclamer { min-height:52px; }
  .ev-liste { padding-bottom:12px; }
}
/* de la vie, jamais sous mouvement réduit : le jour courant de la série respire, un reflet traverse le ruban qui attend et les objectifs à prendre */
@media (prefers-reduced-motion: no-preference) {
  .ev-ruban.attend::after { animation:evReflet 4.2s ease-in-out infinite; }
  .ev-serie li.courant { animation:evRespire 1.8s ease-in-out infinite; }
  .ev-obj.grand.atteint, .sa-p.dispo .sa-case { animation:evRespireObj 1.8s ease-in-out infinite; }
  .sa-trophee.neuf .ev-art.medaille { animation:saTropheeEntree 620ms var(--courbe) both, saTropheeHalo 1.4s ease-out 620ms 3; border-radius:50%; }
}
@keyframes evRespire { 0%, 100% { box-shadow:0 0 0 2px rgba(232,182,76,.4); } 50% { box-shadow:0 0 0 6px rgba(232,182,76,.16); } }
@keyframes evRespireObj { 0%, 100% { box-shadow:0 0 0 2px rgba(242,193,78,.35); } 50% { box-shadow:0 0 0 6px rgba(242,193,78,.14); } }
@keyframes evReflet { 0%, 55% { background-position:-150% 0; } 100% { background-position:250% 0; } }
@keyframes saTropheeEntree { 0% { transform:scale(.82); opacity:0; } 55% { transform:scale(1.05); opacity:1; } 100% { transform:scale(1); opacity:1; } }
@keyframes saTropheeHalo { 0% { box-shadow:0 0 0 4px rgba(242,193,78,.55); } 100% { box-shadow:0 0 0 22px rgba(242,193,78,0); } }
@media (prefers-reduced-motion: reduce) { .ev-gl.recu .ev-g { animation:none; } .ev-ruban::after { display:none; } }

/* ---------- ANCIEN résultat d'un raid (le coffre du premier raid, le défi, la saison) : remplacé par la vue du lot 3 dans invasion.css ---------- */
.ev-gains { display:flex; flex-wrap:wrap; justify-content:center; gap:6px; }
.ev-gains:empty { display:none; }
.ev-gain { display:flex; align-items:center; gap:5px; height:30px; padding:0 9px; border-radius:12px; background:var(--inv-ivoire-2); border:1.5px solid var(--inv-bord); color:var(--inv-encre); }
.ev-gain .picon { width:20px; color:#B8821C; border-radius:50%; }
.ev-gain .picon.pi-cristaux { border-radius:0; color:inherit; }
.ev-gain .rival-brique { width:20px; height:15px; }
.ev-gain b { font:italic 900 20px/1 var(--f-titre); }
.ev-gain small { font:700 12px/1 var(--f-texte); color:var(--inv-encre-2); }
.ev-gain.recu { background:#FFF3CC; border-color:#E8B64C; animation:evPop 420ms var(--courbe) both; }
.ev-coffre-res { display:grid; grid-template-columns:auto minmax(0, 1fr) auto; align-items:center; column-gap:10px; row-gap:4px; padding:7px 10px 8px; border-radius:10px; background:rgba(251,247,236,.97); color:var(--inv-encre); border:1.5px solid #E8C878; }
.ev-coffre-res[hidden] { display:none; }
.ev-cr-titres { min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:2px; }
.ev-cr-titres small { font:800 12px/1 var(--f-texte); letter-spacing:.04em; text-transform:uppercase; color:#8A5A12; }
.ev-cr-titres b { font:italic 900 20px/1.05 var(--f-titre); color:var(--inv-encre); overflow-wrap:anywhere; }
.ev-cr-rare { padding:1px 8px; border-radius:8px; font:900 12px/1.3 var(--f-texte); letter-spacing:.04em; text-transform:uppercase; font-style:normal; color:#5A3A06; background:linear-gradient(#FFE9A8, #F2C14E); border:1.5px solid #C99626; }
.ev-cr-rare[hidden] { display:none; }
.ev-cr-note { grid-column:1 / -1; margin:0; text-align:center; font:600 12.5px/1.25 var(--f-texte); color:var(--inv-encre-2); overflow-wrap:anywhere; }
.ev-cr-note[hidden] { display:none; }
.ev-defi-res { display:flex; flex-direction:column; gap:3px; padding:5px 10px 6px; border-radius:10px; background:rgba(251,247,236,.97); color:var(--inv-encre); border:1.5px solid #E8C878; }
.ev-defi-res[hidden] { display:none; }
.ev-defi-res small { font:800 12px/1 var(--f-texte); letter-spacing:.04em; text-transform:uppercase; color:#8A5A12; }
.ev-defi-res ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:3px; }
.ev-defi-res li { display:flex; align-items:center; gap:7px; font:700 14px/1.2 var(--f-texte); }
.ev-defi-res li .picon { flex:none; width:18px; color:#B8821C; }
.ev-defi-res li span.t { flex:1; min-width:0; overflow-wrap:anywhere; }
.ev-defi-res li b { flex:none; font:italic 900 17px/1 var(--f-titre); color:var(--inv-encre); }
.ev-defi-res li.atteint, .ev-defi-res li.atteint .picon, .ev-defi-res li.atteint b { color:#1E4A15; }
.ev-saison-res .sa-res-ligne { display:flex; align-items:center; gap:7px; margin:0; font:700 14px/1.2 var(--f-texte); }
.ev-saison-res .sa-res-ligne .picon { flex:none; width:18px; color:#B8821C; }
.ev-saison-res .sa-res-ligne .t { flex:1; min-width:0; overflow-wrap:anywhere; }
.ev-saison-res .sa-res-ligne b { flex:none; font:italic 900 17px/1 var(--f-titre); color:var(--inv-encre); white-space:nowrap; }
.ev-saison-res .ev-jauge { height:8px; margin-top:2px; }
.ev-saison-res.palier { border-color:#E8B64C; background:linear-gradient(#FFF3C9, rgba(251,247,236,.97)); }
.rival-faveur { display:flex; align-items:center; gap:6px; margin:6px 0 0; font:700 13px/1.2 var(--f-texte); color:#6B4A08; }
.rival-faveur[hidden] { display:none; }
.rival-faveur .picon { flex:none; width:16px; color:#D6A43A; }
@media (max-height:700px) { .rival-faveur { display:none; } }

/* ---------- contre-lecture du lot 3 ---------- */
/* un seul bouton principal par carte : les cases de la piste prises en une touche sont des cases claires à libellé doré, « Tout prendre » reste le bouton plein ; les lignes de « À prendre » en contour */
.sa-p.dispo .sa-case { background:#FFFBEA; border:2px solid #E8B64C; }
.sa-pied b { padding:0; border:0; background:none; border-radius:0; font:italic 900 15px/1 var(--f-titre); color:#8A5A12; text-decoration:underline; text-underline-offset:3px; }
/* « À venir » : une date à droite tient sur une ligne ou sur deux lignes voulues (jour, puis date), jamais coupée */
.ev-av-d { max-width:none; flex:none; display:flex; flex-direction:column; align-items:flex-end; gap:1px; white-space:nowrap; }
.ev-av-d b { font:800 12.5px/1.2 var(--f-texte); color:#8A5A12; }
.ev-av-d small { font:700 12px/1.2 var(--f-texte); color:var(--inv-encre-2); }
.ev-av-t { flex:1 1 0; }
/* la carte de la fête : l'action est sous l'adversaire, le trophée et le coffre dessous */
.ev-fete.en-cours > .ev-defier, .ev-seigneur > .ev-defier { margin-top:2px; }

/* ======================================================================================================================
   TOUR 2 (lot E, 18 octobre 2026) : héros unique, cartes compactes, trophées en scène. Les icônes de récompense (pièce, gemme, pierre, coffre, médailles) seront remplacées par le jeu d'art unifié : elles sont
   posées par `iconeHtml`, `coffreSvg`, `medailleSaisonSvg`, `medailleFeteSvg` et les classes `.ev-art.*` : ce sont les points d'ancrage, rien d'autre ne dessine une icône de récompense ici.
   ====================================================================================================================== */
.ev-ruban-barre { display:none; }
.ev-ruban.ico-saison { border-color:var(--ruban-accent, #E8B64C); }
.ev-ruban-ico .ev-art.ruban-emb { width:34px; height:34px; }
/* le cadeau : un bouton plus bas, la frise sans icône de pierre accolée */
.ev-reclamer { min-height:50px; }
.ev-reclamer .command-copy strong { font-size:28px; }
.ev-serie li { height:56px; }
.ev-jour .ev-effet { min-height:42px; }
/* la piste : tuiles 25 % plus basses, gains plus grands, le prochain palier nommé, jamais un cadre d'or sur ce qui est verrouillé */
.sa-case { min-height:66px; padding:4px 3px 3px; gap:1px; }
.sa-n { font-size:17px; }
.sa-g { min-height:20px; }
.sa-g b { font-size:16px; }
.sa-g .picon { width:16px; }
.sa-g .rival-brique { width:16px; height:12px; }
.sa-pied { min-height:18px; }
.sa-p.suivant .sa-case { background:#fff; border:1.5px dashed #B9A978; }
.sa-proch { font:800 11px/1 var(--f-texte); font-style:normal; letter-spacing:.04em; text-transform:uppercase; color:#8A5A12; }
/* le défi : le cadenas du grand coffre, pas de second compteur */
.ev-cadenas { width:24px; color:#9A8A62; }
.ev-obj.grand.cours .ev-obj-d { justify-content:center; min-width:30px; }
/* « À venir » : la seconde ligne de l'en-tête est une échéance plus lointaine, atténuée */
.ev-deplie-aper.sec { color:#8A7A52; font-size:12.5px; }
/* la saison gagnée : le trophée est le héros, centré, grand, mis en scène (halo) ; le texte dessous */
.sa-trophee { flex-direction:column; align-items:center; gap:6px; padding:10px 4px 6px; text-align:center; background:radial-gradient(60% 70% at 50% 38%, rgba(242,193,78,.34), rgba(242,193,78,0) 70%); }
.sa-trophee .ev-art.medaille { width:96px; height:96px; margin:0; filter:drop-shadow(0 6px 6px rgba(30,20,10,.3)); }
.sa-troph-txt { align-items:center; gap:2px; }
.sa-troph-txt b { font-size:27px; }
.sa-troph-etat { font:800 13px/1.2 var(--f-texte); color:#8A5A12; }
.sa-troph-txt small { font:700 12.5px/1.2 var(--f-texte); color:var(--inv-encre-2); text-transform:none; letter-spacing:0; }
/* la fête gagnée : le trophée de fête en héros, la rosette grande et son halo ; les ressources reçues en une ligne dessous */
.ft-trophee-hero { display:flex; flex-direction:column; align-items:center; gap:3px; padding:8px 4px 4px; text-align:center; background:radial-gradient(60% 75% at 50% 40%, rgba(242,193,78,.34), rgba(242,193,78,0) 70%); }
.ft-trophee-hero .ev-art.medaille-grande { width:88px; height:88px; filter:drop-shadow(0 6px 6px rgba(30,20,10,.3)); }
.ft-trophee-hero b { font:italic 900 25px/1 var(--f-titre); color:var(--inv-encre); }
.ft-trophee-hero small { font:700 12.5px/1.2 var(--f-texte); color:#8A5A12; }
.ev-fete.gagnee .ev-hero.recu { padding:4px 0; }
.ev-fete.gagnee .ev-hero-t { font-size:12px; }
@media (prefers-reduced-motion: no-preference) {
  .ft-trophee-hero.neuf .ev-art.medaille-grande { animation:saTropheeEntree 620ms var(--courbe) both; }
}
