/* Les visuels produits de TCGplayer sont TOUS des JPEG sur fond blanc : aucun
   n'a de canal alpha. Un détourage côté CSS est donc impossible, et une tuile
   sombre fait ressortir un pavé blanc autour de chaque boîte.
   La tuile est donc quasi blanche et l'image fusionne en `multiply` : le blanc
   du JPEG prend la couleur du fond et disparaît, le produit reste intact
   puisque le fond est presque blanc. Vrai pour les 945 références, sans
   retoucher une seule image. */
/* Research desk — charcoal, mint signals, compact editorial hierarchy. */
.research-page{max-width:1280px;margin:0 auto;display:flex;flex-direction:column;gap:24px;color:var(--text-primary)}
.research-page h1,.research-page h2,.research-page h3,.research-page p{margin:0}
.research-page h1{font-size:clamp(26px,3.1vw,46px);line-height:1.13;font-weight:600;letter-spacing:-.045em}
.research-page h2{font-size:21px;line-height:1.25;font-weight:550;letter-spacing:-.025em}
.research-page h3{font-size:15px;line-height:1.4;font-weight:550}
.research-page p{color:var(--text-secondary);font-size:13px;line-height:1.7}
.research-page small,.r-muted{color:var(--text-tertiary);font-size:11px;line-height:1.6}
.research-page a:not(.action-button){color:inherit;text-decoration:none}
.research-page a.quiet-link{color:#83d9bd}
.r-eyebrow{display:block;font-size:10px;letter-spacing:.15em;color:#7abaac;font-weight:600;margin-bottom:12px}
.r-page-heading,.r-board-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0 12px}
.r-page-heading p,.r-board-heading p{margin-top:18px;max-width:570px}
.research-page em{font-style:normal;color:#8cddbf}
.r-status{display:flex;align-items:center;gap:8px;white-space:nowrap;color:var(--text-tertiary);font-size:11px}
.r-status i{width:6px;height:6px;border-radius:50%;background:#8cddbf;box-shadow:0 0 12px #8cddbf44}
.r-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--ui-border);border:1px solid var(--ui-border);border-radius:15px;overflow:hidden}
.r-metric{padding:22px 20px;background:var(--app-surface,var(--app-card));display:flex;flex-direction:column;gap:8px;min-width:0}
.r-metric>span{font-size:11px;color:var(--text-tertiary)}
.r-metric>strong{font-size:clamp(21px,2.2vw,30px);font-weight:550;font-variant-numeric:tabular-nums;letter-spacing:-.04em}
.r-metrics-two{grid-template-columns:repeat(2,minmax(0,1fr))}
.r-panel{border:1px solid var(--ui-border);border-radius:17px;background:var(--app-surface,var(--app-card));padding:25px;min-width:0;display:flex;flex-direction:column;gap:16px}
.r-two-col{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;min-width:0}
.r-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.r-feature{display:flex;justify-content:space-between;align-items:center;gap:32px;padding:36px;border-radius:20px;border:1px solid #5dba9c38;background:radial-gradient(ellipse at 95% 0,#285e4b55,transparent 70%),var(--app-card)}
.r-feature p{max-width:580px;margin:14px 0 24px}
.r-feature-small{padding:28px}.r-feature-small p{margin-bottom:0}
.r-feature-diagram{min-width:230px;display:grid;grid-template-columns:1fr;justify-items:center;gap:16px;padding:24px;border:1px solid #93e5c528;border-radius:18px;color:#b1e7d2;font-size:13px}
.r-feature-diagram b{font-size:32px}.r-feature-diagram small{max-width:190px;text-align:center}
.r-table{width:100%;font-variant-numeric:tabular-nums}.r-table td{vertical-align:middle}.r-table th{white-space:nowrap}
.r-set-link,.r-card-link{display:flex;align-items:center;gap:15px;min-width:180px}.r-set-link .r-logo{width:64px;height:38px;object-fit:contain}
.r-card-link img{width:34px;height:48px;object-fit:contain;border-radius:4px}.r-card-link small{display:block;margin-top:4px}
.r-identity{display:flex;align-items:center;gap:28px;padding:16px 0}.r-identity>.r-logo{width:155px;height:90px;object-fit:contain}.r-identity p{margin-top:10px}.r-identity .r-status{margin-left:auto}
.r-chip{display:inline-flex;border:1px solid var(--ui-border);border-radius:6px;padding:5px 8px;font-size:10px;color:var(--text-tertiary);white-space:nowrap}
.r-tags{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0}.r-tabs{align-self:flex-start;max-width:100%;overflow-x:auto}.r-tabs button{white-space:nowrap}
#rAnalysis{display:flex;flex-direction:column;gap:24px}#rAnalysis[hidden],#rSealed[hidden],#rCards[hidden]{display:none}
.r-meter{height:9px;border-radius:9px;background:#6d8b7e22;overflow:hidden;margin:10px 0}.r-meter i{display:block;height:100%;background:linear-gradient(90deg,#548dff,#83d9bd);border-radius:9px}
.r-chart-empty{min-height:215px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;text-align:center;padding:20px}.r-chart-empty strong{font-size:14px;font-weight:500}.r-orbit{font-size:46px;color:#75b89b66}
.r-loading{min-height:300px;display:flex;align-items:center;justify-content:center;gap:12px;color:var(--text-tertiary);font-size:14px}.r-pulse{width:7px;height:7px;background:#83d9bd;border-radius:50%;animation:r-pulse 1.5s infinite}@keyframes r-pulse{50%{opacity:.25}}
.r-provenance{border-top:1px solid var(--ui-border);padding-top:16px;font-size:12px;color:var(--text-tertiary)}.r-provenance summary{cursor:pointer;padding-bottom:12px}.r-provenance p{font-size:12px;margin-bottom:10px}
.r-products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.r-product{display:flex;flex-direction:column;background:var(--app-card);border:1px solid var(--ui-border);border-radius:17px;overflow:hidden;transition:transform .2s,border-color .2s;color:var(--text-primary);text-decoration:none;min-width:0}
.r-product:hover{transform:translateY(-4px);border-color:#7acaaa77}.r-product:focus-visible{outline:2px solid #83d9bd;outline-offset:4px}
.r-product-art{height:210px;position:relative;background:radial-gradient(ellipse 88% 84% at 50% 45%,#f4f7f8 0,#eff3f5 58%,#e1e8eb 76%,#aeb6bc 89%,var(--app-card,#27272a) 100%);isolation:isolate;display:flex;justify-content:center;align-items:center;padding:36px 24px 24px}
.r-product-art img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;transition:transform .25s}.r-product:hover img{transform:scale(1.04)}
.r-product-kind,.r-product-lang{position:absolute;top:12px;left:12px;font-size:9px;letter-spacing:.08em;border-radius:5px;padding:4px 6px;background:#203c30cf;color:#e0eee7;z-index:1}.r-product-lang{left:auto;right:12px;background:#ffffffe0;color:#244436;border:1px solid #24443626}
.r-product-copy{padding:18px;display:flex;flex-direction:column;flex:1;gap:9px}.r-product-copy>small{font-size:10px;letter-spacing:.02em}.r-product-copy h3{min-height:42px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.r-product-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin:9px 0 2px}.r-product-price strong{font-size:24px;letter-spacing:-.04em;font-weight:550}.r-product-price span{font-size:9px;color:var(--text-tertiary)}
.r-product-unit{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:var(--text-tertiary)}.r-product-unit b{font-weight:500;color:var(--text-secondary)}
.r-product-cta{border-top:1px solid var(--ui-border);padding-top:14px;margin-top:9px;display:flex;justify-content:space-between;font-size:11px;color:#8cddbf}
.r-board-count{display:flex;flex-direction:column;align-items:flex-end;color:var(--text-tertiary);font-size:11px}.r-board-count strong{font-size:64px;color:#8cddbf;font-weight:400;letter-spacing:-.06em}
.r-board-tools{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.r-board-tools label{display:flex;align-items:center;gap:10px;font-size:11px}.r-board-tools select{width:auto;min-width:180px}
.r-product-hero,.r-card-hero{display:grid;grid-template-columns:.85fr 1.3fr;gap:44px;align-items:center}.r-hero-art{height:360px;padding:35px;border-radius:20px;isolation:isolate;/* Le JPG TCGplayer a un fond blanc pur : en multiply il prend la couleur de la tuile. Une tuile uniformément claire rend donc un rectangle blanc posé sur une page noire. En laissant le dégradé rejoindre le fond de page, les coins du JPG se multiplient vers le noir et la tuile se dissout — le produit reste sur le plateau clair, la boîte blanche disparaît. */background:radial-gradient(ellipse 86% 82% at 50% 46%,#f4f7f8 0,#eff3f5 56%,#e3e9ec 74%,#aab2b8 88%,var(--app-bg,#0f0f11) 100%)}.r-hero-art img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.r-hero-price{font-size:42px;letter-spacing:-.05em;font-weight:550;margin:24px 0}.r-hero-price small{display:block;letter-spacing:0;font-weight:400;margin-top:7px}.r-product-hero .quiet-link{display:inline-block;margin-top:18px}
.r-opening{padding:30px;border:1px solid #80c7a94d;border-radius:20px;background:radial-gradient(ellipse at 100% 100%,#1d43314a,transparent),var(--app-card);display:flex;flex-direction:column;gap:22px}
.r-input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;align-content:start}.r-input-grid label{font-size:11px;color:var(--text-secondary);display:flex;flex-direction:column;gap:8px}.r-input-grid small{grid-column:1/-1}
.research-page input,.r-ev-row input{width:100%;min-width:0;background:var(--app-surface-elevated,#202725);border:1px solid var(--ui-border);border-radius:8px;color:var(--text-primary);padding:11px;font:inherit;font-size:13px}.research-page input:focus{outline:1px solid #83d9bd}
.r-verdict{height:100%;display:flex;flex-direction:column;gap:16px;background:#699e8720;border:1px solid #80c7a936;border-radius:15px;padding:26px}.r-verdict>strong{font-size:36px;letter-spacing:-.04em;font-weight:500}.r-verdict.r-favorable>strong{color:#89dfb4}.r-verdict.r-unfavorable>strong{color:#f1b095}.r-unfavorable{background:#ac5d4020;border-color:#a36a4c44}.r-verdict-row{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--ui-border);padding-top:12px;font-size:11px}.r-verdict-row b{white-space:nowrap}
.r-format-list a{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--ui-border);padding:15px 0;font-size:12px}.r-format-list strong{white-space:nowrap;font-size:15px}.r-format-list small{display:block;text-align:right;font-weight:400}
.r-ev-row{display:grid;grid-template-columns:1.5fr 1fr 1fr 30px;gap:8px;margin:10px 0}.r-ev-row button{border:0;background:transparent;color:var(--text-secondary)}
.r-card-hero{grid-template-columns:.7fr 1.3fr}.r-card-art{text-align:center;padding:24px;background:radial-gradient(ellipse,#537c5940,transparent 70%);border-radius:20px}.r-card-art img{max-height:430px;max-width:100%;border-radius:13px;box-shadow:0 24px 45px #0005}
.r-facts{display:grid;grid-template-columns:1fr 1fr;gap:16px;font-size:12px}.r-facts dt{color:var(--text-tertiary)}.r-facts dd{margin:0;text-align:right;overflow-wrap:anywhere}
.r-up{color:#83d9b1}.r-down{color:#edaa90}.r-grade-result{padding:16px;background:#729e8620;border-radius:10px;font-size:13px}
@media(max-width:1050px){.r-products{grid-template-columns:repeat(3,minmax(0,1fr))}.r-two-col{grid-template-columns:1fr}.r-metric{padding:17px 14px}.r-product-hero{gap:24px}}
@media(max-width:700px){.research-page{gap:18px}.r-products{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.r-product-art{height:160px;padding:30px 15px 18px}.r-product-copy{padding:13px}.r-product-price strong{font-size:21px}.r-product-unit{flex-direction:column}.r-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.r-feature{padding:24px;flex-direction:column;align-items:flex-start}.r-feature-diagram{display:none}.r-page-heading,.r-board-heading{align-items:flex-start;flex-direction:column}.r-board-count{display:none}.r-identity{gap:16px;flex-wrap:wrap}.r-identity>.r-logo{width:100px;height:65px}.r-identity .r-status{display:none}.r-panel{padding:19px}.r-product-hero,.r-card-hero{grid-template-columns:1fr;gap:24px}.r-hero-art{height:270px}.r-card-art img{max-height:310px}.r-opening{padding:19px}.r-board-tools .seg{max-width:100%;overflow-x:auto}.r-board-tools .seg button{white-space:nowrap}.r-ev-row{grid-template-columns:1fr 1fr 1fr 24px}.r-hero-price{font-size:35px}.r-tabs{width:100%}}

/* ── Bloc « prime au scellé » (ev-view.js) ── */
.ev-block{gap:22px}
.ev-headline .ev-premium{display:block;font-size:clamp(44px,6vw,68px);font-weight:550;letter-spacing:-.05em;line-height:1;margin-bottom:10px}
.ev-lede{font-size:14px;max-width:520px;margin-bottom:16px}
.ev-scale{display:flex;justify-content:space-between;gap:12px;font-size:10px;color:var(--text-tertiary);margin-top:-4px}
.ev-rank{font-size:12px;color:var(--text-secondary);margin-top:12px}
.ev-badges{display:flex;flex-wrap:wrap;gap:7px;align-self:flex-start}
.r-chip-warn{border-color:#a3814c66;color:#e8c08d}
.ev-lower{align-items:stretch}
.ev-implied{gap:12px}.ev-implied p{font-size:13px}.ev-implied small{font-size:11px;color:var(--text-tertiary)}
.ev-implied .r-provenance{border-top:1px solid var(--ui-border);padding-top:14px}
.ev-adjust summary{font-weight:500;color:var(--text-secondary)}
@media(max-width:720px){.r-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.ev-scale{font-size:9px}}

/* ── Vignette de définition : remplace les menus dépliants ── */
.kt-term{position:relative;border-bottom:1px dotted var(--text-tertiary);cursor:help;outline:none}
.kt-term-pop{position:absolute;left:0;bottom:calc(100% + 9px);z-index:40;width:max-content;max-width:280px;
  display:block;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .13s,transform .13s,visibility .13s;
  background:var(--app-surface-elevated,#202725);border:1px solid var(--ui-border);border-radius:11px;
  padding:11px 13px;font-size:12px;line-height:1.45;color:var(--text-secondary);
  box-shadow:0 14px 34px #0007;pointer-events:none;white-space:normal}
.kt-term-pop b{display:block;color:var(--text-primary);font-weight:550;margin-bottom:4px;font-size:12px}
.kt-term:hover .kt-term-pop,.kt-term:focus-visible .kt-term-pop{opacity:1;visibility:visible;transform:translateY(0)}
@media(max-width:700px){.kt-term-pop{max-width:min(280px,72vw)}}

/* ── « La carte qui te sauve » ── */
.ev-rescue{gap:11px}
.ev-rescue h2{font-size:19px;font-weight:600;letter-spacing:-.03em}
.ev-rescue p{font-size:12.5px;line-height:1.55;color:var(--text-tertiary)}
.ev-rescue p b{color:var(--text-secondary);font-weight:550}
.ev-rescue-ok h2{color:#89dfb4}
/* Les cartes du sauvetage : vignette, identité, prix. Une grille à trois
   colonnes plutôt qu'un flex, pour que les prix s'alignent quels que soient
   les noms. La vignette reste petite — elle sert à reconnaître la carte d'un
   coup d'œil, pas à l'admirer ; la fiche carte est là pour ça. */
.ev-rescue-names{list-style:none;display:flex;flex-direction:column;gap:7px;margin:4px 0 6px;padding:0}
.ev-rescue-names li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;
  gap:11px;padding:5px 7px;border-radius:10px;background:rgba(255,255,255,.028)}
.ev-thumb{width:34px;height:47px;object-fit:cover;object-position:top center;border-radius:4px;
  background:rgba(255,255,255,.05);display:block}
.ev-thumb-void{border:1px solid var(--ui-border);background:rgba(255,255,255,.03)}
.ev-rescue-id{min-width:0;display:flex;flex-direction:column;gap:1px}
.ev-rescue-id b{color:var(--text-secondary);font-weight:500;font-size:12.5px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev-rescue-id small{font-size:10.5px;color:var(--text-tertiary)}
.ev-rescue-price{font-size:12.5px;font-weight:550;color:#e9d9a8;white-space:nowrap;font-variant-numeric:tabular-nums}
.ev-rescue-odds{display:flex;align-items:baseline;gap:9px;padding:11px 0 4px;flex-wrap:wrap}
.ev-rescue-odds strong{font-size:25px;font-weight:600;letter-spacing:-.04em;color:#e9d9a8}
.ev-rescue-odds span{font-size:11px;color:var(--text-tertiary)}

/* ── Atelier : saisie des nombres de boosters manquants (#/atelier) ── */
.atl-page{gap:24px}
.atl-head{display:flex;justify-content:space-between;align-items:flex-start;gap:28px;flex-wrap:wrap;
  border-bottom:1px solid var(--ui-border);padding-bottom:18px}
.atl-head h1{font-size:23px;font-weight:600;letter-spacing:-.03em;margin-bottom:7px}
.atl-head p{font-size:12px;color:var(--text-tertiary);max-width:560px}
.atl-state{text-align:right;white-space:nowrap}
.atl-state strong{font-size:30px;font-weight:600;letter-spacing:-.04em}
.atl-state span{display:block;font-size:11px;color:var(--text-tertiary)}
.atl-state em{display:block;font-size:11px;font-style:normal;margin-top:5px;min-height:14px}
.atl-state em[data-on=wait]{color:var(--text-tertiary)}
.atl-state em[data-on=ok]{color:#83d9b1}
.atl-state em[data-on=ko]{color:#edaa90}
.atl-group-head{display:flex;align-items:baseline;gap:12px;margin-bottom:8px}
.atl-group-head h2{font-size:13px;font-weight:550;letter-spacing:.04em;text-transform:uppercase}
.atl-group-head span{font-size:11px;color:var(--text-tertiary)}
.atl-table td{vertical-align:middle;padding:7px 10px}
.atl-table tr{border-bottom:1px solid var(--ui-border)}
.atl-table tr.atl-done{opacity:.45}
.atl-art{width:46px}
.atl-art img{width:38px;height:38px;object-fit:contain;border-radius:5px}
.atl-table strong{display:block;font-size:13px;font-weight:500}
.atl-table small{font-size:11px;color:var(--text-tertiary)}
.atl-price{width:110px;text-align:right;color:var(--text-secondary)}
.atl-input{width:92px!important;text-align:center}
.atl-link{width:34px;text-align:center}
.atl-link a{color:var(--text-tertiary);text-decoration:none;font-size:15px}
.atl-link a:hover{color:var(--text-primary)}
@media(max-width:700px){.atl-art,.atl-price{display:none}.atl-input{width:74px!important}}

/* ── Indice : lecture seule, sans score ni pondération ── */
.kt-readings{display:flex;flex-direction:column;gap:0;margin-top:18px;border-top:1px solid var(--ui-border)}
.kt-reading{display:grid;grid-template-columns:minmax(120px,.42fr) 1fr;gap:14px;padding:11px 0;
  border-bottom:1px solid var(--ui-border);font-size:12px}
.kt-reading dt{color:var(--text-primary);font-weight:500}
.kt-reading dd{margin:0;color:var(--text-tertiary);line-height:1.5}
.kt-reading-off dd{font-style:italic}
@media(max-width:700px){.kt-reading{grid-template-columns:1fr;gap:3px}}

/* ── Page lexique ── */
.lex-page{gap:34px}
.lex-group h2{font-size:15px;font-weight:550;letter-spacing:-.01em;padding-bottom:12px;
  border-bottom:1px solid var(--ui-border);margin-bottom:6px}
.lex-list{margin:0}
.lex-item{display:grid;grid-template-columns:minmax(150px,.3fr) 1fr;gap:26px;padding:20px 0;
  border-bottom:1px solid var(--ui-border)}
.lex-item:last-child{border-bottom:0}
.lex-item dt{font-size:14px;font-weight:550;color:var(--text-primary)}
.lex-item dd{margin:0;display:flex;flex-direction:column;gap:9px}
.lex-item dd p{font-size:13px;line-height:1.62;color:var(--text-tertiary);margin:0}
.lex-short{color:var(--text-secondary)!important;font-size:13px!important}
.lex-item b{color:var(--text-secondary);font-weight:550}
.lex-foot{font-size:11px;color:var(--text-tertiary);border-top:1px solid var(--ui-border);padding-top:16px;max-width:640px}
.site-footer a{color:inherit;text-decoration:underline;text-underline-offset:2px}
@media(max-width:700px){.lex-item{grid-template-columns:1fr;gap:8px;padding:16px 0}}

/* ── Ligne de provenance : une ligne, pas un menu ── */
.r-source{font-size:11px;color:var(--text-tertiary);border-top:1px solid var(--ui-border);padding-top:14px;margin-top:4px}

/* ── Ajustement d'une fiche scellé : visible, compact, sans dépliant ── */
.ev-adjust{border-top:1px solid var(--ui-border);padding-top:16px;display:flex;flex-direction:column;gap:11px}
.ev-adjust-title{font-size:10px;letter-spacing:.15em;color:var(--text-tertiary);font-weight:600}
.ev-adjust-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ev-adjust-grid label{font-size:11px;color:var(--text-tertiary);display:flex;flex-direction:column;gap:6px}
.ev-adjust-grid input{padding:9px 10px;font-size:13px}
.ev-warn{font-size:11px;color:#e8c08d}
@media(max-width:700px){.ev-adjust-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ── L6 — ouvrir ou conserver ─────────────────────────────────────────
   Le panneau reprend la grammaire de `.r-verdict` : un grand nombre, des
   lignes de qualification dessous, la provenance en bas. La couleur ne porte
   jamais seule le sens — elle double une phrase qui dit la même chose. */
.ev-hold{gap:10px;border-radius:15px}
.ev-hold-keep{background:#699e8718;border-color:#80c7a92e}
.ev-hold-open{background:#ac5d4018;border-color:#a36a4c36}
.ev-hold-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ev-hold-head .r-eyebrow{margin-bottom:0}
.ev-horizon{display:flex;gap:4px;padding:3px;border:1px solid var(--ui-border);border-radius:999px;background:var(--app-card)}
.ev-horizon button{border:0;background:transparent;color:var(--text-tertiary);font-size:11px;font-weight:500;
  padding:5px 12px;border-radius:999px;cursor:pointer;line-height:1.2;white-space:nowrap}
.ev-horizon button:hover{color:var(--text-secondary)}
.ev-horizon button.is-on{background:var(--app-surface-elevated,var(--ui-border));color:var(--text-primary)}
.ev-horizon button:focus-visible{outline:2px solid #7abaac;outline-offset:1px}
.ev-hold-lede{font-size:14px;margin:4px 0 0}
.ev-hold-share{font-size:clamp(38px,5vw,56px);font-weight:550;letter-spacing:-.05em;line-height:1}
.ev-hold-keep .ev-hold-share{color:#89dfb4}
.ev-hold-open .ev-hold-share{color:#f1b095}
.ev-hold-sub{font-size:12px;color:var(--text-tertiary);margin:0 0 6px;max-width:560px}
.ev-hold-rows{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.ev-hold-src{font-size:11.5px;color:var(--text-tertiary);line-height:1.55;
  border-top:1px solid var(--ui-border);padding-top:13px}
.ev-hold-src b{color:var(--text-secondary);font-weight:550}
.ev-hold small{font-size:11px;color:var(--text-tertiary);line-height:1.5}
@media(max-width:700px){.ev-hold-head{align-items:flex-start;flex-direction:column;gap:10px}
  .ev-horizon{align-self:stretch}.ev-horizon button{flex:1}}

/* ── Hero produit : l'action d'abord ──────────────────────────────────
   « Ajouter à ma collection » remonte sur la ligne de l'intitulé, à droite,
   là où l'œil arrive après le titre. Le reste du hero ne bouge pas. */
.r-hero-copy{min-width:0}
.r-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:12px}
.r-hero-top .r-eyebrow{margin-bottom:0;padding-top:3px}
.r-hero-top .action-button{flex:none;white-space:nowrap}
@media(max-width:700px){.r-hero-top{flex-direction:column;gap:12px}
  .r-hero-top .action-button{align-self:stretch;text-align:center}}


/* ─── Repli d'image ───────────────────────────────────────────────────
   TCGdex ne publie pas de visuel pour toutes les extensions ni pour toutes
   les cartes : 17 extensions n'ont aucun logo, celui de Nuit Noire répond
   404, et 22 cartes n'ont pas d'illustration. Masquer l'élément laissait un
   trou dans la grille. On affiche le sigle de l'extension ou l'initiale de
   la carte — une case pleine, lisible, qui dit ce qu'elle remplace. */
.r-fallback{display:inline-grid;place-items:center;border-radius:10px;
  background:linear-gradient(145deg,var(--app-card) 0,var(--app-surface-elevated) 100%);
  border:1px solid var(--ui-border);color:var(--text-tertiary);
  font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  font-size:11px;line-height:1.15;text-align:center;padding:4px 6px;overflow:hidden}
.r-logo.r-fallback{width:104px;height:66px}
.row-thumb .r-fallback{width:100%;height:100%;border:none;border-radius:0;font-size:9px;letter-spacing:.04em}
.r-fallback-art{width:100%;height:100%;font-size:13px}

/* ═══════════════════════════════════════════════════════════════════════════
   COMPARATEUR D'EXTENSIONS — produits scellés uniquement
   ───────────────────────────────────────────────────────────────────────────
   Le tableau compare des extensions en colonnes : la première colonne porte
   les libellés, chaque extension a la sienne avec son logo au-dessus du nom.
   Le classement reprend la grammaire des lignes de classement du reste du
   site — position, identité, barre, valeur — pour que la page se lise comme
   les autres.
   ═══════════════════════════════════════════════════════════════════════════ */

.cmp-table { margin-top: 4px; }
.cmp-table th, .cmp-table td { padding: 11px 12px; border-bottom: 1px solid var(--ui-border); }
.cmp-table tbody th { text-align: left; font-weight: 400; font-size: 12px; color: var(--text-tertiary); white-space: nowrap; }
.cmp-table thead th:first-child { text-align: left; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
/* Le logo est au-dessus du nom, aligné à droite comme les nombres qu'il
   surplombe : la colonne se lit de haut en bas sans changer d'axe. */
.cmp-col { text-align: right; vertical-align: bottom; white-space: normal; }
.cmp-col > span { display: block; margin-top: 6px; font-size: 12px; font-weight: 550; color: var(--text-primary); }
.cmp-col-logo { display: block; margin-left: auto; max-height: 26px; max-width: 62px; object-fit: contain; }
.cmp-table .r-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cmp-table tr:last-child th, .cmp-table tr:last-child td { border-bottom: 0; }
.cmp-table tr:last-child td { color: var(--text-tertiary); font-size: 11.5px; }

.cmp-chip-logo { height: 15px; max-width: 32px; object-fit: contain; flex: none; }

.cmp-rank-row {
  display: grid;
  grid-template-columns: 20px 46px minmax(0, 1fr) minmax(60px, 150px) 78px;
  align-items: center; gap: 12px;
  padding: 12px 0; border-bottom: 1px solid var(--ui-border);
  font-size: 12.5px;
}
.cmp-rank-row:last-child { border-bottom: 0; }
.cmp-rank-pos { color: var(--text-tertiary); font-variant-numeric: tabular-nums; }
.cmp-rank-logo { max-height: 24px; max-width: 44px; object-fit: contain; }
.cmp-rank-name { min-width: 0; }
.cmp-rank-name strong, .cmp-rank-name { font-weight: 500; }
.cmp-rank-name small { display: block; margin-top: 2px; font-size: 11px; color: var(--text-tertiary); }
.cmp-rank-bar { height: 5px; border-radius: 6px; background: var(--ui-hover); overflow: hidden; }
.cmp-rank-bar i { display: block; height: 100%; border-radius: 6px; }
.cmp-rank-val { text-align: right; font-variant-numeric: tabular-nums; font-weight: 550; }

/* Sous 700 px, la barre et le logo cèdent la place : le nom et la valeur
   tiennent seuls, plutôt que de se comprimer jusqu'à l'illisible. */
@media (max-width: 700px) {
  .cmp-rank-row { grid-template-columns: 20px minmax(0, 1fr) 74px; gap: 10px; }
  .cmp-rank-row .cmp-rank-bar, .cmp-rank-row .cmp-rank-logo { display: none; }
  .cmp-table th, .cmp-table td { padding: 9px 8px; }
}

/* ── Bascule « afficher les non cotées » (research.js) ──────────────────────
   Un bouton qui doit se lire comme la fin d'une phrase, pas comme une action
   qui rivalise avec le compteur qui le précède. D'où l'absence de fond et de
   bordure : c'est un lien, présenté comme tel. */
.link-button {
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  color: var(--accent, #548dff);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.link-button:hover { color: var(--text-primary); }
