:root{--bg:#14181c;--panel:#1c2228;--line:#2c3440;--text:#e8edf2;--muted:#8a97a6;--accent:#00c030;--accent2:#40bcf4;--warn:#ff8000;--radius:6px}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--text);font:15px/1.4 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Helvetica,Arial,sans-serif}
button{font:inherit;color:inherit}
.top{position:sticky;top:0;z-index:10;background:#14181c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:calc(env(safe-area-inset-top) + 10px) 16px 0;border-bottom:1px solid var(--line)}
.row{display:flex;align-items:center;justify-content:space-between}
.brand{font-weight:800;letter-spacing:.02em;font-size:18px}
.brand span{color:var(--accent);margin-left:6px;font-weight:600}
.icon-btn{background:none;border:0;font-size:24px;line-height:1;padding:4px 8px;color:var(--muted);cursor:pointer}
.console-pick{display:block;margin-top:8px;position:relative}
.console-pick select{appearance:none;-webkit-appearance:none;width:100%;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:10px 36px 10px 12px;font:600 17px/1.2 inherit;font-family:inherit}
.console-pick::after{content:"▾";position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.progress{margin-top:12px}
.count{font-size:15px;color:var(--muted)}
.count strong{color:var(--text);font-size:22px}
.count .pct{float:right;color:var(--accent);font-weight:700;margin-top:6px}
.bar{height:6px;background:#2a323c;border-radius:3px;overflow:hidden;margin-top:6px}
.fill{height:100%;width:0;background:linear-gradient(90deg,var(--accent),#7be08f);border-radius:3px;transition:width .35s ease}
.tabs{display:flex;gap:4px;margin-top:12px}
.tabs button{flex:1;background:none;border:0;border-bottom:2px solid transparent;padding:10px 0 9px;color:var(--muted);font-weight:600;font-size:13px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.tabs button.active{color:var(--text);border-bottom-color:var(--accent)}
.tabs .n{opacity:.7;font-weight:500;margin-left:4px}
main{padding:14px 12px calc(env(safe-area-inset-bottom) + 24px)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px}
@media(min-width:700px){.grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}main{max-width:1100px;margin:0 auto}}
.tile{position:relative;aspect-ratio:1/1;border-radius:var(--radius);overflow:hidden;background:#0d1013;border:0;padding:0;cursor:pointer;box-shadow:0 0 0 1px rgba(255,255,255,.06) inset,0 4px 10px rgba(0,0,0,.35);transition:transform .12s ease}
.tile:active{transform:scale(.96)}
.tile img,.tile .ph{width:100%;height:100%;object-fit:cover;display:block;transition:filter .25s ease,opacity .25s ease}
.tile:not(.owned) img,.tile:not(.owned) .ph{filter:grayscale(1) brightness(.55) contrast(.9);opacity:.45}
.tile.owned{box-shadow:0 0 0 2px var(--accent),0 4px 14px rgba(0,192,48,.25)}
.tile .check{position:absolute;right:5px;bottom:5px;width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;font-size:13px;font-weight:900;display:none;align-items:center;justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,.5)}
.tile.owned .check{display:flex}
.tile .cap{position:absolute;left:0;right:0;bottom:0;padding:16px 6px 5px;font-size:10.5px;line-height:1.2;text-align:left;background:linear-gradient(transparent,rgba(0,0,0,.85));color:#dfe6ee;opacity:0;transition:opacity .2s}
.tile:not(.owned) .cap{opacity:1}
.ph{display:flex!important;align-items:center;justify-content:center;text-align:center;padding:10px;background:linear-gradient(145deg,#2b0a0a,#5a1010);color:#ff6b6b;font-weight:700;font-size:13px}
.list{display:flex;flex-direction:column;gap:2px}
.item{display:flex;align-items:center;gap:12px;padding:8px 6px;border-bottom:1px solid var(--line);background:none;border-left:0;border-right:0;border-top:0;text-align:left;width:100%;cursor:pointer}
.item .thumb{width:52px;height:52px;border-radius:4px;flex:none;object-fit:cover;background:#0d1013}
.item.missing .thumb{filter:grayscale(1) brightness(.6)}
.item .meta{flex:1;min-width:0}
.item .t{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item .s{color:var(--muted);font-size:12.5px;margin-top:2px}
.badge{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.05em;padding:1px 5px;border-radius:3px;margin-right:4px;border:1px solid var(--line);color:var(--muted)}
.badge.JP{color:#ff8a8a;border-color:#5a2b2b}.badge.NA{color:#8ac4ff;border-color:#24405e}
.tog{flex:none;width:28px;height:28px;border-radius:50%;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-weight:900;color:transparent}
.item.own .tog{background:var(--accent);border-color:var(--accent);color:#fff}
.empty{color:var(--muted);text-align:center;padding:48px 20px}
.hint{color:var(--muted);text-align:center;font-size:12.5px;margin:0 16px 30px}
.sheet-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:20}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:21;background:var(--panel);border-radius:16px 16px 0 0;padding:18px 16px calc(env(safe-area-inset-bottom) + 16px);max-width:560px;margin:0 auto;box-shadow:0 -10px 30px rgba(0,0,0,.5)}
.sheet h2{margin:0 0 12px;font-size:17px}
.opt{display:flex;justify-content:space-between;align-items:center;margin:10px 0}
.seg{display:flex;background:#11161a;border-radius:8px;padding:2px}
.seg button{border:0;background:none;padding:6px 12px;border-radius:6px;color:var(--muted);cursor:pointer}
.seg button.on{background:#334050;color:var(--text)}
.wide{display:block;width:100%;margin-top:10px;padding:12px;border-radius:10px;border:1px solid var(--line);background:#252d36;text-align:center;font-weight:600;cursor:pointer}
.wide[hidden]{display:none}
.wide.file input{display:none}
.wide.danger{color:#ff7a7a;background:none}
.wide.ghost{background:none;color:var(--muted)}
.source{color:var(--muted);font-size:11.5px;margin:14px 2px 0}
.toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 20px);transform:translateX(-50%);background:#2e3a46;color:#fff;padding:10px 16px;border-radius:20px;font-size:14px;z-index:30;box-shadow:0 4px 14px rgba(0,0,0,.4)}

.tools{display:flex;gap:6px;margin-top:10px}
.tools input{flex:1;min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--text);padding:8px 10px;font:16px/1.2 inherit;font-family:inherit}
.tools select{background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--text);padding:8px 6px;font:14px inherit;font-family:inherit;max-width:30%}
.grid.contain .tile img{object-fit:contain;background:#0d1013}
.tile{content-visibility:auto;contain-intrinsic-size:110px 110px}
.item{content-visibility:auto;contain-intrinsic-size:auto 68px}
.resinfo{color:var(--muted);text-align:center;font-size:12.5px;margin:-6px 0 12px}
#sentinel{height:1px}
.badge.EU{color:#b4e08a;border-color:#35502a}.badge.CN,.badge.KR,.badge.TW{color:#e0c48a;border-color:#504a2a}

.tile,.item{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.tile img,.item img{-webkit-user-drag:none;pointer-events:none}
.tile.pressing{transform:scale(.94)}
.detail{max-height:88vh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;overscroll-behavior-y:none;padding-top:10px;transition:transform .22s cubic-bezier(.2,.8,.2,1);will-change:transform}
html.locked,html.locked body{overflow:hidden;overscroll-behavior:none}
.sheet-backdrop{touch-action:none}
.d-handle{touch-action:none;padding:10px 0 14px;margin:-10px -16px 0;cursor:grab}
.grab{width:40px;height:5px;border-radius:3px;background:#3a4450;margin:0 auto}
.d-head{display:flex;gap:14px;align-items:flex-start}
.d-cover{width:42%;max-width:190px;flex:none;border-radius:6px;box-shadow:0 6px 18px rgba(0,0,0,.5);background:#0d1013}
.d-cover.ph{aspect-ratio:1/1;display:flex!important}
.d-title{font-size:19px;font-weight:800;line-height:1.2;margin:2px 0 4px}
.d-jp{color:var(--muted);font-size:13.5px;margin-bottom:8px}
.d-meta{font-size:13px;color:#c5cfda;line-height:1.55}
.d-meta b{color:var(--muted);font-weight:600}
.d-own{margin-top:10px;width:100%;padding:9px;border-radius:9px;border:1px solid var(--line);background:#252d36;font-weight:700;cursor:pointer}
.d-own.on{background:var(--accent);border-color:var(--accent);color:#fff}
.d-sec{margin-top:16px}
.d-sec h3{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.d-dates{display:flex;flex-direction:column;gap:4px;font-size:13.5px}
.price{background:#11161a;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px}
.price .ph1{display:flex;justify-content:space-between;align-items:baseline;font-weight:700}
.price .cols{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.price .cell{background:#1a2027;border-radius:8px;padding:8px}
.price .lab{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.price .val{font-size:18px;font-weight:800;margin-top:2px}
.price .val.na{font-size:13px;font-weight:600;color:#8a97a6}
.price .n{font-size:11px;color:var(--muted)}
.price .src{font-size:11px;color:var(--muted);margin-top:8px;line-height:1.4}

.price{position:relative}
.qbtn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:1px solid #4a5666;background:#1f262e;color:#aab6c3;font-size:12px;font-weight:800;margin-left:4px;padding:0;vertical-align:1px;cursor:pointer}
.qbtn[aria-expanded="true"]{background:var(--accent2);border-color:var(--accent2);color:#0b1620}
.pop{position:absolute;left:8px;right:8px;top:38px;z-index:5;background:#2a3440;color:#dbe3ec;border:1px solid #3d4a59;border-radius:10px;padding:10px 12px;font-size:12px;line-height:1.45;box-shadow:0 8px 24px rgba(0,0,0,.55);max-height:50vh;overflow-y:auto}
.pop[hidden]{display:none}

/* v7 : recherche */
.sbox{position:relative;flex:1;min-width:0;display:flex}
.sbox input{flex:1;padding-right:34px!important}
.sbox input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}
.sclear{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;border:0;background:#3a4552;color:#e8edf2;font-size:18px;line-height:1;padding:0;cursor:pointer}
.sclear[hidden]{display:none}
.filt{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--accent2);border:1px solid #24405e;border-radius:10px;padding:0 7px;margin-left:4px;vertical-align:2px}
.filt[hidden]{display:none}
.empty p{margin:0 0 10px}
.empty .sub{font-size:13px}
.empty .clear-q{max-width:260px;margin:16px auto 0;color:var(--text)}
/* v7 : proportions réelles des boîtes */
.grid{grid-template-columns:repeat(auto-fill,minmax(var(--min,104px),1fr))}
@media(min-width:700px){.grid{grid-template-columns:repeat(auto-fill,minmax(calc(var(--min,104px)*1.45),1fr))}}
.tile{aspect-ratio:var(--ar,1);contain-intrinsic-size:auto var(--cih,115px)}
.tile img{object-fit:contain;background:#0d1013}
.item .thumb{object-fit:contain}
.d-cover{aspect-ratio:var(--ar,1);object-fit:contain}
.d-head.wide{flex-direction:column}
.d-head.wide .d-cover{width:100%;max-width:360px}

/* v8 : remplissage des tuiles */
.tile img{object-fit:cover}
.tile.fitc img{object-fit:contain;position:relative;z-index:1;background:none}
.tile.fitc::before{content:"";position:absolute;inset:-12px;background:#0d1013 var(--bg) center/cover no-repeat;filter:blur(12px) brightness(.45) saturate(.8);z-index:0}
.tile:not(.owned).fitc::before{filter:blur(12px) grayscale(1) brightness(.3)}
.tile .cap,.tile .check{z-index:2}
/* v35 (prêt, non déployé) : sur iOS (WebKit), une jaquette non positionnée qui sort d'une transition filter/opacity (tuile qu'on vient de cocher) garde
   son propre calque et repasse au-dessus des badges JP/NA, du ✓ et de « Loose ». Empilement explicite : tuile isolée,
   jaquette positionnée en z-index 1 (comme les tuiles .fitc, non touchées), surcouches en z-index 2 sur leur propre calque. */
.tile{isolation:isolate}
.tile>img,.tile>.ph{position:relative;z-index:1}
.tile .rb,.tile .cap,.tile .check,.tile .lbadge{z-index:2;-webkit-transform:translateZ(0);transform:translateZ(0)}
img.d-cover{aspect-ratio:auto;object-fit:initial;height:auto}

/* v9 : possession à 3 états */
:root{--loose:#f5c518}
.split{font-size:12px;color:var(--muted);margin-top:1px;min-height:0}
.split:empty{display:none}
.bar{display:flex}
.bar .fill{border-radius:3px 0 0 3px}
.fill2{height:100%;width:0;background:var(--loose);transition:width .35s ease}
.tile.loose{box-shadow:0 0 0 2px var(--loose),0 4px 14px rgba(245,197,24,.2)}
/* v70 (Georges) : loose = même teinte qu'un jeu détenu dans une autre région (.tile.oth) : en couleurs mais atténué */
.tile.loose img,.tile.loose .ph{filter:grayscale(.5) brightness(.75);opacity:.8}
.tile .lbadge{position:absolute;right:5px;bottom:5px;z-index:2;display:none;background:var(--loose);color:#1d1600;font-size:10px;font-weight:800;letter-spacing:.04em;padding:2px 6px;border-radius:9px;box-shadow:0 1px 4px rgba(0,0,0,.5)}
.tile.loose .lbadge{display:block}
.tile.loose .cap{opacity:1}
.item.loose .tog{background:var(--loose);border-color:var(--loose);color:#1d1600;font-size:12px}
.item.loose .thumb{filter:grayscale(.5) brightness(.75);opacity:.8}
.ownseg{margin:12px 12px 0;max-width:420px}
.ownseg[hidden]{display:none}
.ownseg button{flex:1;font-size:13px}
.ownseg button span{opacity:.65;margin-left:3px}
@media(min-width:700px){.ownseg{margin:12px auto 0}}
.d-state{display:flex;margin-top:10px;background:#11161a;border:1px solid var(--line);border-radius:9px;padding:2px;gap:2px}
.d-state button{flex:1;border:0;background:none;color:var(--muted);padding:8px 2px;border-radius:7px;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap}
.d-state button.on[data-s=""]{background:#334050;color:var(--text)}
.d-state button.on[data-s="loose"]{background:var(--loose);color:#1d1600}
.d-state button.on[data-s="cib"]{background:var(--accent);color:#fff}
[data-st="loose"] .cell.k-loose{box-shadow:0 0 0 2px var(--loose) inset}
[data-st="cib"] .cell.k-cib{box-shadow:0 0 0 2px var(--accent) inset}
[data-st="loose"] .cell.k-loose .lab::after,[data-st="cib"] .cell.k-cib .lab::after{content:var(--yours," · yours");color:var(--text)}

/* v10 : devise */
.d-ph{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.d-ph h3{margin:0}
.seg.cur button{padding:4px 8px;font-size:12px;font-weight:700}
.d-upd{font-size:11.5px;color:var(--muted);margin:0 0 8px}
.price .n.conv{color:#aab6c3}

/* v11 : pas de zoom de page, visionneuse, loupe */
html{touch-action:manipulation;-webkit-text-size-adjust:100%;text-size-adjust:100%}
button,select,input,a,.tile,.item{touch-action:manipulation}
input,select,textarea{font-size:16px!important}
img.d-cover{cursor:zoom-in;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}
.viewer{position:fixed;inset:0;z-index:40;background:rgba(5,7,9,.96);display:flex;align-items:center;justify-content:center;padding:calc(env(safe-area-inset-top) + 12px) 12px calc(env(safe-area-inset-bottom) + 34px);touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;cursor:zoom-out}
.viewer[hidden]{display:none}
.viewer img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;-webkit-user-drag:none;pointer-events:none}
.v-hint{position:absolute;left:0;right:0;bottom:calc(env(safe-area-inset-bottom) + 10px);text-align:center;color:#8a97a6;font-size:12px}
.loupe{position:fixed;left:0;top:0;z-index:50;width:140px;height:140px;border-radius:50%;border:3px solid #e8edf2;box-shadow:0 8px 28px rgba(0,0,0,.7);background-color:#0d1013;background-repeat:no-repeat;pointer-events:none;will-change:transform}
.loupe[hidden]{display:none}

/* v15 : barre d'icônes « mes consoles » */
.cbar{display:flex;align-items:stretch;gap:6px;margin-top:8px}
.cscroll{flex:1;min-width:0;display:flex;gap:6px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;padding:2px 1px;touch-action:pan-x;mask-image:linear-gradient(90deg,#000 calc(100% - 14px),transparent);-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 14px),transparent)}
.cscroll::-webkit-scrollbar{display:none}
.cbtn{flex:none;width:52px;height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:var(--panel);border:1px solid var(--line);border-radius:10px;color:var(--muted);padding:3px 2px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.cbtn svg{width:26px;height:26px;display:block}
.cbtn span{font-size:10px;font-weight:700;letter-spacing:.03em;line-height:1;white-space:nowrap;max-width:48px;overflow:hidden;text-overflow:ellipsis}
.cbtn.on{color:var(--text);border-color:var(--accent);background:#1f2d24;box-shadow:0 0 0 1px var(--accent) inset}
.cbtn.on span{color:var(--accent)}
.cbtn:active{transform:scale(.95)}
.cadd{flex:none;width:46px;height:50px;margin-top:2px;border-radius:10px;border:1.5px dashed #4a5666;background:none;color:var(--text);font-size:26px;font-weight:300;line-height:1;cursor:pointer;padding:0}
.cadd:active{transform:scale(.95)}
.cadd.pulse{border-style:solid;border-color:var(--accent);color:var(--accent);animation:cpulse 1.6s ease-in-out infinite}
@keyframes cpulse{0%,100%{box-shadow:0 0 0 0 rgba(0,192,48,.45)}50%{box-shadow:0 0 0 6px rgba(0,192,48,0)}}
.cbar-empty{flex:1;height:50px;border:0;background:none;color:var(--muted);font-size:13.5px;text-align:left;padding:0 4px;cursor:pointer}
.cbar-empty b{color:var(--accent)}
.cur-name{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:1px}
.cur-name:empty{display:none}
body.noconsole .progress,body.noconsole .tools,body.noconsole .tabs,body.noconsole #ownSeg,body.noconsole #hint,body.noconsole #resinfo{display:none!important}
body.noconsole .top{padding-bottom:10px}
.wide.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.onboard{text-align:center;padding:36px 14px 20px;max-width:420px;margin:0 auto;color:#c5cfda}
.ob-ic{width:72px;height:72px;margin:0 auto 14px;border-radius:20px;background:var(--panel);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--accent)}
.ob-ic svg{width:44px;height:44px}
.onboard h2{margin:0 0 10px;font-size:22px;color:var(--text)}
.onboard p{margin:0 0 10px;font-size:14.5px;line-height:1.5}
.onboard .ob-add{font-size:17px;padding:14px;margin:20px 0 12px;border-radius:12px}
.onboard .sub{font-size:12.5px;color:var(--muted)}
.picker{display:flex;flex-direction:column;max-height:86vh;padding-top:16px}
.picker[hidden]{display:none}
.pk-head h2{margin:0 0 4px}
.pk-sub{margin:0 0 6px;font-size:12.5px;color:var(--muted);line-height:1.4}
.pk-list{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;margin:0 -16px;padding:0 16px}
.pk-jump{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:8px -16px 2px;padding:2px 16px 6px}
.pk-jump::-webkit-scrollbar{display:none}
.pk-chip{flex:none;border:1px solid var(--line);background:#11161a;border-radius:16px;padding:6px 12px;font-size:13.5px;font-weight:600;cursor:pointer;color:var(--text);box-shadow:inset 3px 0 0 var(--mk)}
.pk-chip i{font-style:normal;color:var(--accent);margin-left:3px}
.pk-sec{margin-bottom:6px}
.pk-grp{position:sticky;top:0;z-index:5;display:flex;align-items:baseline;justify-content:space-between;gap:8px;background:var(--panel);margin:0 -16px;padding:12px 16px 7px;border-bottom:2px solid var(--mk)}
.pk-mk{font-size:16px;font-weight:800;letter-spacing:.01em;color:var(--text)}
.pk-mk::before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--mk);margin-right:8px;vertical-align:1px}
.pk-n{font-size:12.5px;color:var(--muted);white-space:nowrap}
.pk-row{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:6px 4px;background:none;border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer}
.pk-ic{flex:none;width:42px;height:42px;border-radius:10px;background:#11161a;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--muted)}
.pk-ic svg{width:26px;height:26px}
.pk-row.on .pk-ic{color:var(--text);border-color:#2f5a3a}
.pk-txt{flex:1;min-width:0;display:flex;flex-direction:column}
.pk-txt b{font-size:15px;font-weight:600}
.pk-txt small{font-size:12.5px;color:var(--muted)}
.pk-txt em{font-style:normal;color:var(--accent)}
.pk-chk{flex:none;width:28px;height:28px;border-radius:50%;border:2px solid #3d4855;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:14px;color:transparent}
.pk-row.on .pk-chk{background:var(--accent);border-color:var(--accent);color:#fff}
.picker #closePicker{flex:none;margin-top:12px}

/* v19 : possession par région */
:root{--jp:#ff8a8a;--na:#8ac4ff;--eu:#b4e08a}
.tools2{display:flex;align-items:center;gap:6px;margin-top:8px}
.tools2 select{background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--text);padding:5px 6px;font:14px inherit;font-family:inherit;flex:none}
.rbar{flex:1;min-width:0;display:flex;gap:5px;overflow-x:auto;scrollbar-width:none;padding:1px}
.rbar::-webkit-scrollbar{display:none}
.rpill{flex:none;display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 10px;border-radius:16px;border:1px solid var(--line);background:var(--panel);color:var(--muted);font-size:12.5px;font-weight:800;letter-spacing:.04em;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.rpill .fl{filter:grayscale(1) brightness(.8);opacity:.45}
.rpill.on{color:var(--text);border-color:var(--accent);background:#1f2d24;box-shadow:0 0 0 1px var(--accent) inset}
.rpill.on .fl{filter:none;opacity:1}
.rpill:active{transform:scale(.95)}
.ronly{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);font-weight:600}
body.noconsole .tools2{display:none!important}
/* mini-drapeaux en CSS (pas d'emoji : rendu identique partout) */
.fl{display:inline-block;flex:none;width:18px;height:12px;border-radius:2px;box-shadow:0 0 0 1px rgba(255,255,255,.18);background:#556}
.fl.JP{background:radial-gradient(circle at 50% 50%,#bc002d 0 3.4px,#fff 3.8px)}
.fl.NA{background:linear-gradient(#3c3b6e,#3c3b6e) 0 0/44% 54% no-repeat,repeating-linear-gradient(#b22234 0 1.71px,#fff 1.71px 3.43px)}
.fl.EU{background:radial-gradient(circle at 50% 50%,transparent 0 2.6px,#ffcc00 2.8px 3.8px,transparent 4px),#039}
.fl.CN{background:radial-gradient(circle at 26% 32%,#ffde00 0 2px,transparent 2.3px),#de2910}
.fl.KR{background:radial-gradient(circle at 50% 50%,#cd2e3a 0 3px,#0047a0 3.3px 3.9px,#fff 4.2px)}
.fl.TW{background:radial-gradient(circle at 22% 28%,#fff 0 1.8px,transparent 2px) 0 0/50% 50%,linear-gradient(#000095,#000095) 0 0/50% 50% no-repeat,#fe0000;background-repeat:no-repeat}
.fl.big{width:42px;height:28px;border-radius:4px}
.fl.big.JP{background:radial-gradient(circle at 50% 50%,#bc002d 0 8px,#fff 8.6px)}
.fl.big.NA{background:linear-gradient(#3c3b6e,#3c3b6e) 0 0/44% 54% no-repeat,repeating-linear-gradient(#b22234 0 2.15px,#fff 2.15px 4.3px)}
.fl.big.EU{background:radial-gradient(circle at 50% 50%,transparent 0 6.5px,#ffcc00 7px 9px,transparent 9.5px),#039}
/* badges sur les tuiles (vue Toutes) */
.tile .rb{position:absolute;left:4px;top:4px;z-index:2;display:flex;flex-direction:column;gap:2px;pointer-events:none}
.rbg{display:block;min-width:21px;height:14px;line-height:14px;padding:0 3px;border-radius:4px;font:800 8.5px/14px -apple-system,BlinkMacSystemFont,sans-serif;font-style:normal;letter-spacing:.03em;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.6)}
.rbg.no{background:rgba(20,24,28,.82);color:#7d8896;box-shadow:0 0 0 1px rgba(255,255,255,.12) inset,0 1px 3px rgba(0,0,0,.6)}
.rbg.loose{background:var(--loose);color:#1d1600}
.rbg.cib{background:var(--accent);color:#fff}
.rbg.q{background:#ff8000;color:#fff;border:1px dashed #fff3}
.rbg.q.loose{background:repeating-linear-gradient(135deg,var(--loose) 0 3px,#ff8000 3px 6px);color:#1d1600}
.d-ownr .rbg,.ov-q .rbg{display:inline-block;flex:none}
/* badges de la vue liste */
.badge.o-loose{background:var(--loose);color:#1d1600;border-color:var(--loose)}
.badge.o-cib{background:var(--accent);color:#fff;border-color:var(--accent)}
.badge.q{color:#ff8000;border-color:#ff8000}
.badge.q.o-loose,.badge.q.o-cib{color:#fff;background:#ff8000}
/* overlay « quelle version ? » */
.own-ov{position:fixed;inset:0;z-index:26;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;padding:16px;touch-action:none}
.own-ov[hidden]{display:none}
.ov-card{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:0 12px 40px rgba(0,0,0,.6);animation:ovin .16s ease-out}
@keyframes ovin{from{transform:scale(.94);opacity:0}to{transform:none;opacity:1}}
.ov-head{display:flex;gap:12px;align-items:center}
.ov-head img,.ov-head .ph{width:54px;height:54px;object-fit:contain;border-radius:6px;background:#0d1013;flex:none;font-size:8px;padding:3px}
.ov-ht{min-width:0}
.ov-t{font-weight:800;font-size:16px;line-height:1.2;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ov-s{font-size:12.5px;color:var(--muted);margin-top:3px;line-height:1.35}
.ov-regs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.ov-regs.n1{grid-template-columns:1fr}.ov-regs.n2{grid-template-columns:1fr 1fr}
.ovr{display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 4px 10px;border-radius:12px;border:2px solid var(--line);background:#11161a;color:var(--muted);cursor:pointer;transition:border-color .15s,background .15s}
.ovr b{font-size:17px;letter-spacing:.05em;color:var(--text);margin-top:3px}
.ovr small{font-size:10.5px;line-height:1.2;text-align:center}
.ovr em{font-style:normal;font-size:12px;font-weight:800;margin-top:4px;padding:2px 9px;border-radius:10px;background:#252d36;color:#9aa6b4}
.ovr.s-no .fl{filter:grayscale(1);opacity:.4}
.ovr.s-loose{border-color:var(--loose);background:#2a2610}
.ovr.s-loose em{background:var(--loose);color:#1d1600}
.ovr.s-cib{border-color:var(--accent);background:#14291b}
.ovr.s-cib em{background:var(--accent);color:#fff}
.ovr:active{transform:scale(.96)}
.ov-q{display:flex;align-items:center;gap:8px;margin-top:10px;padding:8px 10px;border-radius:10px;background:#2a1d0e;border:1px solid #5a3a12;font-size:12px;color:#f3c99a;line-height:1.35}
.ov-qx{flex:none;border:1px solid #5a3a12;background:none;color:#f3c99a;border-radius:8px;padding:5px 8px;font-size:12px;cursor:pointer}
.ov-foot{display:flex;gap:8px;margin-top:12px}
.ov-foot button{flex:1;padding:11px;border-radius:10px;border:1px solid var(--line);background:#252d36;font-weight:700;cursor:pointer}
.ov-foot .ov-ok{background:var(--accent);border-color:var(--accent);color:#fff}
/* fiche : possession par région */
.d-ownr{display:flex;flex-direction:column;gap:6px}
.d-rrow{display:flex;align-items:center;gap:8px}
.d-rrow.cur .d-rn{color:var(--text);font-weight:800}
.d-rn{width:84px;flex:none;font-size:13px;color:#c5cfda;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.d-rrow .d-state{flex:1;margin-top:0}
.d-rrow .d-state button{padding:7px 2px}
.d-qn{font-size:11.5px;color:#f3c99a;margin:2px 0 0}
/* la fiche d'une jaquette large (N64, GBA…) héritait du style des boutons .wide (cadre, fond, texte centré) */
.d-head.wide{display:flex;padding:0;border:0;border-radius:0;background:none;text-align:left;font-weight:inherit;margin-top:0;cursor:auto}
/* --- reconnaissance photo (v24) */
.camb{flex:none;width:40px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--text);display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer}
.camb svg{width:22px;height:22px}
.camb:active{background:#252d36}
.cam{position:fixed;inset:0;z-index:40;background:#0b0e11;display:flex;flex-direction:column;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);touch-action:none}
.cam[hidden]{display:none}
.cam-top{display:flex;align-items:center;gap:8px;padding:10px 12px}
.cam-x{width:36px;height:36px;border-radius:50%;border:0;background:#252d36;color:#fff;font-size:22px;line-height:1;cursor:pointer;flex:none}
.cam-title{font-weight:800;font-size:16px}
.cam-stage{position:relative;flex:1;min-height:0;margin:0 10px;overflow:hidden}
.cam-stage[hidden]{display:none}
.cam-stage canvas{position:absolute}
.cam-stage svg{position:absolute;inset:0;width:100%;height:100%;touch-action:none}
.cq-mask{fill:rgba(0,0,0,.5)}
.cq-line{fill:none;stroke:var(--accent);stroke-width:2.5}
.cq-hit{fill:transparent}
.cq-dot{fill:rgba(0,192,48,.25);stroke:#fff;stroke-width:2.5}
.cam-busy{display:none}
.cam[data-st=busy] .cam-busy{display:flex;position:absolute;inset:0;align-items:center;justify-content:center;text-align:center;padding:30px;background:rgba(0,0,0,.6);font-weight:700;font-size:15px}
.cam[data-st=busy] .cam-busy::before{content:"";width:22px;height:22px;margin-right:10px;border-radius:50%;border:3px solid #fff3;border-top-color:var(--accent);animation:spin .8s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}
.cam-bar{display:flex;gap:6px;padding:10px 10px 0}
.cam-bar button{flex:1;padding:9px 4px;border-radius:10px;border:1px solid var(--line);background:#1c2228;color:var(--text);font-size:13px;font-weight:700;cursor:pointer}
.cam-go{margin:8px 10px 10px;padding:13px;border-radius:12px;border:0;background:var(--accent);color:#fff;font-size:16px;font-weight:800;cursor:pointer}
.cam[data-st=res] .cam-bar,.cam[data-st=res] .cam-go,.cam[data-st=busy] .cam-go{display:none}
.cam-res{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 12px 12px;touch-action:pan-y}
.cam-res[hidden]{display:none}
.cr-head{display:flex;gap:12px;align-items:center;font-size:14px;line-height:1.35;margin-bottom:10px}
.cr-head small{color:var(--muted)}
.cr-shot{width:84px;height:84px;border-radius:8px;object-fit:cover;flex:none;border:1px solid var(--line)}
.cr-list{display:flex;flex-direction:column;gap:8px}
.cr-it{position:relative;display:flex;gap:12px;align-items:center;text-align:left;padding:8px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;font:inherit}
.cr-it.top{border:2px solid var(--accent);background:#14291b}
.cr-it.top.unsure{border:1px solid #3a4552;background:var(--panel)}
.cr-it img,.cr-it .ph{width:62px;height:80px;object-fit:contain;border-radius:4px;flex:none;background:#0b0e11;font-size:8px}
.cr-t{display:flex;flex-direction:column;gap:3px;min-width:0}
.cr-t b{font-size:15px;line-height:1.25}
.cr-t small{color:var(--muted);font-size:12px;display:flex;align-items:center;gap:4px}
.cr-t small .fl{width:15px;height:10px}
.cr-t em{align-self:flex-start;font-style:normal;font-size:11px;font-weight:800;padding:1px 8px;border-radius:9px;background:var(--accent);color:#fff}
.cr-t em.loose{background:var(--loose);color:#1d1600}
.cr-1{position:absolute;top:6px;right:8px;font-size:10.5px;font-weight:800;color:var(--accent)}
.cr-foot{display:flex;gap:8px;margin-top:12px}
.cr-foot button{flex:1;padding:11px 6px;border-radius:10px;border:1px solid var(--line);background:#252d36;color:var(--text);font-weight:700;cursor:pointer;font-size:13px}
.ovr.sug{box-shadow:0 0 0 3px rgba(64,188,244,.55)}
.ov-sug{margin-top:10px;font-size:12.5px;color:var(--accent2);text-align:center}

/* Japon : secours Book-Off (prix boutique) + boutons de recherche */
.price.bo .bo-note{font-size:11.5px;color:#d9b36a;margin-top:6px;line-height:1.35}
.jp-links{margin:2px 0 10px}
.jp-links .jl-h{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 6px}
.jp-links .jl-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.jl-btn{display:flex;align-items:center;justify-content:center;gap:4px;min-height:40px;padding:6px 8px;border-radius:10px;border:1px solid var(--line);background:#1a2027;color:var(--text);font-size:13px;font-weight:700;text-decoration:none;text-align:center;-webkit-tap-highlight-color:transparent}
.jl-btn:active{background:#232b34}
.jl-btn span{color:var(--muted);font-weight:600}
/* v36 : reconnaissance « Mes consoles / Toutes », badge console, onglets multiplateformes */
.cam-scope{padding:0 10px 8px}
.cam[data-st=busy] .cam-scope{opacity:.45;pointer-events:none}
.cs-seg{display:flex;background:#1c2228;border:1px solid var(--line);border-radius:11px;padding:3px;gap:3px}
.cs-seg button{flex:1;padding:8px 6px;border:0;border-radius:8px;background:none;color:var(--muted);font:inherit;font-size:13.5px;font-weight:800;cursor:pointer}
.cs-seg button.on{background:var(--accent);color:#fff}
.cs-seg i{font-style:normal;font-weight:700;font-size:11px;opacity:.75;margin-left:3px}
.cr-it{flex-direction:column;align-items:stretch;gap:8px;padding:8px}
.cr-main{position:relative;display:flex;gap:12px;align-items:center;text-align:left;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}
.cr-cb{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.2px;padding:1px 6px;border-radius:6px;background:#2a333d;color:var(--text);border:1px solid #3a4652}
.cr-chips{display:flex;flex-wrap:wrap;gap:5px;padding-left:74px}
.cr-chip{padding:5px 10px;border-radius:14px;border:1px solid var(--line);background:#1c2228;color:var(--text);font:inherit;font-size:12px;font-weight:800;cursor:pointer}
.cr-chip.ns{color:var(--muted)}
.cr-chip.mine{border-color:#4b5a68}
.cr-chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.cr-1{top:0;right:0}
/* v37 : jeux loose (lecture d'étiquette, photos mémorisées) */
.cr-t small{flex-wrap:wrap}
.cr-t small b.cr-why{font-size:11px;font-weight:700;color:var(--accent2);line-height:1.3}
.cr-read{font-size:12px;line-height:1.4;color:var(--muted);background:#1b2229;border:1px solid #2a333d;border-radius:10px;padding:6px 10px;margin:-2px 0 10px;overflow-wrap:anywhere}
.cr-read span{font-weight:800;color:var(--text);margin-right:2px}
.cr-read b{color:var(--accent2)}
.d-ph{font-size:12px;color:var(--muted);margin:8px 0 0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.d-ph .d-phx{font:inherit;font-size:11.5px;color:var(--text);background:#2a333d;border:1px solid #3a4652;border-radius:8px;padding:2px 9px}

/* v38 : entête retiré, barre d'onglets « Jeux / Ma collection », page « Ma collection », variantes matérielles, écran de lancement */
.wordmark{font-weight:800;letter-spacing:.02em;font-size:18px;color:#fff;line-height:1}
.wordmark span{color:var(--accent)}
.wordmark.lg{font-size:30px;letter-spacing:.01em}
.wordmark.xl{font-size:44px;letter-spacing:.01em}
.top{padding-top:calc(env(safe-area-inset-top) + 8px)}
.cbar{margin-top:0}
.progress.pg2{margin-top:8px}
.pg-row{display:flex;align-items:center;gap:8px}
.pg-l{flex:1;min-width:0}
.pg-l .cur-name{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pg-sub{display:flex;align-items:center;gap:4px;min-height:16px;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden}
.pg-sub .split{overflow:hidden;text-overflow:ellipsis;margin:0}
.pg-sub .split:empty{display:none}
.pg-sub .filt{margin-left:0;vertical-align:0}
.pg-r{flex:none;text-align:right;line-height:1.15}
.pg-r .count{font-size:13px}
.pg-r .count strong{font-size:20px}
.pg-r .pct{display:block;float:none;margin:0;font-size:12.5px;color:var(--accent);font-weight:700}
.pg-menu{flex:none;width:36px;height:36px;margin-right:-8px;display:flex;align-items:center;justify-content:center;padding:0}
.progress.pg2 .bar{margin-top:6px;height:5px}
.split{font-size:12px;color:var(--muted)}
/* barre d'onglets en bas (pouce) */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:15;display:flex;justify-content:center;gap:0;background:rgba(20,24,28,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:5px 8px calc(env(safe-area-inset-bottom) + 5px)}
.tabbar button{flex:1;max-width:220px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 0 3px;border:0;background:none;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.02em;cursor:pointer;border-radius:10px}
.tabbar svg{width:25px;height:25px;display:block}
.tabbar button.on{color:var(--accent)}
.tabbar button:active{transform:scale(.95)}
main{padding-bottom:calc(env(safe-area-inset-bottom) + 84px)}
.hint{margin-bottom:calc(env(safe-area-inset-bottom) + 84px)}
.toast{bottom:calc(env(safe-area-inset-bottom) + 76px)}
.sheet{z-index:21}
body.pg-col .top,body.pg-col #ownSeg,body.pg-col #main,body.pg-col #resinfo,body.pg-col #hint,body.pg-col #sentinel{display:none!important}
body.pg-col #resetBtn{display:none}
/* page Ma collection */
.colpage{padding:calc(env(safe-area-inset-top) + 14px) 14px calc(env(safe-area-inset-bottom) + 92px);max-width:640px;margin:0 auto}
.colpage[hidden]{display:none}
.cp-head{display:flex;align-items:center;justify-content:space-between;margin:2px 2px 14px}
.cp-head .icon-btn{margin-right:-8px}
.cp-hero{background:linear-gradient(160deg,#1e2a24,#1a2027 60%);border:1px solid #2a3a30;border-radius:14px;padding:11px 14px 10px}
.cp-big{font-size:15px;color:#c5cfda;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-big b{font-size:30px;font-weight:800;color:var(--text);letter-spacing:-.01em;margin-right:3px}
.cp-on{color:var(--muted)}
.cp-cl{margin-top:8px}
.cp-clbar,.cp-rbar{display:flex;height:8px;border-radius:4px;overflow:hidden;background:#2a323c}
.cp-clbar i,.cp-rbar i{display:block;height:100%}
.cp-clbar .c{background:var(--accent)}
.cp-clbar .l{background:#f2c200}
.cp-leg{display:flex;gap:14px;margin-top:5px;font-size:12.5px;color:#c5cfda}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:0}
.dot.c{background:var(--accent)}.dot.l{background:#f2c200}
.cp-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px;margin-top:12px}
.cp-ch{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.cp-ch>span{font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.cp-ch small{font-size:12px;color:var(--muted)}
.cp-ch .seg button{padding:4px 10px;font-size:13px}
.cp-vbig{font-size:30px;font-weight:800;letter-spacing:-.01em}
.cp-vsub{font-size:12.5px;color:var(--muted);margin-top:4px;line-height:1.45}
.cp-rbar{height:10px}
.cp-rleg{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;margin-top:12px}
.cp-rl{display:flex;flex-direction:column;gap:1px;padding-left:10px;border-left:3px solid var(--line)}
.cp-rlh{display:flex;align-items:center;gap:7px}
.cp-rlh b{font-size:13.5px}
.cp-rl>span{font-size:13px;color:#c5cfda}
.cp-rl>span b{font-size:16px;color:var(--text)}
.cp-rl small{font-size:11.5px;color:var(--muted)}
.fl.q{background:#ff8000;color:#fff;font-size:9px;font-weight:900;text-align:center;line-height:12px;font-style:normal}
.cp-chev{flex:none;color:var(--muted);font-size:22px;line-height:1;padding:0 2px}
.cp-recent{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0 -14px;padding:0 14px 2px}
.cp-recent::-webkit-scrollbar{display:none}
.cp-rc{flex:none;width:86px;border:0;background:none;padding:0;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:3px}
.cp-rimg{display:block;width:86px;height:104px;border-radius:8px;overflow:hidden;background:#0d1013;box-shadow:0 0 0 1px rgba(255,255,255,.06) inset}
.cp-rimg img{width:100%;height:100%;object-fit:contain;display:block}
.cp-rimg .ph{width:100%;height:100%;font-size:10px;padding:6px}
.cp-rt{font-size:11.5px;font-weight:600;line-height:1.25;max-height:2.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}
.cp-rc small{font-size:10.5px;color:var(--muted)}
.cp-foot{font-size:11.5px;color:var(--muted);margin:14px 4px 0;line-height:1.45}
.cp-empty{text-align:center;color:#c5cfda;padding:30px 10px}
.cp-empty .sub{font-size:13.5px;color:var(--muted);line-height:1.5}
/* feuille variantes matérielles */
.hwsheet{max-height:90vh}
.hw-back{border:0;background:none;color:var(--accent);font-weight:700;font-size:15px;padding:0 0 8px;cursor:pointer}
.hw-title{display:flex;align-items:center;gap:12px}
.hw-title h2{margin:0}
.hw-title .pk-sub{margin:2px 0 0}
.hw-hint{margin-top:8px}
.hw-m{margin:6px 0 10px}
.hw-mh{position:sticky;top:0;z-index:5;background:var(--panel);display:flex;flex-direction:column;padding:10px 0 6px;border-bottom:1px solid var(--line)}
.hw-mh b{font-size:14.5px}
.hw-mh small{font-size:12px;color:var(--muted)}
.hw-solo{border-top:1px solid var(--line)}
.hw-solo:first-child{border-top:0}
.hw-it{display:flex;align-items:center;border-bottom:1px solid var(--line)}
.hw-tap{flex:1;min-width:0;display:flex;align-items:center;gap:12px;min-height:50px;padding:6px 2px;border:0;background:none;text-align:left;cursor:pointer}
.hw-tap:active{background:#222a32}
.hw-sw{flex:none;width:30px;height:30px;border-radius:50%;box-shadow:0 0 0 1.5px rgba(255,255,255,.22) inset,0 1px 3px rgba(0,0,0,.4);opacity:.85}
.hw-sw.ic{display:flex;align-items:center;justify-content:center;background:#11161a;color:var(--muted);border-radius:9px;box-shadow:0 0 0 1px var(--line) inset}
.hw-sw.ic svg{width:22px;height:22px}
.hw-it.s-loose .hw-sw,.hw-it.s-cib .hw-sw{opacity:1;filter:none}
.hw-it.s-cib .hw-sw{box-shadow:0 0 0 2.5px var(--accent),0 0 0 1.5px rgba(255,255,255,.22) inset}
.hw-it.s-loose .hw-sw{box-shadow:0 0 0 2.5px #f2c200,0 0 0 1.5px rgba(255,255,255,.22) inset}
.hw-it.s-cib .hw-sw.ic,.hw-it.s-loose .hw-sw.ic{color:var(--text)}
.hw-txt{flex:1;min-width:0;display:flex;flex-direction:column}
.hw-txt b{font-size:14.5px;font-weight:600;color:#9aa6b3}
.hw-it.s-loose .hw-txt b,.hw-it.s-cib .hw-txt b{color:var(--text)}
.hw-txt small{font-size:12px;color:var(--muted)}
.hw-txt .hw-note{color:var(--accent2)}
.hw-st{flex:none;font-size:11px;font-weight:800;padding:2px 8px;border-radius:9px}
.hw-st:empty{display:none}
.hw-it.s-cib .hw-st{background:var(--accent);color:#fff}
.hw-it.s-loose .hw-st{background:#f2c200;color:#1a1a1a}
.hw-ed,.hw-x{flex:none;width:38px;height:38px;border:0;background:none;color:var(--muted);font-size:17px;cursor:pointer}
.hw-x{font-size:22px}
.hw-nbox{display:flex;gap:6px;padding:8px 0 10px;border-bottom:1px solid var(--line)}
.hw-nbox input{flex:1;min-width:0;background:#11161a;border:1px solid var(--line);border-radius:8px;color:var(--text);padding:8px 10px;font:16px/1.2 inherit;font-family:inherit}
.hw-nbox button{border:0;border-radius:8px;background:var(--accent);color:#fff;font-weight:700;padding:0 14px;cursor:pointer}
.hw-add{margin-top:6px}
.hwsheet .source a{color:var(--muted)}
/* écran de lancement */
.splash{position:fixed;inset:0;z-index:100;background:radial-gradient(120% 70% at 50% 42%,#1b2a22 0,var(--bg) 60%);display:flex;align-items:center;justify-content:center;transition:opacity .38s ease}
.splash.out{opacity:0;pointer-events:none}
.sp-in{text-align:center;animation:spin-in .5s ease-out both}
.sp-sub{margin-top:12px;font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
@keyframes spin-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
.hw-txt .hw-pr{color:#c5cfda;font-size:12px}
.hw-txt .hw-pr b{color:var(--accent);font-weight:700}
.cp-hwv{flex:none;font-size:12px;color:var(--muted);white-space:nowrap}
.hw-txt .hw-pr.na{color:#8a96a3;font-style:italic}
/* v39 : vue par région : titre toujours visible, jeu possédé dans une autre version signalé */
.tile.rv .cap{opacity:1}
.tile.oth{box-shadow:0 0 0 2px rgba(0,200,60,.45) inset}
.tile .othb{position:absolute;left:5px;top:5px;z-index:2;background:rgba(0,170,60,.92);color:#fff;font:800 10px/1 -apple-system,BlinkMacSystemFont,sans-serif;letter-spacing:.03em;padding:3px 6px;border-radius:9px;box-shadow:0 1px 4px rgba(0,0,0,.5);-webkit-transform:translateZ(0);transform:translateZ(0)}
.tile.oth img,.tile.oth .ph{filter:grayscale(.5) brightness(.75);opacity:.8}
/* v40 : écran de choix de la langue */
.langpk{position:fixed;inset:0;z-index:90;background:radial-gradient(ellipse at 50% 35%,#1d2a22 0,#14181c 70%);display:flex;align-items:center;justify-content:center;padding:calc(env(safe-area-inset-top) + 16px) 18px calc(env(safe-area-inset-bottom) + 16px);overflow:auto}
.langpk[hidden]{display:none}
.lp-card{width:100%;max-width:420px;text-align:center}
.lp-card .wordmark{margin-bottom:10px}
.lp-card h2{font-size:20px;margin:6px 0 4px;color:#e8eef3}
.lp-sub{color:#8a96a3;font-size:13px;margin:0 0 14px}
.lp-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0 16px}
.lp-it{display:flex;align-items:center;gap:10px;padding:12px 12px;border-radius:12px;background:#1c2228;border:1.5px solid #2a323a;color:#dfe6ee;font-size:15px;text-align:left;cursor:pointer}
.lp-it b{flex:1;font-weight:600}
.lp-fl{font-size:20px;line-height:1}
.lp-ck{opacity:0;color:var(--accent);font-weight:800}
.lp-it.on{border-color:var(--accent);background:#17271c}
.lp-it.on .lp-ck{opacity:1}

/* v41 : écran d'attente de la reconnaissance (plein écran, bloque l'interface) */
.rec-ov{position:fixed;inset:0;z-index:200;background:rgba(10,14,20,.72);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:24px;touch-action:none}
.rec-ov[hidden]{display:none}
.ro-box{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:18px;padding:22px 20px 16px;width:min(320px,100%);text-align:center;box-shadow:0 12px 40px rgba(0,0,0,.35)}
.ro-spin{width:44px;height:44px;margin:0 auto 14px;border-radius:50%;border:4px solid rgba(127,127,127,.25);border-top-color:var(--accent);animation:rospin .8s linear infinite}
@keyframes rospin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.ro-spin{animation-duration:2.4s}}
.ro-step{font-weight:700;font-size:17px}
.ro-sub{font-size:13px;opacity:.7;margin-top:4px;min-height:1em}
.ro-list{list-style:none;margin:14px 0 4px;padding:0;text-align:left;font-size:14px}
.ro-list li{padding:4px 0 4px 26px;position:relative;opacity:.45}
.ro-list li:before{content:"";position:absolute;left:4px;top:8px;width:10px;height:10px;border-radius:50%;border:2px solid currentColor;box-sizing:border-box}
.ro-list li.on{opacity:1;font-weight:600}
.ro-list li.on:before{border-color:var(--accent);border-top-color:transparent;animation:rospin .8s linear infinite}
.ro-list li.done{opacity:.8}
.ro-list li.done:before{content:"✓";border:0;top:3px;left:3px;width:auto;height:auto;color:var(--accent);font-weight:700}
.ro-cancel{margin-top:12px;min-height:44px;padding:0 22px;border-radius:12px;border:1px solid rgba(127,127,127,.4);background:transparent;color:inherit;font:inherit;font-weight:600}
.cr-det{display:inline-block;margin:2px 0;padding:1px 8px;border-radius:8px;background:rgba(0,192,48,.15);color:var(--accent);font-size:13px;font-weight:600}

/* v41 : « Chercher en ligne » par pays (⚙ choix multiple) */
.so .so-h{display:flex;align-items:center;justify-content:space-between}
.so-gear{min-width:36px;min-height:32px;border-radius:9px;border:1px solid var(--line);background:#1a2027;color:var(--text);font-size:16px;line-height:1;padding:0 8px}
.so-gear[aria-expanded="true"]{border-color:var(--accent);color:var(--accent)}
.so-pick{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 10px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#161b21}
.so-ph{width:100%;font-size:12px;color:var(--muted);margin-bottom:2px}
.so-chip{min-height:34px;padding:0 10px;border-radius:17px;border:1px solid var(--line);background:transparent;color:var(--text);font:inherit;font-size:13px}
.so-chip.on{background:rgba(0,192,48,.16);border-color:var(--accent);font-weight:700}
.so-c{margin:0 0 8px}
.so-cn{display:block;font-size:12px;color:var(--muted);margin:0 0 4px}
/* v42 : confiance du 1er choix, console détectée hors « Mes consoles » */
.cr-conf{display:inline-block;margin-left:4px;padding:0 7px;border-radius:8px;font-size:12px;font-weight:700;vertical-align:1px}
.cr-conf.hi{background:rgba(0,192,48,.18);color:var(--accent)}
.cr-conf.mid{background:rgba(255,190,0,.18);color:#e6b400}
.cr-conf.lo{background:rgba(255,90,90,.16);color:#ff7a7a}
.cr-out{color:var(--muted,#9aa3ad);font-size:12px}

/* v43 : carte « 1er choix » aussi compacte que les autres ; la pastille est posée sur le bord supérieur (position absolue, hors flux) */
.cr-list{padding-top:8px}
.cr-main{display:block;align-self:stretch}
.cr-row{display:flex;gap:12px;align-items:center;min-height:80px;width:100%}
.cr-t{flex:1;min-width:0}
.cr-t b{overflow-wrap:anywhere}
.cr-it.top{padding-top:8px}
.cr-1{position:absolute;top:-9px;right:12px;left:auto;bottom:auto;z-index:1;max-width:60%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10.5px;line-height:16px;font-weight:800;padding:0 8px;border-radius:8px;background:var(--accent);color:#fff;pointer-events:none}
/* v43 : région de la console possédée (pastille JP / US / PAL, touche = région suivante) */
.hw-rg{flex:none;min-width:38px;height:24px;margin:0 2px 0 6px;padding:0 7px;border-radius:12px;border:1px solid #3a4652;background:#1c2228;color:var(--text);font:800 11px/22px -apple-system,BlinkMacSystemFont,sans-serif;letter-spacing:.03em;cursor:pointer}
.hw-rg.JP{border-color:var(--jp);color:var(--jp)}
.hw-rg.NA{border-color:var(--na);color:var(--na)}
.hw-rg.EU{border-color:var(--eu);color:var(--eu)}
.hw-rg.none{border-style:dashed;color:#8a96a3;font-weight:700}
.hw-prg{color:#8a96a3}
/* v43 : version dont le prix est affiché (fiche jeu) + repli US + indice de compatibilité régionale */
.pr-rg{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 8px}
.pr-rg button{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:0 10px;border-radius:14px;border:1px solid var(--line);background:transparent;color:var(--text);font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.pr-rg button .fl{width:15px;height:10px}
.pr-rg button.on{background:#2a333d;border-color:#8a96a3}
.pr-fb{margin:6px 2px 0;color:#d9b45a;font-size:12px}
.rg-warn{margin:8px 2px 0;color:#d9b45a;font-size:12px;line-height:1.35}
.tile .rgw{position:absolute;right:5px;bottom:24px;z-index:2;font:800 11px/1 -apple-system,BlinkMacSystemFont,sans-serif;padding:3px 5px;border-radius:8px;background:rgba(20,16,0,.85);color:#f2c200;pointer-events:none;-webkit-transform:translateZ(0);transform:translateZ(0)}
.rgw-i{color:#f2c200}
/* v43 : pastilles de console sur une seule ligne (défilement horizontal), plus basses : la carte ne grandit que de ~30 px */
.cr-it.multi{gap:6px}
.cr-chips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:4px;padding-left:74px;margin-right:-8px;padding-right:8px}
.cr-chips::-webkit-scrollbar{display:none}
.cr-chip{flex:none;padding:3px 9px;font-size:11.5px;line-height:16px;border-radius:12px}

/* v44 : barre d'onglets toujours collée en bas (zone sûre comprise) ; masquée pendant la saisie au clavier tactile ; page au moins 100 % + 1 px */
body{min-height:calc(100vh + 1px);min-height:calc(100lvh + 1px)}
.tabbar{will-change:transform}
body.typing .tabbar{visibility:hidden;pointer-events:none}
/* v48 : mini-tutoriel (bulles ancrées sur « + », 📷, 🖼) */
.tips{position:fixed;inset:0;z-index:36;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);opacity:0;transition:opacity .18s ease;touch-action:none;-webkit-tap-highlight-color:transparent}
.tips.in{opacity:1}
.tp-hole{position:fixed;border-radius:12px;box-shadow:0 0 0 2px var(--accent),0 0 0 9999px rgba(5,8,10,.42);pointer-events:none}
.tp-bub{position:fixed;max-width:min(300px,calc(100vw - 20px));background:var(--panel);border:1px solid #2f5a3a;border-radius:12px;padding:10px 12px 8px;box-shadow:0 8px 24px rgba(0,0,0,.45);color:var(--text)}
.tp-bub p{margin:0 0 6px;font-size:14.5px;line-height:1.35}
.tp-row{display:flex;align-items:center;gap:10px}
.tp-skip{background:none;border:0;color:var(--muted);font:inherit;font-size:13px;padding:6px 2px;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.tp-n{flex:1;text-align:right;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
.tp-ok{background:var(--accent);border:0;color:#fff;font:inherit;font-size:13.5px;font-weight:700;border-radius:8px;padding:6px 12px;cursor:pointer}
.tp-ar{position:fixed;width:14px;height:14px;background:var(--panel);border:1px solid #2f5a3a;transform:rotate(45deg)}
.tp-ar.up{border-right:0;border-bottom:0}
.tp-ar.down{border-left:0;border-top:0}
/* v50 : onglet « Ma collection v2 » */
.tabbar button>span:last-child{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2px}
.c2-hh,.c2-vh{display:flex;align-items:center;gap:8px}
.c2-hh .cp-big{flex:1;min-width:0}
.c2-vh .cp-vbig{flex:1;min-width:0}
.c2-hh,.c2-vh{cursor:pointer;-webkit-tap-highlight-color:transparent}
.c2-fold.open .c2-ft svg{transform:rotate(180deg)}
.c2-bi{max-height:44px;overflow:hidden;-webkit-mask-image:linear-gradient(#000,rgba(0,0,0,.55) 50%,transparent);mask-image:linear-gradient(#000,rgba(0,0,0,.55) 50%,transparent);transition:max-height .35s ease}
.c2-fold:not(.open) .c2-bw{cursor:pointer;-webkit-tap-highlight-color:transparent}
.c2-fold:not(.open) .c2-bi{pointer-events:none}
.c2-fold.open .c2-bi{max-height:2400px;-webkit-mask-image:none;mask-image:none}
.c2-ft{display:flex;align-items:center;justify-content:center;gap:5px;width:calc(100% + 28px);margin:8px -14px -14px;padding:11px 0 12px;border:0;border-top:1px solid var(--line);border-radius:0 0 13px 13px;background:none;color:var(--accent);font:inherit;font-size:13px;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}
.cp-hero .c2-ft{margin-bottom:-10px;border-top-color:#2a3a30}
.c2-ft svg{width:17px;height:17px;transition:transform .25s ease}
.c2-ft:active{background:#ffffff0a}
.c2-sec{margin-top:14px}
.c2-fold .c2-sec:first-child{border-top:1px solid var(--line);padding-top:12px}
.c2-sec h4{margin:0 0 8px;font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.c2-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;column-gap:8px;row-gap:3px;width:100%;padding:5px 0;border:0;background:none;color:inherit;font:inherit;text-align:left}
.c2-btn{cursor:pointer}
.c2-l{display:flex;align-items:center;gap:7px;min-width:0;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c2-l .pk-ic{width:22px;height:22px;flex:none}
.c2-l .pk-ic svg{width:18px;height:18px}
.c2-row b{font-size:13.5px;font-variant-numeric:tabular-nums}
.c2-row small{font-size:11.5px;color:var(--muted);min-width:38px;text-align:right}
.c2-bar{grid-column:1/-1;display:block;height:4px;border-radius:2px;background:#2a323c;overflow:hidden}
.c2-bar i{display:block;height:100%;background:var(--accent)}
.c2-ul{margin:0;padding:0 0 0 18px;font-size:13.5px;line-height:1.6;color:#c5cfda}
.c2-avg{display:flex;justify-content:space-between;align-items:baseline;margin-top:14px;padding:9px 12px;border-radius:10px;background:#161b21;font-size:13px;color:#c5cfda}
.c2-avg b{font-size:16px;color:var(--text)}
.c2-top{margin:0;padding:0;list-style:none;counter-reset:t}
.c2-top li{counter-increment:t}
.c2-tgame{display:grid;grid-template-columns:22px 1fr auto;grid-template-areas:"n t v" "n s v";align-items:center;column-gap:8px;width:100%;padding:6px 0;border:0;border-bottom:1px solid var(--line);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.c2-top li:last-child .c2-tgame{border-bottom:0}
.c2-tgame::before{content:counter(t);grid-area:n;font-size:12px;font-weight:800;color:var(--accent);text-align:center}
.c2-tt{grid-area:t;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c2-tgame small{grid-area:s;font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:4px}
.c2-tgame b{grid-area:v;font-size:13.5px;color:var(--accent);font-variant-numeric:tabular-nums}
.c2-hw .cp-ch{margin-bottom:8px}
.c2-hrow{display:flex;gap:8px;align-items:stretch}
.c2-hs{flex:1;min-width:0;display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;touch-action:pan-x}
.c2-hs::-webkit-scrollbar{display:none}
.c2-hc{flex:0 0 calc((100% - 16px) / 2.2);scroll-snap-align:start;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:9px 9px 8px;border:1px solid var(--line);border-radius:12px;background:#161b21;color:inherit;font:inherit;text-align:left;cursor:pointer}
.c2-hc .pk-ic{margin-bottom:3px}
.c2-hc b{font-size:13.5px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c2-hc small{font-size:11px;color:var(--muted);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c2-hc .c2-hrg{color:var(--accent2);font-weight:700}
.c2-hc .c2-hrg:empty{display:none}
.c2-hc .cp-hwv{font-size:11.5px;color:#c5cfda}
.c2-hadd{flex:none;width:62px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1.5px dashed #4a5666;border-radius:12px;background:none;color:var(--text);cursor:pointer;font:inherit;padding:6px 2px}
.c2-hadd b{font-size:24px;font-weight:300;line-height:1}
.c2-hadd small{font-size:10.5px;color:var(--muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.c2-hadd:active,.c2-hc:active{transform:scale(.97)}
.c2page .cp-empty{padding:24px 10px 8px}
/* v51 */
.toast.act{display:flex;align-items:center;gap:12px;padding:8px 8px 8px 16px;max-width:calc(100vw - 24px);white-space:normal}
.t-act{flex:none;border:0;border-radius:14px;background:var(--accent);color:#fff;font:inherit;font-weight:700;font-size:13.5px;padding:6px 12px;cursor:pointer}
.gear-btn,.shr-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0}
.gear-btn .gear,.shr-btn .gear{width:21px;height:21px;display:block}
.gear-btn:active,.shr-btn:active{color:var(--text)}
.bk-line{margin:6px 4px 0;font-size:12px;color:var(--muted);text-align:center}
.impsheet h2{margin:0 0 10px}
.imp-t{width:100%;border-collapse:collapse;font-size:14px;margin-bottom:10px}
.imp-t th,.imp-t td{padding:7px 6px;border-bottom:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums}
.imp-t th:first-child{text-align:left;font-weight:600;color:#c5cfda}
.imp-t thead th{font-size:11.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);vertical-align:bottom}
.imp-t thead th small{display:block;font-weight:600;letter-spacing:0;text-transform:none;font-size:11px}
.imp-t td{font-weight:700}
.imp-p{font-size:13px;line-height:1.45;color:#c5cfda;margin:6px 2px}
.imp-p.sub{color:var(--muted);font-size:12px}
.bk-note{position:fixed;left:10px;right:10px;bottom:calc(env(safe-area-inset-bottom) + 70px);z-index:16;max-width:540px;margin:0 auto;display:flex;align-items:center;gap:10px;padding:10px 10px 10px 14px;border-radius:14px;background:#1f2a24;border:1px solid #2f5a3a;box-shadow:0 8px 24px rgba(0,0,0,.45)}
.bk-note p{flex:1;margin:0;font-size:13px;line-height:1.35}
.bk-note small{display:block;color:var(--muted);font-size:11.5px;margin-top:2px}
.bk-note div{display:flex;gap:6px;flex:none}
.bk-note button{border:0;border-radius:9px;font:inherit;font-size:13px;font-weight:700;padding:7px 10px;cursor:pointer}
.bk-later{background:none;color:var(--muted)}
.bk-go{background:var(--accent);color:#fff}
body.typing .bk-note{display:none}
.cr-it.top.unsure .cr-1{background:#3a4552;color:#c5cfda}
.cr-none{display:block;width:100%;margin:0 0 10px;padding:11px 12px;border-radius:10px;border:1px solid #3a4552;background:#252d36;color:var(--text);font:inherit;font-weight:700;font-size:13.5px;text-align:center;cursor:pointer}

/* v52 : rangée « Mes consoles » : cartes fantômes « Tu l'as ? », carte + verte pleine, ligne d'aide ; option « Jaquettes de la vue Toutes » avec Auto */
.c2-hhelp{margin:-2px 0 9px;font-size:12.5px;color:#c5cfda;line-height:1.35}
.c2-gh{border:1.5px dashed rgba(0,192,48,.5);background:rgba(0,192,48,.05)}
.c2-gh .pk-ic{position:relative;opacity:.6}
.c2-gh b{color:#c5cfda}
.c2-ghp{position:absolute;right:-7px;bottom:-5px;width:15px;height:15px;border-radius:50%;background:var(--accent);color:#fff;font:700 12px/15px -apple-system,BlinkMacSystemFont,sans-serif;text-align:center;font-style:normal;box-shadow:0 0 0 2px #1c2228}
.c2-gh .c2-ghq{color:var(--accent);font-weight:700}
.c2-gh.sub{opacity:.62;border-color:rgba(138,151,166,.45);background:none}
.c2-gh.sub .c2-ghq{color:#8fd7a4;font-weight:600}
.c2-gh:active{opacity:1}
.opt-cov{flex-wrap:wrap;row-gap:6px}
.opt-cov>span{flex:1 1 auto;min-width:0;padding-right:8px}
.opt-cov .seg button{padding:6px 10px}
.seg button.au{box-shadow:inset 0 0 0 1px rgba(0,192,48,.55);color:#cfe9d6}
.cov-auto{flex:0 0 100%;font-size:12px;color:var(--muted);text-align:right}
.cov-auto:empty{display:none}

/* v53 : poignée (grabber) + glisser vers le bas pour fermer : Options, import, Mes consoles, Consoles et variantes (la fiche d'un jeu avait déjà la sienne) */
.sh-handle{display:block;flex:none;width:calc(100% + 32px);margin:-18px -16px 6px;padding:9px 0 12px;border:0;background:none;cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent;position:relative}
.picker>.sh-handle{margin-top:-16px}
.sh-handle .grab{display:block}
.sh-handle:focus-visible{outline:2px solid var(--accent2);outline-offset:-4px;border-radius:12px}
.sheet.sh-drag{will-change:transform}
@media (prefers-reduced-motion:reduce){.sheet{transition:none!important}}

/* v53 : carte « Valeur estimée » repliée : barre jeux / consoles, points de couleur, jeu le plus cher ; plus de chevron d'en-tête (le pied « Voir le détail » ouvre) */
.cp-val .c2-bi{max-height:0}   /* repliée : plus d'aperçu estompé (la barre, les lignes et le jeu le plus cher le remplacent) */
.c2-vbar{display:flex;height:6px;border-radius:3px;overflow:hidden;background:#2a323c;margin:2px 0 7px;gap:2px}
.c2-vbar i{display:block;height:100%;min-width:3px}
.c2-vbar i:empty{}
.c2-vbar .g{background:var(--accent)}
.c2-vbar .h{background:var(--accent2)}
.c2-vbar i[style*="width:0%"]{display:none}
.c2-vl{display:flex;align-items:baseline;gap:7px}
.c2-dot{flex:none;width:8px;height:8px;border-radius:50%;align-self:center;display:inline-block}
.c2-dot.g{background:var(--accent)}
.c2-dot.h{background:var(--accent2)}
.c2-vtop{display:flex;align-items:center;gap:8px;width:100%;margin-top:6px;padding:3px 8px 3px 3px;border:1px solid var(--line);border-radius:9px;background:#161b21;color:inherit;font:inherit;text-align:left;cursor:pointer}
.c2-vimg{flex:none;width:22px;height:22px;border-radius:5px;overflow:hidden;background:#232b34;display:flex;align-items:center;justify-content:center;color:#f2c200;font-size:13px}
.c2-vimg img{width:100%;height:100%;object-fit:cover}
.c2-vt{flex:1;min-width:0;font-size:12.5px;color:#c5cfda;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c2-vtop b{flex:none;font-size:13px}

/* v53 : bulle « ? » de la valeur (remplace la note en bas) */
.c2-sec h4 .c2-q{margin-left:7px;vertical-align:middle;text-transform:none;letter-spacing:0}
.c2-pop{position:fixed;z-index:19;background:#2a3440;color:#dbe3ec;border:1px solid #3d4a59;border-radius:10px;padding:10px 12px;font-size:12.5px;line-height:1.45;box-shadow:0 8px 24px rgba(0,0,0,.55)}
.c2-pop[hidden]{display:none}
.c2-pop::before{content:"";position:absolute;top:-6px;left:calc(var(--ax,20px) - 6px);width:10px;height:10px;background:#2a3440;border-left:1px solid #3d4a59;border-top:1px solid #3d4a59;transform:rotate(45deg)}
.c2-pop.up::before{top:auto;bottom:-6px;transform:rotate(225deg)}

/* v53 : inventaire « tous mes jeux et consoles avec leurs prix » */
.c2-inv{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:14px;text-align:left;font-weight:700;color:var(--accent);border-color:#2a3a30}
.c2-inv span{flex:1;min-width:0}
.c2-inv i{font-style:normal;font-size:20px;line-height:1}
.invsheet #closeInv{flex:none;margin-top:12px}
.inv-head h2{margin:0 0 6px}
.inv-big{font-size:26px;font-weight:800;line-height:1.15}
.inv-sub{display:flex;flex-wrap:wrap;gap:2px 12px;font-size:12.5px;color:var(--muted);margin:2px 0 8px}
.inv-np{color:#f2c200}
.inv-ctl{display:flex;align-items:center;justify-content:space-between;gap:8px}
.inv-ctl .seg button{padding:5px 10px;font-size:13px}
.inv-chips{display:flex;gap:6px;overflow-x:auto;margin:8px -16px 6px;padding:0 16px 2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.inv-chips::-webkit-scrollbar{display:none}
.inv-chip{flex:none;border:1px solid var(--line);background:#161b21;color:var(--muted);border-radius:999px;padding:4px 11px;font-size:12px;font-weight:700;cursor:pointer}
.inv-chip.on{background:#334050;color:var(--text);border-color:#4a5666}
.inv-sh{display:flex;justify-content:space-between;align-items:baseline;margin:14px 0 2px;font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.inv-sh b{color:var(--text);font-size:13px;letter-spacing:0}
.inv-r{display:grid;grid-template-columns:42px 1fr auto;grid-template-areas:"i t v" "i s v";align-items:center;column-gap:10px;width:100%;padding:5px 0;border:0;border-bottom:1px solid var(--line);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;content-visibility:auto;contain-intrinsic-size:auto 52px}
.inv-th{grid-area:i;width:42px;height:42px;border-radius:7px;overflow:hidden;background:#232b34;display:flex;align-items:center;justify-content:center}
.inv-th img{width:100%;height:100%;object-fit:cover}
.inv-th .ph{font-size:11px;font-weight:800;color:var(--muted)}
.inv-th.ic{background:#161b21;border:1px solid var(--line);color:#aab6c3}
.inv-th.ic svg{width:26px;height:26px}
.inv-t{grid-area:t;font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.inv-r small{grid-area:s;font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden}
.inv-r b{grid-area:v;font-size:13.5px;color:var(--accent);font-variant-numeric:tabular-nums}
.inv-r b.np{color:var(--muted);font-weight:600}
.inv-r:active{background:#ffffff0a}

/* v54 : carte « jeux » repliée : ligne de mise en avant (région avec le plus de jeux) à la place de l'aperçu estompé, même hauteur (≤ 44 px) */
.cp-hero:not(.open) .c2-bi{max-height:0}
.c2-hl{margin-top:7px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.cp-hero.open .c2-hl{display:none}
.c2-hpill{display:flex;align-items:center;gap:8px;padding:3px 8px 3px 8px;border:1px solid var(--line);border-radius:9px;background:#161b21;min-height:30px;box-sizing:border-box}
.c2-hpill .fl{width:18px;height:12px}
.c2-hfl{flex:none;width:22px;display:flex;align-items:center;justify-content:center}
.c2-hpill .c2-vt{flex:1;min-width:0}
.c2-hpill b{flex:none;font-size:13px}

/* v57 : tri = bouton-icône à droite (menu sous la rangée, fondu à droite si les pastilles débordent, point vert si tri ≠ défaut) */
.tools2{position:relative;gap:8px}
.sortbtn{flex:none;position:relative;display:inline-flex;align-items:center;justify-content:center;width:34px;height:32px;padding:0;border-radius:16px;border:1px solid var(--line);background:var(--panel);color:var(--muted);cursor:pointer}
.sortbtn svg{width:17px;height:17px}
.sortbtn[aria-expanded=true]{border-color:var(--accent);color:var(--text)}
.sortbtn i{position:absolute;top:3px;right:3px;width:7px;height:7px;border-radius:50%;background:var(--accent);display:none}
.sortbtn.mod i{display:block}
.rbar{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 14px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 14px),transparent)}
.rbar.end{-webkit-mask-image:none;mask-image:none}
.sortpop{position:absolute;right:0;top:calc(100% + 4px);z-index:30;min-width:178px;padding:4px;border-radius:12px;background:#1b222b;border:1px solid var(--line);box-shadow:0 10px 28px rgba(0,0,0,.55)}
.sortpop[hidden]{display:none}
.sortpop h4{margin:6px 12px 2px;font:700 11px/1 inherit;font-family:inherit;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.sortpop button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;height:42px;padding:0 12px;border:0;border-radius:8px;background:none;color:var(--text);font:600 15px/1 inherit;font-family:inherit;text-align:left;cursor:pointer}
.sortpop button.on{color:var(--accent)}
.sortpop button .tick{visibility:hidden}.sortpop button.on .tick{visibility:visible}
/* v57 : saisie dans la recherche (écran tactile) -> en-tête compact (console, progression et région/tri masqués) pour laisser la place aux résultats */
body.srch .cbar,body.srch .progress,body.srch .tools2{display:none}
body.srch .tabs{margin-top:6px}
/* v57 : feuille d'import : bilan de fusion et confirmation de restauration */
.imp-sum{font-size:19px;font-weight:700;line-height:1.35;margin:6px 2px 4px;color:var(--text)}
.imp-warn{color:#ffb4a8}
.imp-warn b{font-weight:700}
/* v57 : historique de la valeur : courbe discrète dans la colonne de droite de la ligne du total (la carte repliée ne grandit pas) */
.c2-vhist{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:3px;min-width:0;max-width:56%;padding-top:2px}
.c2-vhist:empty{display:none}
.vh-lab{display:block;max-width:100%;font-size:10.5px;line-height:1.1;font-weight:700;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}
.c2-vhist[data-dir=up] .vh-lab{color:var(--accent)}
.c2-vhist[data-dir=down] .vh-lab{color:#ff8a8a}
.vh-spark{display:block;touch-action:pan-y;cursor:crosshair}
.vh-r{margin-top:6px}
.vh-note{margin:8px 2px 0;font-size:11.5px;line-height:1.4;color:var(--muted)}
/* v57 : carte de collection partageable */
.cp-act{display:flex;align-items:center;gap:2px}
.cp-act .icon-btn{margin-right:0}
.cp-act .gear-btn:last-child{margin-right:-8px}
.gear-btn[hidden],.shr-btn[hidden]{display:none}
.sharesheet{max-height:94vh;overflow:auto}
.sharesheet h2{margin:0 0 10px}
.sh-prev{position:relative;display:flex;justify-content:center;margin-bottom:6px}
.sh-prev canvas{display:block;width:auto;max-width:100%;height:min(52vh,calc((100vw - 32px) * 1.25));aspect-ratio:1080/1350;border-radius:12px;border:1px solid var(--line);box-shadow:0 6px 20px rgba(0,0,0,.45);background:#14181c}
.sh-wait{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px}
.sh-wait[hidden]{display:none}
.sh-tg{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 2px 0;font-size:15px;font-weight:600;cursor:pointer}
.sh-tg input{position:absolute;opacity:0;pointer-events:none}
.sh-tg i{position:relative;flex:none;width:48px;height:28px;border-radius:14px;background:#33404d;transition:background .15s}
.sh-tg i::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .15s}
.sh-tg input:checked+i{background:var(--accent)}
.sh-tg input:checked+i::after{transform:translateX(20px)}
.sh-tg input:focus-visible+i{outline:2px solid var(--accent2);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.sh-tg i,.sh-tg i::after{transition:none}}
/* ===== v58 : « Mes consoles et variantes » : lignes sur 2 lignes (maquette « Option 2 ») + explication derrière « ? ===== */
.hw-title{position:relative}
.hw-title .hw-q{margin-left:auto;flex:none;width:28px;height:28px;font-size:15px;align-self:flex-start}
.pk-head{position:relative}
.hw-pop{left:0;right:0;top:auto;margin-top:6px;position:relative;font-size:12.5px;line-height:1.5}
.hw-it.v2{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-rows:auto auto;column-gap:12px;row-gap:1px;align-items:center;position:relative;min-height:58px;padding:8px 2px;border-bottom:1px solid var(--line)}
.hw-it.v2 > .hw-tap{position:absolute;inset:0;z-index:0;width:100%;min-height:0;padding:0;margin:0;border-radius:6px}
.hw-it.v2 > .hw-sw{grid-column:1;grid-row:1 / span 2;position:relative;z-index:1;pointer-events:none}
.hw-it.v2 > .hw-nm{grid-column:2;grid-row:1;position:relative;z-index:1;pointer-events:none;font-size:15px;font-weight:600;color:#9aa6b3;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;align-self:end}
.hw-it.v2.s-loose > .hw-nm,.hw-it.v2.s-cib > .hw-nm{color:var(--text)}
.hw-it.v2 > .hw-st{grid-column:3;grid-row:1 / span 2;position:relative;z-index:1;pointer-events:none;justify-self:end}
.hw-it.v2 > .hw-st.plus{display:inline-flex;align-items:center;justify-content:center;width:30px;height:26px;padding:0;border-radius:13px;border:1.5px dashed #46515e;background:none;color:var(--muted);font-size:17px;font-weight:600}
.hw-it.v2 > .hw-x{grid-column:4;grid-row:1 / span 2;position:relative;z-index:1}
.hw-l2{grid-column:2;grid-row:2;position:relative;z-index:1;pointer-events:none;display:flex;align-items:center;gap:0;min-width:0;font-size:12.5px;line-height:1.3;color:var(--muted);white-space:nowrap;overflow:hidden}
.hw-l2 > * + *::before{content:"·";color:#6b7785;margin:0 6px;font-weight:400;font-style:normal}
.hw-l2 > button + button::before,.hw-l2 > button::before{pointer-events:none}
.hw-l2 > span,.hw-l2 > button{flex:none}
.hw-l2 .pp b{color:#c5cfda;font-weight:700}
.hw-l2 .pp.na{font-style:italic;color:#8a96a3}
.hw-l2 .fb{font-style:normal;color:#8a96a3}
.hw-l2 .hw-rg{pointer-events:auto;height:20px;min-width:0;margin:0;padding:0 7px;border-radius:10px;font:800 11px/18px -apple-system,BlinkMacSystemFont,sans-serif;position:relative}
.hw-l2 .hw-rg::after,.hw-l2 .hw-nt::after{content:"";position:absolute;inset:-8px -4px}
.hw-l2 .hw-nt{pointer-events:auto;position:relative;width:auto;height:auto;padding:0;margin:0;font-size:12.5px;color:var(--muted);flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;line-height:1.3}
.hw-l2 .hw-nt.has{color:var(--accent2)}
.hw-l2 .hw-rg::before{content:none}
.hw-l2 > .hw-rg:first-child + *::before{margin:0 6px}
.hw-l2 > .pp{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
.hw-l2 .hw-nt:not(.has){flex:none}
.hw-l2 .hw-nt:not(.has){overflow:visible;text-overflow:clip}
.hw-l2 .hw-nt.has{flex:0 1000 auto}
.hw-l2 > .pp{flex:0 100 auto}
.hw-l2 .hw-nt.has{flex:0 1000 auto}
.hw-l2:has(.hw-nt.has) > .pp{flex:none}
/* ===== v59 : barre des consoles : réorganisation par appui long + glisser ===== */
.cbtn{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.cbtn.slide{transition:transform .2s cubic-bezier(.2,.8,.3,1)}
.cbtn.lift{position:relative;z-index:3;transition:none;box-shadow:0 8px 18px rgba(0,0,0,.55),0 0 0 1px var(--accent) inset;border-color:var(--accent);background:#25382d}
.cscroll.dragging{scroll-behavior:auto;-webkit-mask-image:none;mask-image:none;touch-action:none}
/* ===== v59 : dialogues de l'appli (UI.alert / confirm / prompt) ===== */
.dlg-bd{position:fixed;inset:0;z-index:90;background:rgba(5,8,10,.66);display:flex;align-items:flex-start;justify-content:center;padding:max(env(safe-area-inset-top),14px) 18px max(env(safe-area-inset-bottom),14px);padding-top:max(env(safe-area-inset-top),16vh);animation:dlgfade .16s ease-out}
.dlg-bd[hidden]{display:none}
.dlg{width:100%;max-width:340px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px 18px 14px;box-shadow:0 18px 50px rgba(0,0,0,.6);animation:dlgpop .18s cubic-bezier(.2,.9,.3,1.1)}
.dlg h3{margin:0 0 6px;font-size:17px;line-height:1.3;font-weight:700;color:var(--text)}
.dlg p{margin:0 0 10px;font-size:14px;line-height:1.45;color:var(--muted)}
.dlg input{display:block;width:100%;box-sizing:border-box;margin:12px 0 4px;background:#11161a;border:1px solid var(--line);border-radius:10px;color:var(--text);padding:11px 12px;font:16px/1.2 inherit;font-family:inherit;outline:0}
.dlg input:focus{border-color:var(--accent)}
.dlg-act{display:flex;flex-direction:row-reverse;gap:10px;margin-top:16px}
.dlg-act .wide{flex:1;margin:0}
.wide.dlg-danger{background:#d93a3a;color:#fff;border-color:#d93a3a;font-weight:700}
.dlg-act #dlgNo{background:none;color:var(--muted)}
@keyframes dlgfade{from{opacity:0}to{opacity:1}}
@keyframes dlgpop{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
.dlg input[hidden],.dlg button[hidden]{display:none}
/* ===== v59 : anneau de chargement discret sur les jaquettes en cours de chargement (classe .ld posée 150 ms après leur arrivée près de l'écran, retirée au chargement / à l'erreur) ===== */
.tile.ld::after{content:"";position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px 0 0 -11px;box-sizing:border-box;border-radius:50%;border:2px solid rgba(255,255,255,.06);border-top-color:rgba(255,255,255,.2);pointer-events:none;animation:rfspin .9s linear infinite,rffade .25s ease-out both}
.item.ld{position:relative}
.item.ld::before{content:"";position:absolute;left:25px;top:50%;width:16px;height:16px;margin-top:-8px;box-sizing:border-box;border-radius:50%;border:2px solid rgba(255,255,255,.06);border-top-color:rgba(255,255,255,.2);pointer-events:none;z-index:1;animation:rfspin .9s linear infinite,rffade .25s ease-out both}
@keyframes rfspin{to{transform:rotate(360deg)}}
@keyframes rffade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.tile.ld::after,.item.ld::before{animation:rffade .25s ease-out both}}
/* v60 : graphique de l'historique de valeur */
.vhsheet{max-height:94vh;overflow:auto;-webkit-overflow-scrolling:touch}
.vhs-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.vhs-top h2{margin:0}
.vhs-per{margin-bottom:12px}
.vhs-per button{flex:1;padding:7px 6px;font-size:13.5px;font-weight:700}
.vhs-hd{min-height:62px}
.vhs-big{font-size:28px;font-weight:800;letter-spacing:-.3px;line-height:1.15;font-variant-numeric:tabular-nums}
.vhs-sub{margin-top:3px;font-size:13px;color:var(--muted);min-height:18px}
.vhs-sub b{font-weight:800}
.vhs-sub b.up,.vhs-row b.up{color:var(--accent)}
.vhs-sub b.down,.vhs-row b.down{color:#ff8a8a}
.vhs-sub b.flat,.vhs-row b.flat{color:#a9b4bf}
.vhs-date{color:var(--text);font-weight:700}
.vhs-chart{margin:8px -4px 0;touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair;-webkit-tap-highlight-color:transparent;min-height:0}
.vhs-chart:empty{display:none}
.vhs-chart svg{display:block;width:100%;height:auto;overflow:visible}
.vhs-gl{stroke:#2a323b;stroke-width:1;stroke-dasharray:2 4}
.vhs-yt,.vhs-xt{fill:#7f8b97;font-size:10.5px;font-weight:600;font-variant-numeric:tabular-nums}
.vhs-mk{stroke:#cfd8e0;stroke-width:1.2;stroke-opacity:.8}
.vhs-msg{margin:6px 2px 10px;font-size:12px;line-height:1.4;color:var(--muted);min-height:16px}
.vhs-rows{margin:0 0 12px;padding:10px 12px;border-radius:12px;background:#11161a;border:1px solid var(--line)}
.vhs-rows:empty{display:none}
.vhs-cap{font-size:11px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.vhs-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:5px 0;font-size:13.5px}
.vhs-row+.vhs-row{border-top:1px solid #1d242b}
.vhs-row span{color:var(--text);min-width:0}
.vhs-row b{white-space:nowrap;font-variant-numeric:tabular-nums}
.c2-vh[role=button]:focus-visible{outline:2px solid var(--accent2);outline-offset:2px;border-radius:8px}
.vhs-yt{paint-order:stroke;stroke:var(--panel);stroke-width:3px;stroke-linejoin:round}
/* v61 : note « exemplaire JP déplacé » (import d'un fichier d'avant la v61) */
.imp-mv{border-left:3px solid var(--accent);padding:2px 0 2px 8px;color:#d7e3ef}

/* v62 : tags — suggestions sous la barre de recherche, résultats « # » groupés par console, pastilles de la fiche */
.tagsug{position:absolute;left:0;right:-8px;top:calc(100% + 4px);z-index:30;background:#222b35;border:1px solid #3a4756;border-radius:12px;box-shadow:0 10px 28px rgba(0,0,0,.55);overflow:hidden}
.tagsug[hidden]{display:none}
.tagsug button{display:flex;align-items:baseline;justify-content:space-between;gap:10px;width:100%;padding:10px 14px;border:0;border-bottom:1px solid #2f3945;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer;touch-action:manipulation}
.tagsug button:last-child{border-bottom:0}
.tagsug button:active{background:#2c3846}
.tagsug .sn{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tagsug .sc{flex:none;color:var(--muted);font-size:12px}
.tchips{display:flex;flex-wrap:wrap;gap:8px}
.tchip{display:inline-flex;align-items:center;max-width:100%;padding:5px 11px;border-radius:999px;border:1px solid #34414f;background:#1c242d;color:#c9d4df;font:inherit;font-size:12.5px;font-weight:600;line-height:1.3;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
button.tchip:active{background:#2a3644;border-color:var(--accent2)}
.tchip.k-franchise,.tchip.k-series{border-color:#2d5b44;color:#9fd9b8}
.tchip.on{cursor:default;border-color:var(--accent);color:#9fd9b8;background:#16241d}
body.tagmode .progress,body.tagmode .tools2,body.tagmode .tabs,body.tagmode .ownseg,body.tagmode .hint{display:none!important}
.tg-top{display:flex;flex-direction:column;gap:10px;padding:0 2px 4px}
.tg-tags{display:flex;flex-wrap:wrap;gap:8px}
.tg-info{margin:8px 2px 0;color:var(--muted);font-size:13px}
.tg-g h3{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:16px 0 0;padding:8px 6px;background:var(--bg,#14181c);border-bottom:1px solid var(--line);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tg-g h3 i{font-style:normal;font-weight:700;color:#8fa0b2}
.tg-g[hidden]{display:none}
.tg-seg{display:flex}
.tg-seg button{flex:1;min-width:0}

/* v63 : fiche — « Chercher en ligne » (maintenant après les tags) reprend le style des autres titres de section (Ma version, Sorties, Prix estimés, Tags : 12 px, gras 700, interlettrage .08em, majuscules, couleur atténuée) */
.d-shop .jl-h{font-size:12px;font-weight:700;letter-spacing:.08em;margin:0 0 8px;color:var(--muted);text-transform:uppercase}
.pop .pop-n{display:block;margin-top:6px}

/* v63 : résultats « # » : même rythme vertical que le Catalogue (barre -> filet 10 px ; filet -> 1er élément 14 px = padding de main ; pastille -> sélecteur 10 px ; sélecteur -> compteur 12 px ; compteur -> 1er groupe 6 px) */
body.tagmode .top{padding-bottom:10px}
.tg-g:first-of-type h3{margin-top:6px}

/* v63 : dialogues avec un nom dans la phrase : texte normal atténué, nom du jeu en gras blanc, console en gras plus discret */
.dlg h3.rich{font-size:15px;font-weight:400;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}
.dlg h3.rich strong{font-weight:700}
.dlg h3.rich .n-g{color:var(--text)}
.dlg h3.rich .n-c{color:#c4ced9;font-weight:600}

/* v63 : pastille de tag active = nom + croix (zone tactile 32 x 32 px sans agrandir la pastille) */
.tchip.on{padding-right:3px}
.tchip.on .tx{flex:none;width:32px;height:32px;margin:-8px -2px -8px 2px;padding:0;border:0;background:none;color:inherit;font:inherit;font-size:19px;line-height:32px;text-align:center;opacity:.75;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border-radius:50%}
.tchip.on .tx:active{opacity:1;background:rgba(255,255,255,.1)}
.tg-top .tg-tags{margin-top:0}
.tg-root.empty .tg-top{padding:0 0 12px;align-items:center}

/* v63 : en mode « # » l'en-tête reste compact (barre de recherche seule) qu'elle ait le focus ou non : plus de saut de 54 px quand on touche une ligne (le clavier se ferme) */
body.tagmode .cbar{display:none!important}

/* v64 : « N sans cote (comptent 0) » : mention discrète dans la ligne « dont jeux » */
.c2-nocote{color:#8793a0}
/* v64 : Game & Watch : en-têtes de série, crédit photo, consoles exclues de la reconnaissance */
.ser-h{grid-column:1/-1;display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:14px 0 0;padding:7px 4px;border-bottom:1px solid var(--line);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ser-h:first-child{margin-top:0}
.ser-h i{font-style:normal;font-weight:700;color:#8fa0b2}
.list .ser-h{margin:14px 0 4px}
.d-credit{margin:10px 2px 4px;font-size:11.5px;color:#8793a0;line-height:1.45}
.d-credit a{color:inherit;text-decoration:underline}
.cs-nr{margin:6px 2px 0;font-size:12px;color:#8793a0;line-height:1.4}
.list .ser-h:first-child{margin-top:0}
/* v65 : recherche photo indisponible (hors ligne au 1er usage) : message + Réessayer */
.cam-off{position:absolute;left:16px;right:16px;top:50%;transform:translateY(-50%);z-index:6;background:#1c2228;border:1px solid var(--line);border-radius:14px;padding:18px 16px 16px;text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.cam-off[hidden]{display:none}
.cam-off p{margin:0 0 14px;font-size:15px;line-height:1.45;color:#e6edf3}
.cam-off button{min-height:44px;padding:10px 22px;border:0;border-radius:12px;background:var(--accent);color:#fff;font:inherit;font-size:15px;font-weight:800;cursor:pointer}
/* v65 : bandeaux d'alerte persistants (enregistrement impossible, état illisible) */
.bans{position:fixed;left:8px;right:8px;top:calc(env(safe-area-inset-top) + 8px);z-index:90;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.save-ban{pointer-events:auto;background:#3a2410;border:1px solid #c77d1a;border-radius:14px;padding:12px 14px;box-shadow:0 8px 24px rgba(0,0,0,.5);color:#ffe7c2}
.save-ban[hidden]{display:none}
.save-ban p{margin:0 0 10px;font-size:14px;line-height:1.4}
.save-ban div{display:flex;gap:8px;flex-wrap:wrap}
.save-ban button{min-height:40px;padding:8px 16px;border-radius:10px;border:1px solid #c77d1a;background:transparent;color:#ffe7c2;font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.save-ban button:first-child{background:#c77d1a;color:#1a1005;border-color:#c77d1a}
/* v66 : loupe dans le champ de recherche (à gauche, couleur du placeholder, visible au focus et pendant la saisie comme sur iOS) */
.sbox .sicon{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:#a9a9a9;pointer-events:none;z-index:1}
.sbox input{padding-left:34px!important}
.tools input::placeholder{color:#a9a9a9;opacity:1}

/* ===== v66 : toast d'action = carte pleine largeur (marges des bandeaux : 8 px), texte flex:1 / min-width:0, boutons sous le texte s'il est long (alignés à droite) ===== */
.toast.act{left:8px;right:8px;transform:none;max-width:none;display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:12px 12px 12px 16px;border-radius:16px;font-size:14px;line-height:1.4;white-space:normal}
.toast.act .t-msg{flex:1 1 160px;min-width:0;overflow-wrap:anywhere}
.toast.act .t-btns{flex:none;display:flex;gap:8px;margin-left:auto}
.toast.act.col{flex-direction:column;align-items:stretch}
.toast.act.col .t-msg{flex:none}
.toast.act.col .t-btns{align-self:flex-end;flex-wrap:wrap;justify-content:flex-end}
.toast.act .t-act,.toast.act .t-no{min-height:36px;padding:8px 14px;border-radius:12px;font:inherit;font-size:14px;font-weight:700;white-space:nowrap;cursor:pointer}
.toast.act .t-no{border:1px solid #4a5867;background:transparent;color:#d5dde5}
.toast.act .t-no:active{background:rgba(255,255,255,.08)}
.toast.prog{display:grid;grid-template-columns:1fr auto;gap:8px 12px}
.toast.prog .t-pct{font-variant-numeric:tabular-nums;color:#c9d4df;font-weight:700}
.toast.prog .t-bar{grid-column:1/-1;height:6px;border-radius:3px;background:rgba(255,255,255,.12);overflow:hidden}
.toast.prog .t-bar i{display:block;height:100%;width:0;background:var(--accent);border-radius:3px;transition:width .4s ease-out}

/* ===== v66 : recherche « # » : console en cours de chargement (anneau + texte) ou en échec (« Réessayer ») ; jamais un groupe vide muet ===== */
.tg-ld{display:flex;align-items:center;gap:10px;padding:14px 6px;color:var(--muted);font-size:13px}
.tg-ld .spin{width:16px;height:16px;box-sizing:border-box;border-radius:50%;border:2px solid rgba(255,255,255,.12);border-top-color:var(--accent);animation:rfspin .9s linear infinite;flex:none}
.tg-err{display:flex;align-items:center;gap:12px;padding:12px 6px;color:var(--muted);font-size:13px}
.tg-err span{flex:1;min-width:0}
.tg-err button{flex:none;min-height:36px;padding:6px 14px;border-radius:10px;border:1px solid var(--line);background:#1a2027;color:var(--text);font:inherit;font-size:13.5px;font-weight:700;cursor:pointer}
@media (prefers-reduced-motion:reduce){.tg-ld .spin{animation-duration:2.4s}}

/* ===== v66 : anneau de chargement des jaquettes plus lisible sur iPhone (fond noir), visible aussi pendant les réessais ===== */
.tile.ld::after,.item.ld::before{border-color:rgba(255,255,255,.12);border-top-color:rgba(255,255,255,.55)}
/* v66 : toast simple : largeur = son texte (plus de rétrécissement à 50 % de l'écran dû à left:50 %), au plus l'écran moins 2 × 8 px */
.toast{width:max-content;max-width:calc(100vw - 16px);box-sizing:border-box;text-align:center;line-height:1.4}
.toast.act{width:auto;text-align:left}

/* ===== v66 : échelle d'espacement unique de la fiche (mesurée dans WebKit, fr 390 / ja 375) =====
   titre de section -> contenu : 8 px ; fin d'une section -> titre suivant : 20 px ; libellé interne (pays, « Prix relevés… ») -> contenu : 8 px ;
   dernière section -> « Fermer » : 20 px. Les commandes posées sur la ligne du titre (engrenage, € / $ / ¥) n'agrandissent plus cette ligne :
   elles débordent verticalement, centrées sur le titre (zone tactile de l'engrenage 44 × 44 px). */
.d-sec{margin-top:20px}
.d-sec > :last-child,.d-sec .jp-links.so,.d-sec #soBox > :last-child{margin-bottom:0}
#dPrices > .d-ph{display:flex;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:8px;height:17px;margin:0 0 8px;font-size:inherit;color:inherit}
#dPrices > .d-ph h3{margin:0}
#dPrices > .d-ph .seg{margin:-6px 0}
.d-shop .jp-links.so{margin:0}
.d-shop .so .so-h{height:17px;margin:0 0 8px;overflow:visible}
.d-shop .so-gear{position:relative;width:44px;height:44px;min-width:44px;min-height:44px;margin:-13.5px -12px -13.5px 0;padding:0;border:0;border-radius:12px;background:none;color:var(--muted);display:flex;align-items:center;justify-content:center;flex:none}
.d-shop .so-gear .ig{width:20px;height:20px;display:block}
.d-shop .so-gear:active{background:rgba(255,255,255,.07);color:var(--text)}
.d-shop .so-gear[aria-expanded="true"]{color:var(--accent);background:rgba(0,192,48,.08)}
.d-shop .so-c{margin:0 0 12px}
.d-shop .so-c:last-child{margin-bottom:0}
.d-shop .so-cn{margin:0 0 8px;line-height:15px}
#closeDetail{margin-top:20px}
/* engrenage dans un texte (« Importer une sauvegarde », écran des langues) */
.ig{display:inline-block;width:1.05em;height:1.05em;vertical-align:-.17em}
/* v66 : filtres de région -> onglets GRILLE / MES JEUX / MANQUANTS : 24 -> 20 px (bas des pastilles -> texte des onglets = écart section -> section) ; tailles des boutons inchangées */
.tabs{margin-top:8px}
/* v66 : Ma collection : même échelle que la fiche : titre de carte -> contenu 8 px (le sélecteur € / $ / ¥ n'agrandit plus la ligne du titre), aide -> contenu 8 px */
.cp-ch{margin-bottom:8px;min-height:18px}
.cp-val .cp-ch{height:18px}
.cp-val .cp-ch .seg{margin:-6px 0}
.c2-hw .cp-ch{margin-bottom:8px}
.c2-hhelp{margin:0 0 8px}
/* v66 : « Fermer » des feuilles (fiche, réglages, historique de valeur) : 20 px après le dernier contenu (= écart section -> section) */
#closeSheet,#vhsClose{margin-top:20px}
/* v66 : info-bulle « ? » : visuel 20 px inchangé, zone tactile 44 px */
.qbtn{position:relative}
.qbtn::after{content:"";position:absolute;left:-12px;right:-12px;top:-12px;bottom:-12px}
/* v66 : carte « + Ajouter » (consoles de Ma collection) : s'élargit au libellé (allemand « Hinzufügen » n'est plus coupé), 62 px au minimum, jamais d'ellipse */
.c2-hadd{width:auto;min-width:62px;padding:0 7px;box-sizing:border-box}
.c2-hadd small{overflow:visible;text-overflow:clip;max-width:none}
/* v67 : exemplaires en plus (doubles), version discrète : lien gris, ligne compacte par double, total discret, pastille ×2 */
.xw{display:flex;flex-direction:column;align-items:stretch}
.xa{align-self:flex-start;border:0;background:none;padding:6px 0;margin:0;color:#7d8996;font:inherit;font-size:13px;font-weight:600;cursor:pointer;text-align:left}
.xe{display:flex;align-items:center;gap:6px;padding:2px 0 4px;min-width:0}
.xe .xe-n{flex:none;font-size:12.5px;color:#9aa6b3;white-space:nowrap}
.xe .xe-r{position:relative;flex:none;display:flex;align-items:center;gap:5px;height:32px;padding:0 8px;border:1px solid var(--line);border-radius:9px;background:#11161a;color:#c5cfda;font-size:12.5px;font-weight:600;white-space:nowrap;cursor:pointer}
.xe .xe-r .fl{transform:scale(.85)}
.xe .xe-r i{font-style:normal;color:#7d8996;font-size:10px}
.xe .xe-r select{position:absolute;inset:0;width:100%;height:100%;opacity:0;border:0;margin:0;padding:0;font-size:16px;cursor:pointer;-webkit-appearance:none;appearance:none}
.xe .d-state{flex:1;margin-top:0;min-width:0}
.xe .d-state button{padding:6px 2px;font-size:12px;min-width:0}
.xe .xe-x{flex:none;width:32px;height:32px;margin:0 -4px 0 -2px;border:0;border-radius:50%;background:none;color:#7d8996;font-size:18px;line-height:1;padding:0;cursor:pointer}
.xt{margin:2px 0 0;font-size:12px;color:#7d8996}
[data-x~="loose"] .cell.k-loose .lab::after,[data-x~="cib"] .cell.k-cib .lab::after{content:var(--yours," · yours");color:var(--text)}
.tile .xn{position:absolute;right:5px;top:5px;z-index:3;font:800 11px/1 -apple-system,BlinkMacSystemFont,sans-serif;padding:3px 6px;border-radius:8px;background:rgba(10,14,18,.88);color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.25) inset;pointer-events:none;-webkit-transform:translateZ(0);transform:translateZ(0)}
.item .xn.li{flex:none;font:800 11px/1 -apple-system,BlinkMacSystemFont,sans-serif;padding:3px 6px;border-radius:8px;background:#1b222a;color:#dfe6ee;box-shadow:0 0 0 1px rgba(255,255,255,.18) inset}
/* v67 : placeholder « Nom du jeu / #franchise… » : champ vide = le × est masqué, sa place (padding droit 34 px) sert au placeholder ; dès la saisie, padding d'origine.
   Sous 380 px, es / pt (textes les plus longs) : placeholder seul 1 px plus petit (le texte saisi garde 16 px : pas de zoom iOS) */
.sbox input:placeholder-shown{padding-right:10px!important}
@media (max-width:379.98px){html:lang(es) .sbox input::placeholder,html:lang(pt) .sbox input::placeholder{font-size:15px}}
/* v68 : « Consoles et accessoires » : onglets Variantes | Accessoires, lignes d'accessoires (une par état, quantité − n +), recherche */
.acc-seg{display:flex;margin:10px 0 2px;background:#11161a;border-radius:10px;padding:3px}
.acc-seg button{flex:1;min-width:0;min-height:36px;display:flex;align-items:center;justify-content:center;border:0;background:none;padding:6px;border-radius:8px;color:var(--muted);font:inherit;font-size:14px;font-weight:600;white-space:nowrap;cursor:pointer}
.acc-seg button span{overflow:hidden;text-overflow:ellipsis;min-width:0}
.acc-seg button.on{background:#334050;color:var(--text)}
.acc-seg button i{flex:none;font-style:normal;font-size:12px;margin-left:5px;padding:1px 7px;border-radius:9px;background:#252d36;color:#c5cfda}
.acc-seg button.on i{background:#46515e}
.hw-sw.img{border-radius:9px;background:#fff center/contain no-repeat;opacity:.9;box-shadow:0 0 0 1px var(--line) inset}
.hw-it.v2.acc{grid-template-columns:auto minmax(0,1fr) auto auto}
.hw-it.v2.acc > .hw-st{pointer-events:none}
.acc-q{grid-column:4;grid-row:1 / span 2;position:relative;z-index:2;display:flex;align-items:center;border:1px solid var(--line);border-radius:15px;height:30px;background:#161b21}
.acc-q button{position:relative;width:30px;height:28px;border:0;background:none;color:#c5cfda;font-size:17px;font-weight:700;padding:0;cursor:pointer}
.acc-q button::after{content:"";position:absolute;inset:-8px -2px}
.acc-q b{min-width:18px;text-align:center;font-size:13.5px}
.hw-it.acc .xb{grid-column:2 / span 3;grid-row:3;justify-self:start;position:relative;z-index:2;border:0;background:none;padding:6px 0 2px;color:#8a96a3;font:inherit;font-size:12.5px;font-weight:600;white-space:nowrap;cursor:pointer}
.hw-it.acc .xb::after{content:"";position:absolute;inset:-6px -8px}
.acc-help{margin:10px 0 6px;font-size:13px;color:#c5cfda;line-height:1.4}
.acc-srch{display:flex;align-items:center;gap:8px;margin:12px 0 4px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#11161a;color:var(--text)}
.acc-srch svg{width:17px;height:17px;flex:none;color:var(--muted)}
.acc-srch input{flex:1;min-width:0;height:42px;border:0;background:none;color:var(--text);font:inherit;font-size:16px;outline:none;-webkit-appearance:none;appearance:none}
.acc-srch input::placeholder{color:var(--muted)}
.acc-srch:focus-within{border-color:#46515e}
.acc-more{display:block;width:100%;min-height:44px;margin:2px 0 0;padding:10px 0;border:0;background:none;color:var(--accent);font:inherit;font-size:14px;font-weight:600;text-align:left;cursor:pointer}
.acc-tag{font-size:10.5px;font-weight:800;letter-spacing:.02em;padding:1px 6px;border-radius:7px;background:#252d36;color:#9aa6b3}
.acc-sec .hw-mh small{display:block}
.c2-hc small .c2-hrg.in{display:inline;font-size:inherit}
/* v68 : menu déroulant maison (remplace le <select> natif) : sombre comme les cartes, ancré au bouton */
.dd{position:fixed;z-index:60;max-width:calc(100vw - 16px);overflow-y:auto;padding:4px;border-radius:12px;background:#1b222b;border:1px solid #33404d;box-shadow:0 10px 28px rgba(0,0,0,.5);animation:ddIn .12s ease-out}
.dd.up{animation-name:ddUp}
@keyframes ddIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@keyframes ddUp{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.dd-o{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border-radius:9px;color:var(--text);font-size:15px;font-weight:600;white-space:nowrap;cursor:pointer;outline:none}
.dd-o span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.dd-o:active,.dd-o:focus-visible{background:#2a3440}
.dd-o.on{color:var(--accent)}
.dd-o .dd-ck{flex:none;width:16px;font-style:normal;font-weight:800;color:var(--accent);text-align:right}
.xe .xe-r{font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.xe .xe-r[aria-expanded="true"]{border-color:#46515e;background:#1b222b}
.xe .xe-r::after{content:"";position:absolute;inset:-6px -2px}
.acc-dots{display:inline-flex;gap:4px;margin-right:2px;vertical-align:middle}.acc-dots i{width:12px;height:12px;border-radius:50%;box-shadow:0 0 0 1px rgba(255,255,255,.25) inset}
.hw-l2 > .acc-dots + *::before{content:"·";color:#6b7785;margin:0 6px}
/* v68 : « US ×2 » dans le badge de région (doubles), plus de pastille ×N ; doubles sous l'état dans le choix rapide */
.rbg .rx{font:inherit;font-size:7.5px;font-weight:800;margin-left:2px;opacity:.85;letter-spacing:0}
.badge .bx{font-size:.82em;font-weight:800;margin-left:2px;opacity:.85}
.ovr .ovx{display:block;margin-top:3px;font-size:10.5px;line-height:1.25;color:#8a96a4;font-weight:600;text-align:center;overflow-wrap:anywhere}
/* v68 : le menu prend la largeur de son plus long libellé (« Europe » n'est plus coupé en « Eu… ») ; ellipse seulement au-delà de la largeur de l'écran */
.dd{width:max-content;min-width:120px}
.dd-o span{flex:1 0 auto;max-width:calc(100vw - 110px)}
/* v69 : courbe de la cote (fiche du jeu) + cote peu fiable */
.phc{display:flex;align-items:center;gap:8px;margin:8px 2px 0;font-size:12px;line-height:1.35;color:var(--muted)}
.phc[hidden]{display:none}
.phc-sp{flex:none;display:block}
.phc-t{min-width:0;overflow-wrap:anywhere}
.phc-t b{font-weight:700;color:#8793a0}.phc-t b.up{color:var(--accent)}.phc-t b.down{color:#ff7a7a}
.pr-w{color:#e0b062}
/* v68-2 : pas de sélection de texte ni de menu iOS (Copier / Chercher / Traduire, menu image) à l'appui long, dans toute l'appli ;
   la sélection reste possible dans les champs de saisie. Titres collants des listes (« Tes accessoires »…) au-dessus des lignes (z-index 5, fond opaque). */
*{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
input,textarea,[contenteditable],[contenteditable] *{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
img{-webkit-user-drag:none;-webkit-touch-callout:none}
/* v70 : doubles = deux compteurs par région (Loose / Complet), fiche + popup ; bouton discret « + Exemplaire en double » */
.xdup{align-self:flex-start;display:inline-flex;align-items:center;height:30px;padding:0 13px;margin:8px 0 2px;border:1px solid #333d47;border-radius:15px;background:none;color:#9aa5b1;font:inherit;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer}
.xdup:active{background:#20272e}
.q-head{display:flex;gap:8px;margin:0 0 2px}
.q-head i{flex:1}
.q-head span{flex:none;width:104px;text-align:center;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.q-row{min-height:46px}
.q-row .d-rn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qc{flex:none;width:104px;display:flex;align-items:center;justify-content:space-between;height:38px;border:1px solid var(--line);border-radius:10px;background:#11161a}
.qc button{flex:none;width:36px;height:36px;border:0;background:none;color:#c5cfda;font:inherit;font-size:19px;font-weight:700;line-height:1;padding:0;cursor:pointer}
.qc button[disabled]{color:#3b4652;cursor:default}
.qc b{min-width:22px;text-align:center;font-size:16px;font-variant-numeric:tabular-nums;color:#5d6976}
.qc.l.n b{color:var(--loose)}.qc.c.n b{color:var(--accent)}
.qc.l.n{border-color:#5a4d14}.qc.c.n{border-color:#1e5a2c}
.q-tot{margin:10px 0 0;font-size:14px;color:var(--text)}.q-tot b{font-weight:800}
.q-note{margin:6px 0 0;font-size:12.5px;color:var(--muted)}
.ov-regs.qm,.ov-regs.qm.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ov-regs.qm.n2{grid-template-columns:repeat(2,minmax(0,1fr))}.ov-regs.qm.n1{grid-template-columns:minmax(0,1fr)}
.ovr.qm{padding:10px 4px 8px;gap:2px;cursor:default;min-width:0}
.ovr.qm:active{transform:none}
.mq{width:100%;display:flex;flex-direction:column;align-items:center;margin-top:5px;min-width:0}
.mq small{font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mq .qc{width:auto;min-width:0;align-self:stretch;margin:2px 4px 0;height:34px;border-radius:9px}
.mq .qc button{width:28px;height:32px;font-size:18px}
/* A11Y-GEN-START */
/* généré par tools/a11y/build_a11y_css.py : ne pas modifier à la main */
html.a11y{--muted:#a3adb9}
html.a11y .count{font-size:16px}
html.a11y .tabs button{font-size:14px}
html.a11y .tile .check{font-size:14px;color:#06210f}
html.a11y .tile .cap{font-size:12px}
html.a11y .ph{font-size:14px}
html.a11y .item .s{font-size:14px}
html.a11y .badge{font-size:11.5px}
html.a11y .item.own .tog{color:#06210f}
html.a11y .hint{font-size:14px}
html.a11y .source{font-size:13px}
html.a11y .toast{font-size:15px}
html.a11y .resinfo{font-size:14px}
html.a11y .d-jp{font-size:14.5px}
html.a11y .d-meta{font-size:14px}
html.a11y .d-own.on{color:#06210f}
html.a11y .d-sec h3{font-size:13.5px}
html.a11y .d-dates{font-size:14.5px}
html.a11y .price .lab{font-size:12.5px}
html.a11y .price .val.na{font-size:14px;color:#a3adb9}
html.a11y .price .n{font-size:12.5px}
html.a11y .price .src{font-size:12.5px}
html.a11y .qbtn{font-size:13.5px}
html.a11y .pop{font-size:13.5px}
html.a11y .filt{font-size:12.5px}
html.a11y .empty .sub{font-size:14px}
html.a11y .split{font-size:13.5px}
html.a11y .tile .lbadge{font-size:11.5px}
html.a11y .item.loose .tog{font-size:13.5px}
html.a11y .ownseg button{font-size:14px}
html.a11y .d-state button{font-size:14px}
html.a11y .d-state button.on[data-s="cib"]{color:#06210f}
html.a11y .seg.cur button{font-size:13.5px}
html.a11y .d-upd{font-size:13px}
html.a11y input,html.a11y select,html.a11y textarea{font-size:17px}
html.a11y .v-hint{font-size:13.5px;color:#a3adb9}
html.a11y .cbtn span{font-size:11.5px}
html.a11y .cbar-empty{font-size:14.5px}
html.a11y .cur-name{font-size:13.5px}
html.a11y .wide.primary{color:#06210f}
html.a11y .onboard p{font-size:15.5px}
html.a11y .onboard .sub{font-size:14px}
html.a11y .pk-sub{font-size:14px}
html.a11y .pk-chip{font-size:14.5px}
html.a11y .pk-mk{font-size:17px}
html.a11y .pk-n{font-size:14px}
html.a11y .pk-txt b{font-size:16px}
html.a11y .pk-txt small{font-size:14px}
html.a11y .pk-chk{font-size:15px}
html.a11y .pk-row.on .pk-chk{color:#06210f}
html.a11y .rpill{font-size:14px}
html.a11y .ronly{font-size:14px}
html.a11y .rbg.no{color:#a6adb7}
html.a11y .rbg.cib{color:#06210f}
html.a11y .badge.o-cib{color:#06210f}
html.a11y .ov-head img,html.a11y .ov-head .ph{font-size:9.5px}
html.a11y .ov-t{font-size:17px}
html.a11y .ov-s{font-size:14px}
html.a11y .ovr small{font-size:12px}
html.a11y .ovr em{font-size:13.5px;color:#a3aebb}
html.a11y .ovr.s-cib em{color:#06210f}
html.a11y .ov-q{font-size:13.5px}
html.a11y .ov-qx{font-size:13.5px}
html.a11y .ov-foot .ov-ok{color:#06210f}
html.a11y .d-rn{font-size:14px}
html.a11y .d-qn{font-size:13px}
html.a11y .cam-title{font-size:17px}
html.a11y .cam[data-st=busy] .cam-busy{font-size:16px}
html.a11y .cam-bar button{font-size:14px}
html.a11y .cam-go{font-size:17px;color:#06210f}
html.a11y .cr-head{font-size:15px}
html.a11y .cr-it img,html.a11y .cr-it .ph{font-size:9.5px}
html.a11y .cr-t b{font-size:16px}
html.a11y .cr-t small{font-size:13.5px}
html.a11y .cr-t em{font-size:12.5px;color:#06210f}
html.a11y .cr-1{font-size:12px}
html.a11y .cr-foot button{font-size:14px}
html.a11y .ov-sug{font-size:14px}
html.a11y .price.bo .bo-note{font-size:13px}
html.a11y .jp-links .jl-h{font-size:12.5px}
html.a11y .jl-btn{font-size:14px}
html.a11y .cs-seg button{font-size:14.5px}
html.a11y .cs-seg button.on{color:#06210f}
html.a11y .cs-seg i{font-size:12.5px}
html.a11y .cr-cb{font-size:12px}
html.a11y .cr-chip{font-size:13.5px}
html.a11y .cr-chip.on{color:#06210f}
html.a11y .cr-t small b.cr-why{font-size:12.5px}
html.a11y .cr-read{font-size:13.5px}
html.a11y .d-ph{font-size:13.5px}
html.a11y .d-ph .d-phx{font-size:13px}
html.a11y .pg-sub{font-size:13.5px}
html.a11y .pg-r .count{font-size:14px}
html.a11y .pg-r .pct{font-size:14px}
html.a11y .split{font-size:13.5px}
html.a11y .tabbar button{font-size:12.5px}
html.a11y .cp-big{font-size:16px}
html.a11y .cp-leg{font-size:14px}
html.a11y .cp-ch>span{font-size:14px}
html.a11y .cp-ch small{font-size:13.5px}
html.a11y .cp-ch .seg button{font-size:14px}
html.a11y .cp-vsub{font-size:14px}
html.a11y .cp-rlh b{font-size:14.5px}
html.a11y .cp-rl>span{font-size:14px}
html.a11y .cp-rl>span b{font-size:17px}
html.a11y .cp-rl small{font-size:13px}
html.a11y .fl.q{font-size:10.5px}
html.a11y .cp-rimg .ph{font-size:11.5px}
html.a11y .cp-rt{font-size:13px}
html.a11y .cp-rc small{font-size:12px}
html.a11y .cp-foot{font-size:13px}
html.a11y .cp-empty .sub{font-size:14.5px}
html.a11y .hw-back{font-size:16px}
html.a11y .hw-mh b{font-size:15.5px}
html.a11y .hw-mh small{font-size:13.5px}
html.a11y .hw-txt b{font-size:15.5px;color:#a3aeba}
html.a11y .hw-txt small{font-size:13.5px}
html.a11y .hw-st{font-size:12.5px}
html.a11y .hw-it.s-cib .hw-st{color:#06210f}
html.a11y .hw-nbox button{color:#06210f}
html.a11y .sp-sub{font-size:15px}
html.a11y .hw-txt .hw-pr{font-size:13.5px}
html.a11y .cp-hwv{font-size:13.5px}
html.a11y .hw-txt .hw-pr.na{color:#a4adb7}
html.a11y .lp-sub{font-size:14px;color:#a4adb7}
html.a11y .lp-it{font-size:16px}
html.a11y .ro-sub{font-size:14px}
html.a11y .ro-list{font-size:15px}
html.a11y .cr-det{font-size:14px}
html.a11y .so-gear{font-size:17px}
html.a11y .so-ph{font-size:13.5px}
html.a11y .so-chip{font-size:14px}
html.a11y .so-cn{font-size:13.5px}
html.a11y .cr-conf{font-size:13.5px}
html.a11y .cr-out{font-size:13.5px}
html.a11y .cr-1{font-size:12px;color:#06210f}
html.a11y .hw-rg.none{color:#a4adb7}
html.a11y .hw-prg{color:#a4adb7}
html.a11y .pr-rg button{font-size:13.5px}
html.a11y .pr-fb{font-size:13.5px}
html.a11y .rg-warn{font-size:13.5px}
html.a11y .cr-chip{font-size:13px}
html.a11y .tp-bub p{font-size:15.5px}
html.a11y .tp-skip{font-size:14px}
html.a11y .tp-n{font-size:13.5px}
html.a11y .tp-ok{font-size:14.5px;color:#06210f}
html.a11y .c2-ft{font-size:14px}
html.a11y .c2-sec h4{font-size:13px}
html.a11y .c2-l{font-size:14.5px}
html.a11y .c2-row b{font-size:14.5px}
html.a11y .c2-row small{font-size:13px}
html.a11y .c2-ul{font-size:14.5px}
html.a11y .c2-avg{font-size:14px}
html.a11y .c2-avg b{font-size:17px}
html.a11y .c2-tgame::before{font-size:13.5px}
html.a11y .c2-tt{font-size:14.5px}
html.a11y .c2-tgame small{font-size:13px}
html.a11y .c2-tgame b{font-size:14.5px}
html.a11y .c2-hc b{font-size:14.5px}
html.a11y .c2-hc small{font-size:12.5px}
html.a11y .c2-hc .cp-hwv{font-size:13px}
html.a11y .c2-hadd small{font-size:12px}
html.a11y .t-act{font-size:14.5px;color:#06210f}
html.a11y .bk-line{font-size:13.5px}
html.a11y .imp-t{font-size:15px}
html.a11y .imp-t thead th{font-size:13px}
html.a11y .imp-t thead th small{font-size:12.5px}
html.a11y .imp-p{font-size:14px}
html.a11y .imp-p.sub{font-size:13.5px}
html.a11y .bk-note p{font-size:14px}
html.a11y .bk-note small{font-size:13px}
html.a11y .bk-note button{font-size:14px}
html.a11y .bk-go{color:#06210f}
html.a11y .cr-none{font-size:14.5px}
html.a11y .c2-hhelp{font-size:14px}
html.a11y .c2-ghp{color:#06210f}
html.a11y .cov-auto{font-size:13.5px}
html.a11y .c2-vimg{font-size:14px}
html.a11y .c2-vt{font-size:14px}
html.a11y .c2-vtop b{font-size:14px}
html.a11y .c2-pop{font-size:14px}
html.a11y .inv-sub{font-size:14px}
html.a11y .inv-ctl .seg button{font-size:14px}
html.a11y .inv-chip{font-size:13.5px}
html.a11y .inv-sh{font-size:13px}
html.a11y .inv-sh b{font-size:14px}
html.a11y .inv-th .ph{font-size:12.5px}
html.a11y .inv-t{font-size:15px}
html.a11y .inv-r small{font-size:13px}
html.a11y .inv-r b{font-size:14.5px}
html.a11y .c2-hpill b{font-size:14px}
html.a11y .vh-lab{font-size:12px}
html.a11y .vh-note{font-size:13px}
html.a11y .sh-wait{font-size:15px}
html.a11y .sh-tg{font-size:16px}
html.a11y .hw-title .hw-q{font-size:16px}
html.a11y .hw-pop{font-size:14px}
html.a11y .hw-it.v2 > .hw-nm{font-size:16px;color:#a3aeba}
html.a11y .hw-l2{font-size:14px}
html.a11y .hw-l2 > * + *::before{color:#a5adb6}
html.a11y .hw-l2 .pp.na{color:#a4adb7}
html.a11y .hw-l2 .fb{color:#a4adb7}
html.a11y .hw-l2 .hw-nt{font-size:14px}
html.a11y .dlg p{font-size:15px}
html.a11y .vhs-per button{font-size:14.5px}
html.a11y .vhs-sub{font-size:14px}
html.a11y .vhs-yt,html.a11y .vhs-xt{font-size:12px}
html.a11y .vhs-msg{font-size:13.5px}
html.a11y .vhs-cap{font-size:12.5px}
html.a11y .vhs-row{font-size:14.5px}
html.a11y .tagsug .sc{font-size:13.5px}
html.a11y .tchip{font-size:14px}
html.a11y .tg-info{font-size:14px}
html.a11y .tg-g h3{font-size:13.5px}
html.a11y .tg-g h3 i{color:#a0aebd}
html.a11y .d-shop .jl-h{font-size:13.5px}
html.a11y .dlg h3.rich{font-size:16px}
html.a11y .c2-nocote{color:#a3adb7}
html.a11y .ser-h{font-size:13.5px}
html.a11y .ser-h i{color:#a0aebd}
html.a11y .d-credit{font-size:13px;color:#a3adb7}
html.a11y .cs-nr{font-size:13.5px;color:#a3adb7}
html.a11y .cam-off p{font-size:16px}
html.a11y .cam-off button{font-size:16px;color:#06210f}
html.a11y .save-ban p{font-size:15px}
html.a11y .save-ban button{font-size:15px}
html.a11y .sbox .sicon{color:#acacac}
html.a11y .tools input::placeholder{color:#acacac}
html.a11y .toast.act{font-size:15px}
html.a11y .toast.act .t-act,html.a11y .toast.act .t-no{font-size:15px}
html.a11y .tg-ld{font-size:14px}
html.a11y .tg-err{font-size:14px}
html.a11y .tg-err button{font-size:14.5px}
html.a11y .xa{font-size:14px;color:#a4adb6}
html.a11y .xe .xe-n{font-size:14px;color:#a3aeba}
html.a11y .xe .xe-r{font-size:14px}
html.a11y .xe .xe-r i{font-size:11.5px;color:#a4adb6}
html.a11y .xe .xe-r select{font-size:17px}
html.a11y .xe .d-state button{font-size:13.5px}
html.a11y .xe .xe-x{color:#a4adb6}
html.a11y .xt{font-size:13.5px;color:#a4adb6}
@media (max-width:379.98px){html.a11y:lang(es) .sbox input::placeholder,html.a11y:lang(pt) .sbox input::placeholder{font-size:16px}
}html.a11y .acc-seg button{font-size:15px}
html.a11y .acc-seg button i{font-size:13.5px}
html.a11y .acc-q b{font-size:14.5px}
html.a11y .hw-it.acc .xb{font-size:14px;color:#a4adb7}
html.a11y .acc-help{font-size:14px}
html.a11y .acc-srch input{font-size:17px}
html.a11y .acc-more{font-size:15px}
html.a11y .acc-tag{font-size:12px;color:#a3aeba}
html.a11y .dd-o{font-size:16px}
html.a11y .xe .xe-r{font-size:14px}
html.a11y .hw-l2 > .acc-dots + *::before{color:#a5adb6}
html.a11y .rbg .rx{font-size:9px}
html.a11y .ovr .ovx{font-size:12px;color:#a4adb8}
html.a11y .phc{font-size:13.5px}
html.a11y .phc-t b{color:#a3adb7}
html.a11y .xdup{font-size:14px;color:#a3adb8}
html.a11y .q-head span{font-size:12.5px}
html.a11y .qc b{font-size:17px;color:#a3adb7}
html.a11y .q-tot{font-size:15px}
html.a11y .q-note{font-size:14px}
html.a11y .mq small{font-size:12px}
html.a11y .hdr-mini{font-size:14px}
html.a11y .optdd{font-size:15px}
html.a11y .optdd i{font-size:12.5px}
html.a11y .opt-hint{font-size:13.5px}
/* A11Y-GEN-END */
/* ===== v70 : en-tête repliable (petits écrans, réglage « En-tête ») — rien ne bouge sans .hdr-c / .hdr-m */
header.top{transition:transform .22s ease}
header.top.hdr-c{transform:translateY(calc(36px + env(safe-area-inset-top) - var(--hc,0px)))}
header.top.hdr-m{margin-bottom:calc(36px + env(safe-area-inset-top) - var(--hc,0px))}
.hdr-mini{position:absolute;left:0;right:0;top:0;z-index:3;height:var(--hc,0px);display:flex;align-items:flex-end;gap:8px;margin:0;padding:0 16px 8px;border:0;background:#14181c;color:var(--muted);font:inherit;font-size:12.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;text-align:left;cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility 0s .18s}
header.top.hdr-c .hdr-mini{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .18s ease}
.hdr-mini .hm-n{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.hdr-mini .hm-c{flex:none;color:var(--text);letter-spacing:0;font-variant-numeric:tabular-nums}
.hdr-mini svg{flex:none;width:18px;height:18px;color:var(--text)}
.hdr-mini:focus-visible{outline:2px solid var(--accent2);outline-offset:-2px}
/* réglages « En-tête » et « Accessibilité » : menus déroulants au thème de l'appli (ddOpen) */
.opt-dd{gap:10px}
.opt-dd>span{flex:1 1 auto;min-width:0}
.optdd{flex:none;display:inline-flex;align-items:center;gap:8px;max-width:62%;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:#11161a;color:var(--text);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.optdd span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.optdd i{font-style:normal;color:var(--muted);font-size:11px}
.optdd[aria-expanded="true"]{border-color:var(--accent)}
.opt-hint{display:block;margin:-4px 0 12px;font-size:12px;line-height:1.35;color:var(--muted)}
/* ===== v70 : mode Accessibilité, partie écrite à la main (zones de tap >= 44 px, focus visible) */
html.a11y header.top.hdr-c{transform:translateY(calc(44px + env(safe-area-inset-top) - var(--hc,0px)))}
html.a11y header.top.hdr-m{margin-bottom:calc(44px + env(safe-area-inset-top) - var(--hc,0px))}
html.a11y .icon-btn{min-width:44px;min-height:44px}
html.a11y .camb{width:44px}
html.a11y .tools input{min-height:44px}
html.a11y .rpill{height:44px;border-radius:22px}
html.a11y .sortbtn{width:44px;height:44px;border-radius:22px}
html.a11y .tabs button{min-height:44px}
html.a11y .seg button,html.a11y .d-state button,html.a11y .cs-seg button,html.a11y .optdd{min-height:44px}
html.a11y .cr-chip{min-height:44px}
html.a11y .c2-row,html.a11y .c2-vtop,html.a11y .c2-ft{min-height:44px}
html.a11y .wide{min-height:48px}
html.a11y :focus-visible{outline:2px solid var(--accent2);outline-offset:2px}
html.a11y .sh-handle{min-height:44px}
html.a11y .seg button{min-width:44px}
html.a11y .xa,html.a11y .tchip,html.a11y .jl-btn{min-height:44px}
html.a11y .hw-back,html.a11y .acc-seg button,html.a11y .pk-chip,html.a11y .sortpop button{min-height:44px}
html.a11y .hw-rg,html.a11y .hw-ed{min-width:44px;min-height:44px}
html.a11y .c2-vh{min-height:44px}
/* v70 (audit des doubles) : nombre d'exemplaires sous la répartition complets / loose de Ma collection */
.cp-leg{flex-wrap:wrap;row-gap:2px}
.cp-ncp{color:var(--muted)}
.pg-sub.wrap{flex-wrap:wrap;white-space:normal;row-gap:2px}
.pg-sub.wrap .split{white-space:nowrap}
/* v70 : la feuille Options défile si elle dépasse l'écran (iPhone SE : le haut de la feuille était hors de l'écran) */
#sheet{max-height:88vh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
/* v70 : compteurs en mode Accessibilité (44 pt) ; dans le popup, les cartes passent en lignes pour que les compteurs tiennent à 375 px */
html.a11y .qc{width:auto;height:46px}html.a11y .qc button{width:44px;min-width:44px;height:44px;min-height:44px}
html.a11y .q-head span{width:114px}
html.a11y .xdup{min-height:44px;height:auto}
html.a11y .ov-regs.qm{grid-template-columns:minmax(0,1fr)}
html.a11y .ovr.qm{flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:8px;row-gap:6px;padding:10px 12px}
html.a11y .ovr.qm>b{margin:0;flex:none}html.a11y .ovr.qm>small{flex:1 1 45%;min-width:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html.a11y .ovr.qm>.fl{flex:none;width:32px;height:22px}
html.a11y .ovr.qm .mq{flex:1 1 calc(50% - 4px);width:auto;margin:0}
html.a11y .mq .qc{margin:2px 0 0}
/* ===== v71 : Listes (wishlist, listes façon Letterboxd, partage, bandeau « Dans ta wishlist ! ») ===== */
:root{--wl:#a78bfa}
.vhid{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
body.noconsole #wishSeg,body.pg-col #wishSeg{display:none!important}
.wishseg[hidden]{display:none}
.wishseg button.on b,.wishseg button[data-v="wl"].on{color:#e2d9ff}
.wishseg button[data-v="wl"].on{background:#3a2f63}
/* grille (v74) : tout jeu souhaité = petit cœur violet en haut à droite, rien d'autre (non possédé : jaquette grisée, bord normal ; possédé : bord vert/jaune gardé) */
.tile .wlh{position:absolute;right:5px;top:5px;z-index:2;width:20px;height:20px;border-radius:50%;background:rgba(14,12,24,.82);color:var(--wl);display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,.5);pointer-events:none;-webkit-transform:translateZ(0);transform:translateZ(0)}
.tile .wlh svg{width:12px;height:12px;display:block}
.wlh-i{display:inline-block;vertical-align:-1px;color:var(--wl)}.wlh-i svg{width:12px;height:12px;display:block}
/* onglet Listes */
.lstpage[hidden]{display:none}
.ls-head{margin-bottom:6px}
.ls-new{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:18px;border:1px solid var(--line);background:#1a2027;color:var(--text);font:inherit;font-size:14px;font-weight:700;white-space:nowrap;cursor:pointer}
.ls-new b{font-size:19px;line-height:1;color:var(--accent)}
.ls-new.on{background:var(--accent);border-color:var(--accent);color:#fff}
.ls-sub{margin:0 2px 14px;font-size:13px;color:var(--muted)}
.ls-card{position:relative;display:flex;align-items:stretch;gap:8px;margin-bottom:12px;border:1px solid var(--line);border-radius:14px;background:#171d23}
.ls-card.wlc{background:linear-gradient(160deg,#211c33,#171d23 65%)}
.ls-open{flex:1;min-width:0;display:block;text-align:left;border:0;background:none;color:inherit;font:inherit;padding:12px 12px 11px;cursor:pointer;border-radius:14px}
.ls-strip{position:relative;height:96px;display:flex;align-items:flex-end;overflow:hidden}
.ls-strip img,.ls-strip .ph,.ls-strip .more{flex:none;width:70px;height:96px;border-radius:6px;object-fit:cover;background:#0d1013;box-shadow:0 0 0 1px rgba(255,255,255,.08),4px 0 12px rgba(0,0,0,.55)}
.ls-strip .ph{display:flex;align-items:center;justify-content:center;padding:4px;font-size:9px;line-height:1.15;color:#9aa6b3;text-align:center;overflow:hidden}
.ls-strip>*+*{margin-left:-24px}
.ls-strip .more{display:flex;align-items:center;justify-content:center;background:#232b33;color:#c5cfda;font-weight:800;font-size:16px}
.ls-strip.empty{align-items:center}
.ls-strip.empty span{flex:none;width:52px;height:72px;border-radius:6px;border:1.5px dashed #3a4450;background:none;box-shadow:none}
.ls-strip.empty span+span{margin-left:-20px}
.ls-strip.empty p{margin:0 0 0 14px;font-size:13px;line-height:1.35;color:var(--muted);white-space:normal}
.ls-meta{display:flex;align-items:baseline;gap:8px;margin-top:10px}
.ls-meta b{flex:1;min-width:0;font-size:16px;font-weight:800;color:var(--text);line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.ls-meta>span{flex:none;max-width:52%;font-size:13px;color:#aab4bf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ls-pin{display:inline-flex;margin-right:6px;color:#c9b8ff;vertical-align:-2px}.ls-pin svg{width:16px;height:16px;display:block;transform:rotate(35deg)}
html.a11y .ls-pin svg{width:18px;height:18px}
.ls-ro{flex:none;display:flex;flex-direction:column;justify-content:center;gap:8px;padding:8px 10px 8px 0}
.ls-ro button{width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:#222a33;color:var(--text);font-size:19px;font-weight:800;cursor:pointer}
.ls-ro button[disabled]{opacity:.3;cursor:default}
.ls-card.ro .ls-open{cursor:default}
/* liste ouverte */
.ol-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 6px}
.ol-back{border:0;background:none;color:var(--accent);font:inherit;font-size:15.5px;font-weight:700;padding:8px 8px 8px 0;min-height:40px;cursor:pointer}
.ol-act{display:flex;gap:8px}
.ol-act button{height:38px;min-width:40px;padding:0 13px;border-radius:19px;border:1px solid var(--line);background:#1a2027;color:var(--text);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.ol-t{font-size:24px;font-weight:800;color:var(--text);margin:4px 2px 2px;line-height:1.2;overflow-wrap:anywhere}
.ol-t:focus{outline:none}
.ol-s{font-size:13.5px;color:var(--muted);margin:0 2px 14px}
.og{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 10px}
.og-it{min-width:0;display:block;text-align:left;border:0;background:none;padding:0;color:inherit;font:inherit;cursor:pointer}
.og-cv{position:relative;display:block;aspect-ratio:3/4;border-radius:8px;overflow:hidden;background:#0d1013;box-shadow:0 0 0 1px rgba(255,255,255,.07)}
.og-cv img,.og-cv .ph{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(1) brightness(.6)}
.og-cv .ph{display:flex;align-items:center;justify-content:center;padding:6px;font-size:11px;color:#c5cfda;text-align:center}
.og-cv.own img,.og-cv.own .ph{filter:none}.og-cv.own.cib{box-shadow:0 0 0 2px var(--accent)}.og-cv.own.loose{box-shadow:0 0 0 2px var(--loose)}
.og-cv.own.loose img{filter:grayscale(.5) brightness(.75)}
.og-st{position:absolute;right:4px;bottom:4px;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--accent);color:#fff;font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:center}
.og-cv.loose .og-st{background:var(--loose);color:#1d1600;font-size:10px}
.og-it b{display:block;margin-top:5px;font-size:12.5px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.og-it small{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ls-none{margin:24px 4px;color:var(--muted);font-size:14px;line-height:1.45}
.sh-ro{display:inline-block;margin:2px 2px 4px;padding:3px 9px;border-radius:8px;background:#2c2448;color:#c9b8ff;font-size:12px;font-weight:800}
.sh-imp{margin-top:20px}
.ls-menu{position:fixed;z-index:62;min-width:220px;max-width:calc(100vw - 20px);background:#1f262d;border:1px solid #2f3842;border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.55);padding:6px}
.ls-menu button{display:block;width:100%;text-align:left;border:0;background:none;color:var(--text);font:inherit;font-size:15px;font-weight:600;padding:12px;border-radius:8px;cursor:pointer}
.ls-menu button.red{color:#ff6b6b}
.ls-menu button:focus-visible{outline:2px solid var(--accent2);outline-offset:-2px}
/* feuille du bas des listes */
.ls-bd{position:fixed;inset:0;z-index:58;background:rgba(0,0,0,.55);touch-action:none}
.ls-bd[hidden]{display:none}
.sheet.lssheet{z-index:59;max-height:88vh;overflow:auto;overscroll-behavior-y:none;transition:transform .22s cubic-bezier(.2,.8,.2,1)}
.lssheet[hidden]{display:none}
.ls-sh{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 12px}
.ls-sh h3{margin:0;font-size:17px;font-weight:800;color:var(--text);min-width:0;overflow-wrap:anywhere}
.ls-x{flex:none;border:0;background:none;color:var(--accent);font:inherit;font-size:15px;font-weight:800;padding:8px 0 8px 8px;cursor:pointer}
.ls-in{display:block;width:100%;box-sizing:border-box;height:48px;border:2px solid var(--accent);border-radius:12px;background:#11161a;padding:0 12px;font:inherit;font-size:16px;color:var(--text);-webkit-user-select:text;user-select:text}
.ls-hint{margin:8px 2px 12px;font-size:12.5px;line-height:1.4;color:var(--muted)}
.ls-sug{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.ls-sug button{height:34px;padding:0 12px;border-radius:17px;border:1px solid var(--line);background:none;color:#c5cfda;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer}
.ls-go[disabled]{opacity:.45}
.ls-rows{margin:0 -4px}
.ls-row{display:flex;align-items:center;gap:12px;width:100%;padding:10px 4px;border:0;border-bottom:1px solid #262e36;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.ls-mini{flex:none;display:flex;width:58px;height:42px;align-items:center}
.ls-mini img,.ls-mini i{width:30px;height:42px;object-fit:cover;border-radius:4px;background:#232b33;box-shadow:0 0 0 1px rgba(255,255,255,.08)}
.ls-mini>*+*{margin-left:-14px}
.ls-mini.plus{justify-content:center;border:1.5px dashed #4a5561;border-radius:6px;color:var(--accent);font-size:22px;font-weight:700}
.ls-rt{flex:1;min-width:0}.ls-rt b{display:block;font-size:15px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ls-rt small{font-size:12.5px;color:var(--muted)}
.ls-ck{flex:none;width:26px;height:26px;border-radius:50%;border:2px solid #4a5561;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:900;box-sizing:border-box}
.ls-ck.on{background:var(--accent);border-color:var(--accent)}
.ls-row.wl .ls-ck.on{background:var(--wl);border-color:var(--wl);color:#160f2e}
.ls-ih{display:flex;gap:12px;align-items:center;margin-bottom:12px}
.ls-ih img{width:56px;height:76px;object-fit:cover;border-radius:6px;flex:none}
.ls-ih b{display:block;font-size:16px;color:var(--text)}.ls-ih small{display:block;font-size:13px;color:var(--muted);margin-top:2px}.ls-ih .ls-ip{color:#c5cfda;font-weight:700}
.ls-lab{margin:4px 2px 6px;font-size:13px;font-weight:700;color:var(--muted)}
.ls-tg{flex-wrap:wrap;margin-bottom:6px}.ls-tg button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:36px;font-size:13.5px;font-weight:700}
/* fiche : pastilles Wishlist / listes ; popup : « ＋ Liste » */
.d-lists{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.lpill{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 14px;border:1px solid #333d47;border-radius:17px;background:none;color:#aab4bf;font:inherit;font-size:13.5px;font-weight:700;cursor:pointer;max-width:100%}
.lpill.wlon{border-color:var(--wl);color:#d9ceff;background:#211c33}
.lpill.lon{color:#d6dde5;border-color:#4a5561}
.lph{display:inline-flex;color:var(--wl)}.lph svg{width:13px;height:13px;display:block}
.ov-foot .ov-list{flex:none;padding:11px 12px;display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}
/* partage d'une liste */
.shl-fmt{margin:0 0 10px}.shl-fmt button{flex:1;padding:8px 4px;font-weight:700}
.shl-tg{margin:4px 2px 12px}
.shl-prev{min-height:120px}
.shl-img{position:relative;display:flex;justify-content:center}
.shl-img canvas{display:block;max-width:100%;max-height:44vh;width:auto;height:auto;border-radius:12px;border:1px solid var(--line);box-shadow:0 6px 20px rgba(0,0,0,.45);background:#14181c}
.shl-img .sh-wait{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px}
.shl-txt{margin:0;max-height:44vh;overflow:auto;font:12.5px/1.5 ui-monospace,Menlo,monospace;color:#c5cfda;white-space:pre-wrap;word-break:break-word;background:#0e1216;border:1px solid #2a323b;border-radius:14px;padding:12px;-webkit-user-select:text;user-select:text}
.shl-url{font:12.5px/1.45 ui-monospace,Menlo,monospace;color:#c5cfda;word-break:break-all;background:#0e1216;border:1px solid #2a323b;border-radius:14px;padding:12px;max-height:30vh;overflow:auto;-webkit-user-select:text;user-select:text}
/* bandeau « Dans ta wishlist ! » */
.wban{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:14px;background:linear-gradient(135deg,#2c2350,#1d1a2e);border:1.5px solid var(--wl);box-shadow:0 10px 26px rgba(0,0,0,.5);text-align:left}
.wban-fx{position:fixed;z-index:45;left:12px;right:12px;max-width:560px;margin:0 auto;animation:wbin .22s ease-out}
@keyframes wbin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.wban-fx{animation:none}}
.wb-c{flex:none;width:40px;height:54px;border-radius:5px;overflow:hidden;background:#0d1013}.wb-c img{width:100%;height:100%;object-fit:cover;display:block}
.wb-t{flex:1;min-width:0}.wb-t b{display:flex;align-items:center;gap:5px;font-size:15px;font-weight:800;color:#e2d9ff}
.wb-t span:not(.lph){display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;font-size:13px;line-height:1.3;color:#d6dbe1;overflow:hidden;overflow-wrap:anywhere}
.wb-t small{display:block;font-size:12px;color:#b7a9ec;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wb-go{flex:none;min-height:36px;padding:0 14px;border-radius:18px;border:0;background:var(--wl);color:#160f2e;font:inherit;font-size:14px;font-weight:800;cursor:pointer}
.cam-res .wban{margin:0 0 12px}
/* mode Accessibilité : cibles 44 pt */
html.a11y .lpill,html.a11y .ls-new,html.a11y .ol-act button,html.a11y .ls-sug button,html.a11y .wb-go,html.a11y .ls-tg button{min-height:44px}
html.a11y .ol-back,html.a11y .ls-x{min-height:44px}
html.a11y .ls-meta>span,html.a11y .og-it small,html.a11y .ls-sub,html.a11y .ls-rt small{color:#b9c4cf}
html.a11y .ls-menu button{min-height:44px}

/* ===== v72 : téléphone en paysage -> écran « Tourne ton téléphone ». Téléphone = pointeur tactile ET hauteur <= 500 px en paysage
   (iPhone / Android : 320 à 440 px) : iPad, tablettes et ordinateurs ne sont jamais bloqués. CSS seul (l'appli reste chargée derrière,
   aucun état perdu). Jamais pendant le flux photo (#cam ouvert : recadrage / résultats). App native : orientation verrouillée par Capacitor. */
.rot{display:none}
@media (orientation:landscape) and (max-height:500px) and (pointer:coarse){
  .rot{display:flex;position:fixed;inset:0;z-index:2147483000;align-items:center;justify-content:center;text-align:center;
    background:radial-gradient(120% 90% at 50% 40%,#1b2a22 0,var(--bg) 62%);color:#fff;
    padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);touch-action:none}
  .rot-in{display:flex;flex-direction:column;align-items:center;gap:14px}
  .rot .wordmark.xl{font-size:36px}
  .rot-ic{width:58px;height:58px;color:var(--accent);animation:rotn 2.4s ease-in-out infinite}
  .rot p{margin:0;font-size:18px;font-weight:700;color:#e8edf2}
  body:has(#cam:not([hidden])) .rot{display:none}
}
@keyframes rotn{0%,30%{transform:rotate(0)}55%,85%{transform:rotate(-90deg)}100%{transform:rotate(0)}}
@media (prefers-reduced-motion:reduce){.rot-ic{animation:none}}
/* v72/v74 : listes perso : jeu souhaité (possédé ou non) = même petit cœur violet que la grille (haut droite ; ✓ / Loose restent en bas à droite) */
.og-wlh{position:absolute;right:4px;top:4px;z-index:2;width:20px;height:20px;border-radius:50%;background:rgba(14,12,24,.82);color:var(--wl);display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,.5);pointer-events:none}
.og-wlh svg{width:12px;height:12px;display:block}

/* v73-1 : comparaison des étiquettes en arrière-plan (résultats déjà affichés et utilisables) */
.cr-lm{margin:8px 0 2px;padding:7px 12px;border-radius:10px;font-size:13px;font-weight:600;color:var(--accent2);background:rgba(127,127,160,.12);animation:crlm 1.4s ease-in-out infinite}
@keyframes crlm{50%{opacity:.55}}
@media (prefers-reduced-motion:reduce){.cr-lm{animation:none}}
/* v74 (sanity P2-4) : onglets Grille / Mes jeux / Manquants toujours sur une ligne (ex. « MEINE SPIELE 4 » en Accessibilité, 375 px) :
   pas de retour à la ligne ; en Accessibilité, espacement des lettres réduit, et taille ramenée à 13 px seulement sur écran étroit */
.tabs button{white-space:nowrap}
html.a11y .tabs button{letter-spacing:.02em}
@media (max-width:380px){html.a11y .tabs button{font-size:13px}html.a11y .tabs .n{margin-left:3px}}
/* v74 : cote complet douteuse (comptée au loose) : cote brute affichée en retrait, « ? », mention discrète « à vérifier » */
.cell.k-dbt .val{color:var(--muted);text-decoration:underline dotted rgba(224,176,74,.7);text-underline-offset:4px}
.cell.k-dbt .dbt-q{display:inline-block;margin-left:3px;font-size:.7em;font-weight:800;color:#e0b04a;vertical-align:super}
.cell .n.chk,.chk{color:#e0b04a;font-weight:700}
small.chk{display:block;font-size:10.5px;line-height:1.2;font-weight:700;text-align:right}
.c2-vtop small.chk{display:inline;margin-left:4px}
.c2-chk{color:#e0b04a}
/* ===== v74 : listes en vue liste / jaquettes, bouton d'état + bulle, + Ajouter des jeux (chercher / coller), sélection multiple du Catalogue ===== */
.ol-hd{display:flex;align-items:flex-start;gap:10px}.ol-hm{flex:1;min-width:0}
.ol-vt{flex:none;width:40px;height:40px;margin-top:4px;border-radius:12px;border:1px solid var(--line);background:#1a2027;color:#c5cfda;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer}
.ol-vt svg{width:22px;height:22px;display:block}
.ol-add{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:42px;margin:0 0 12px;border-radius:12px;border:1px dashed #3a4450;background:none;color:var(--text);font:inherit;font-size:14.5px;font-weight:700;cursor:pointer}
.ol-add b{font-size:20px;line-height:1;color:var(--accent)}
.ol-rows{margin:0 -4px}
.ol-r{display:flex;align-items:center;gap:9px;padding:7px 4px;border-bottom:1px solid #262e36;min-height:62px;box-sizing:border-box}
.ol-rm{flex:1;min-width:0;display:flex;align-items:center;gap:9px;border:0;background:none;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer}
.ol-cv{position:relative;flex:none;width:36px;height:48px;border-radius:5px;overflow:hidden;background:#0d1013;box-shadow:0 0 0 1px rgba(255,255,255,.08)}
.ol-cv img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(1) brightness(.6)}
.ol-cv.own img{filter:none}.ol-cv.own.cib{box-shadow:0 0 0 2px var(--accent)}.ol-cv.own.loose{box-shadow:0 0 0 2px var(--loose)}
.ol-m{flex:1;min-width:0;display:block}
.ol-n{display:flex;align-items:center;gap:4px;font-size:14px;font-weight:700;color:var(--text);line-height:1.25}
.ol-nt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.ol-h{flex:none;display:inline-flex;color:var(--wl)}.ol-h svg{width:12px;height:12px;display:block}
.ol-sub{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ol-sub .ok{color:#3ddc6b;font-weight:700}
.ol-p{flex:none;min-width:52px;text-align:right;font-size:13.5px;font-weight:800;color:#e8edf2;white-space:nowrap}.ol-p.na{color:#6f7c8b}
.ol-p .dbt-q{display:inline-block;margin-left:2px;font-size:.72em;font-weight:800;color:#e0b04a;vertical-align:super}
/* bouton d'état : largeur fixe identique quel que soit l'état (t265u / t272u) */
.stb{flex:none;box-sizing:border-box;width:46px;height:28px;border-radius:8px;border:1px solid #3a4450;background:#1a2027;padding:0;display:inline-flex;align-items:center;justify-content:center;gap:2px;font:inherit;font-size:12.5px;font-weight:800;letter-spacing:.01em;color:#7f8c9a;cursor:pointer;white-space:nowrap;overflow:hidden}
.stb .l{color:var(--loose)}.stb .c{color:#3ddc6b}.stb .dot{color:#6b7785;font-weight:700}
.stb.op{border-color:#c5cfda;box-shadow:0 0 0 2px rgba(197,207,218,.25)}
.og-it{position:relative}.og-it[role=button]:focus-visible{outline:2px solid var(--accent2);outline-offset:3px;border-radius:8px}
.og-ob{position:absolute;right:4px;bottom:4px;z-index:3}
.og-ob .stb{width:42px;height:24px;font-size:11.5px;background:rgba(10,12,15,.86);border-color:rgba(255,255,255,.5);box-shadow:0 1px 4px rgba(0,0,0,.6)}
.og-ob .stb.op{border-color:#fff}
.og-cv.hasb .og-st{right:auto;left:4px}
.st-pop{position:fixed;z-index:85;width:250px;background:#232b33;border:1px solid #3a4450;border-radius:14px;box-shadow:0 12px 32px rgba(0,0,0,.6);padding:10px 12px 8px;box-sizing:border-box}
.st-pop h4{margin:0 0 4px;font-size:12px;color:var(--muted);font-weight:700;letter-spacing:.02em}
.st-rw{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;border:0;border-top:1px solid #2e3741;background:none;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer}
.st-rw:first-of-type{border-top:0}
.st-rw .bx{flex:none;box-sizing:border-box;width:22px;height:22px;border-radius:6px;border:2px solid #5d6976;display:flex;align-items:center;justify-content:center;color:#111;font-size:14px;font-weight:900}
.st-rw .bx.on.l{background:var(--loose);border-color:var(--loose)}.st-rw .bx.on.c{background:var(--accent);border-color:var(--accent);color:#04210d}
.st-rw .lb{flex:1;min-width:0;font-size:13.5px;font-weight:700;color:var(--text);line-height:1.25}
.st-rw .pr{flex:none;font-size:13px;font-weight:800;color:#c5cfda;text-align:right}.st-rw .pr .chk{display:block;font-size:10.5px;font-weight:700;color:#e0b04a}
.st-pop p{margin:6px 0 2px;font-size:11px;color:var(--muted);line-height:1.35}
.st-pop::before{content:"";position:absolute;top:-7px;right:var(--ax,18px);width:12px;height:12px;background:#232b33;border-left:1px solid #3a4450;border-top:1px solid #3a4450;transform:rotate(45deg)}
.st-pop.up::before{top:auto;bottom:-7px;transform:rotate(225deg)}
/* + Ajouter des jeux */
.add-dest{margin:-6px 2px 10px;font-size:12.5px;color:var(--muted)}
.add-tabs{margin:0 0 10px}.add-tabs button{flex:1;font-weight:700}
.add-res{margin:8px -4px 0}
.add-r{display:flex;align-items:center;gap:10px;width:100%;padding:7px 4px;border:0;border-bottom:1px solid #262e36;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;box-sizing:border-box}
.add-r.dis{opacity:.55;cursor:default}
.add-r .ls-ck{width:24px;height:24px}
.add-foot{position:sticky;bottom:0;margin:6px -16px -16px;padding:8px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(rgba(28,34,40,0),#1c2228 30%)}
.add-foot .wide{margin-top:4px}
.pa-ta{height:auto;min-height:170px;padding:10px 12px;font-size:15px;line-height:1.4;resize:vertical;white-space:pre}
.pa-top{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:0 0 6px}
.pa-edit{border:0;background:none;color:var(--accent2);font:inherit;font-size:14px;font-weight:700;padding:6px 0;cursor:pointer}
.pa-sum{font-size:12px;color:var(--muted)}
.pa-list{margin:0 -4px}
.pa-r{padding:6px 4px 4px;border-bottom:1px solid #262e36}.pa-r .add-r{border-bottom:0;padding:4px 0}
.pa-src{display:flex;align-items:center;gap:8px;font-size:11.5px;color:#9aa6b3}.pa-src q{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:ui-monospace,Menlo,monospace;quotes:"« " " »"}
.pa-b{flex:none;font-size:10.5px;font-weight:800;padding:2px 7px;border-radius:9px;background:#1f3a28;color:#7ee2a0}
.pa-b.k-q{background:#3a3016;color:#f5c518}.pa-b.k-nf{background:#3a1f22;color:#ff9b9b}
.pa-note{flex:none;font-size:11px;color:#f5c518;font-weight:700}
.pa-alt{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:2px 0 4px 46px;font-size:12px;color:var(--muted)}
.pa-alt button{border:1px solid #3a4450;background:#1a2027;color:var(--text);border-radius:14px;padding:4px 10px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pa-alt button.on{border-color:var(--accent);background:#173322}.pa-alt small{color:var(--muted)}
.pa-man{margin:6px 0 4px;border:1px solid #3a4450;background:#1a2027;color:var(--accent2);border-radius:14px;padding:6px 12px;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
/* sélection multiple (t264u / t266u / t273u) : bouton rond à gauche du tri ; puces de région compactes pour ne jamais être coupées */
.tools2{gap:6px}.rbar{gap:4px}.rpill{padding:0 8px;gap:4px;letter-spacing:.01em}
.selbtn[aria-pressed=true]{border-color:var(--accent2);background:#173040;color:#fff}
@media (max-width:380px){html.a11y .rpill .fl{display:none}}
.selbar-t{position:fixed;left:0;right:0;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(10px + env(safe-area-inset-top)) 12px 10px;background:rgba(20,24,28,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.selbar-t b{flex:1;min-width:0;text-align:center;font-size:15px;font-weight:800;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.selbar-t button{flex:none;height:36px;padding:0 12px;border-radius:18px;border:1px solid var(--line);background:#1a2027;color:var(--text);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.selbar-t button[disabled]{opacity:.45}
.selbar-b{position:fixed;left:0;right:0;z-index:40;padding:8px 12px;background:rgba(20,24,28,.97);border-top:1px solid var(--line)}
.selbar-b button{display:block;width:100%;height:46px;border-radius:12px;border:0;background:var(--accent);color:#fff;font:inherit;font-size:15.5px;font-weight:800;cursor:pointer}
.selbar-b button[disabled]{background:#2a333d;color:#8a97a6}
body.selmode .tile::after{content:"";position:absolute;top:5px;left:5px;z-index:5;width:22px;height:22px;box-sizing:border-box;border-radius:50%;border:2px solid #fff;background:rgba(0,0,0,.45);box-shadow:0 1px 3px rgba(0,0,0,.6);color:#fff;font:900 13px/18px -apple-system,system-ui,sans-serif;text-align:center}
body.selmode .tile.sel::after{content:"✓";background:var(--accent2);border-color:var(--accent2)}
body.selmode .tile.sel{outline:3px solid var(--accent2);outline-offset:1px}
body.selmode .item{position:relative}
body.selmode .item .tog{visibility:hidden}
body.selmode .item::after{content:"";position:absolute;right:10px;top:50%;margin-top:-12px;width:24px;height:24px;box-sizing:border-box;border-radius:50%;border:2px solid #8a97a6;color:#fff;font:900 14px/20px -apple-system,system-ui,sans-serif;text-align:center}
body.selmode .item.sel{background:rgba(64,188,244,.12)}
body.selmode .item.sel::after{content:"✓";background:var(--accent2);border-color:var(--accent2)}
body.selmode #main{padding-bottom:70px}
html.a11y .stb{height:44px;width:50px}html.a11y .og-ob .stb{height:32px;width:46px}
html.a11y .st-rw .lb{font-size:15px}html.a11y .ol-sub{color:#b9c4cf;font-size:13px}html.a11y .ol-n{font-size:15.5px}
html.a11y .selbar-t button{height:44px}html.a11y .ol-vt{width:44px;height:44px}
/* v74-2 : feuille recalée au-dessus du clavier iOS (lsKb) */
.sheet.lssheet.kb{padding-bottom:10px;border-radius:16px 16px 0 0;transition:none}
.lssheet.kb .add-foot{bottom:-10px;margin-bottom:-10px;padding-bottom:10px}
/* v74-2 (t279u) : « Ajouter à… » — partiel (tiret neutre, contour) et « déjà dedans » (grisé) */
.ls-ck.part{border-color:#8a96a3;color:#c5cfda;background:none;font-size:16px}
.ls-row.full{opacity:.45;cursor:default}
.ls-row.full .ls-ck{border-style:dashed}
/* v74-2 (t281u) : .toast.act{display:flex} masquait l'effet de l'attribut hidden -> la carte « Annuler » ne disparaissait jamais */
.toast[hidden]{display:none!important}
.toast.act{touch-action:none}
/* v74-2 (t284u) : icône d'envoi devant « Partager » (taille du texte, couleur du texte) */
.shb{display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}
.shb .i-sh{width:1.1em;height:1.1em;flex:none;margin-top:-.12em}
.wide.shb:not([hidden]){display:flex}
/* v74-2 (t285u) : répartition de la valeur — petite ligne « dont N titres sans cote ? » qui déplie l'explication */
.c2-nc{display:inline-flex;align-items:center;gap:6px;margin:4px 0 0 15px;padding:2px 0;border:0;background:none;color:#8793a0;font:inherit;font-size:12.5px;text-align:left;cursor:pointer;max-width:calc(100% - 15px)}
.c2-nc span{min-width:0}
.c2-q{flex:none;font-style:normal;width:16px;height:16px;border-radius:50%;border:1px solid #5d6875;color:#aab4be;font-size:10.5px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;line-height:1}
.c2-nc[aria-expanded=true] .c2-q{background:#2a3440;border-color:#8793a0;color:#fff}
.c2-ncx{margin:6px 0 2px 15px;padding:8px 10px;border-radius:10px;background:#161c22;border:1px solid #262e36;font-size:12.5px;color:#aab4be;line-height:1.45}
.c2-ncx[hidden]{display:none}
.c2-ncx p{margin:0}
.c2-ncl{display:flex;flex-direction:column;gap:2px;margin-top:6px}
.c2-ncl button{display:block;width:100%;padding:5px 0;border:0;border-top:1px solid #222a32;background:none;color:#dfe5ea;font:inherit;font-size:13px;text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.c2-ncl small{color:#7f8b98}
.c2-ncl span{color:#7f8b98;font-size:12px;padding-top:4px}
html.a11y .c2-nc{color:#a3adb7;min-height:44px}
/* v74-2 (t287u) : suggestions de tags sous le champ de « + Ajouter des jeux » (même composant que le Catalogue) */
.add-qw{position:relative}
.add-qw .add-sug{left:0;right:0;z-index:5;overflow-y:auto;overscroll-behavior:contain}
/* v74-2 (t291u) : « Version : comme affichée · JP · US · EU » dans « Ajouter à… » ; repli de cote US signalé sur la ligne de liste */
.ls-ver{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-size:13px;color:var(--muted)}
.ls-ver>span{flex:none}
.ls-ver .seg{flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.ls-ver .seg::-webkit-scrollbar{display:none}
.ls-ver .seg button{flex:1 0 auto;padding:5px 9px;font-size:12.5px;font-weight:700;white-space:nowrap}
.ol-fb{margin-left:3px;font-size:.72em;color:var(--muted);font-weight:600}
/* v74-2 (rapport QA A3) : feuille / fiche ouverte -> le toast passe en haut de l'écran, il ne masque plus les boutons du bas des feuilles */
html.locked .toast{bottom:auto;top:calc(env(safe-area-inset-top) + 10px)}

/* v75 (Georges t298u, maquette 0e variante B) : colonne d'état fixe (alignée sur toutes les lignes), repère « L·C » discret, cases L / C dépliées sur la ligne ;
   colonne de prix de largeur fixe, alignée à droite, fourchette sur deux lignes */
.stc{flex:none;width:60px;display:flex;align-items:center;justify-content:center;gap:4px}
.stc .stb{width:auto;min-width:40px;height:26px;padding:0 6px;gap:3px}
.stb.mk{border:1px dashed #3d4753;background:none;color:#6f7c8b;font-size:11px;font-weight:700}
.stb.mk .dot{color:#55606c}
.stb.set{border-color:transparent;background:none;padding:0 2px}
.stb.set i{font-style:normal;display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 3px;box-sizing:border-box;border-radius:5px;font-size:11px;font-weight:900}
.stb.set i.l{background:var(--loose);color:#1d1600}.stb.set i.c{background:var(--accent);color:#04210d}
.stx{flex:none;box-sizing:border-box;width:28px;height:28px;border-radius:7px;border:2px solid #5d6976;background:none;color:#aab5c0;font:inherit;font-size:12px;font-weight:900;padding:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.stx.l.on{background:var(--loose);border-color:var(--loose);color:#1d1600}.stx.c.on{background:var(--accent);border-color:var(--accent);color:#04210d}
.ol-p{width:74px;min-width:0;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}
.ol-p .pr2{display:inline-flex;flex-direction:column;align-items:flex-end;line-height:1.15;font-size:11.5px;vertical-align:middle}
.og-ob .stc{width:auto}
.og-ob .stb.mk{background:rgba(10,12,15,.86);border-color:rgba(255,255,255,.45);color:#c5cfda}
.og-ob .stb.set{background:rgba(10,12,15,.78);border-radius:7px;padding:0 3px}
.og-ob .stc.op{background:rgba(10,12,15,.9);border-radius:9px;padding:3px}
.og-ob .stx{width:26px;height:26px;background:rgba(10,12,15,.6)}
html.a11y .stc{width:92px}html.a11y .stx{width:42px;height:42px;font-size:14px}html.a11y .stc .stb{height:42px;min-width:56px}html.a11y .ol-p{width:84px}
/* v75 (Georges t301u, maquette 0g V2) : icône Sélectionner au repos = pictogramme bleu plein (#40bcf4), sans fond ni contour en plus ; mode sélection : fond + anneau, nettement distinct */
.selbtn[aria-pressed=false]{color:var(--accent2)}
.selbtn[aria-pressed=true]{border-color:var(--accent2);background:#173040;color:#fff;box-shadow:0 0 0 2px rgba(64,188,244,.35)}
.stb.mk{gap:1px;letter-spacing:0}
/* v75 (Georges t300u, maquette 0f variante A) : fiche — cœur + listes compacts à droite de « MA VERSION » (remplace la rangée de pastilles) */
.d-hrow{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px}
.d-hrow h3{margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.d-hrow .d-lists{display:flex;flex-wrap:nowrap;gap:8px;margin:0;flex:none}
.dib{flex:none;box-sizing:border-box;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#1a2027;color:#9aa5b1;display:inline-flex;align-items:center;justify-content:center;position:relative;padding:0;cursor:pointer}
.dib svg{width:17px;height:17px;display:block}
.dib.wl.on{color:#a78bfa;border-color:rgba(167,139,250,.55);background:rgba(167,139,250,.12)}
.dib.ls.on{color:#3ddc6b;border-color:rgba(61,220,107,.45);background:rgba(61,220,107,.08)}
.dib .bdg{position:absolute;right:-4px;top:-4px;min-width:16px;height:16px;padding:0 4px;box-sizing:border-box;border-radius:8px;background:#3ddc6b;color:#06210f;font-size:10.5px;font-weight:800;display:flex;align-items:center;justify-content:center}
html.a11y .dib{width:44px;height:44px}html.a11y .dib svg{width:21px;height:21px}
/* v75 (t296u) : répartition de la valeur sur 2 lignes, mention « sans cote » en bout de ligne, petite et discrète */
.c2-vl{flex-wrap:nowrap;white-space:nowrap;min-width:0}
.c2-vl .c2-vt{flex:none}
.c2-vl .c2-nc{margin:0;padding:0;font-size:11.5px;gap:4px;min-width:0;max-width:none;flex:0 1 auto;overflow:hidden;color:#7f8b98}
.c2-vl .c2-nc span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.c2-vl .c2-q{width:14px;height:14px;font-size:9.5px}
.c2-ncx p+p{margin-top:5px}
html.a11y .c2-vl .c2-nc{min-height:0;font-size:12.5px}
/* v75 (t303u) : photo + galerie à droite du champ de la feuille « Ajouter des jeux » (même rendu que l'en-tête du Catalogue) */
.add-qr{display:flex;gap:6px;align-items:stretch}
.add-qr #addQ{flex:1;min-width:0}
.add-qr .camb{width:40px}
html.a11y .add-qr .camb{width:44px}
.cam.over{z-index:70}
.add-r.flash{animation:addFlash 1.2s ease-out}
@keyframes addFlash{0%{background:rgba(34,197,94,.28)}100%{background:transparent}}
/* v75 (t302u, maquette 0j) : badge de la version affichée cerclé de blanc ; toast « Changer » : versions existantes */
/* v76-1 (Georges t319u « un plus leger mais notable cerclage clair, ca polue de trop la vision de la liste ») : anneau de couleur (v75-1) remplacé
   par un filet clair de 1 px (t321u « un tout tout petit peu moins clair le liseré » : opacité .66 -> .56), doublé d'un liseré sombre fin pour rester visible sur les jaquettes claires ; couleurs JP/US/EU gardées sur les boutons et les pastilles SORTIES */
.tile .rbg.cur,.tile .rbg.cur.rJP,.tile .rbg.cur.rNA,.tile .rbg.cur.rEU{box-shadow:0 0 0 1px rgba(255,255,255,.56),0 0 0 2px rgba(0,0,0,.32),0 1px 3px rgba(0,0,0,.5)}
/* v75-1 (t309u) : choix de version de « Ajouter à… » aux couleurs des régions */
.ls-ver .seg button[data-r="JP"]{color:#ff8a8a}.ls-ver .seg button[data-r="NA"]{color:#8ac4ff}.ls-ver .seg button[data-r="EU"]{color:#b4e08a}
.ls-ver .seg button.on[data-r="JP"]{background:rgba(255,138,138,.16);box-shadow:0 0 0 1.5px #ff8a8a inset;color:#ff8a8a}
.ls-ver .seg button.on[data-r="NA"]{background:rgba(138,196,255,.16);box-shadow:0 0 0 1.5px #8ac4ff inset;color:#8ac4ff}
.ls-ver .seg button.on[data-r="EU"]{background:rgba(180,224,138,.16);box-shadow:0 0 0 1.5px #b4e08a inset;color:#b4e08a}
.toast .t-regs{display:flex;gap:6px}
.toast .t-reg{min-width:40px;height:32px;padding:0 10px;border-radius:9px;border:1px solid #3a4450;background:#1a2027;color:#e8edf2;font:inherit;font-size:13px;font-weight:800;cursor:pointer}
.toast .t-reg.on{border-color:var(--accent2);box-shadow:0 0 0 1.5px var(--accent2) inset}
/* v75-1 (t309u « tu peux juste reprendre le code couleur us eu jp ? ») : mêmes couleurs que les pastilles SORTIES (.badge.JP/NA/EU) ;
   choisie = même couleur, plus marquée (fond teinté + bord plein), sans l'anneau bleu générique */
.toast .t-reg[data-r]{color:#e0c48a;border-color:#504a2a}
.toast .t-reg[data-r="JP"]{color:#ff8a8a;border-color:#5a2b2b}.toast .t-reg[data-r="NA"]{color:#8ac4ff;border-color:#24405e}.toast .t-reg[data-r="EU"]{color:#b4e08a;border-color:#35502a}
.toast .t-reg.on[data-r]{box-shadow:none;border-width:1.5px;border-color:#e0c48a;background:rgba(224,196,138,.16)}
.toast .t-reg.on[data-r="JP"]{border-color:#ff8a8a;background:rgba(255,138,138,.16)}.toast .t-reg.on[data-r="NA"]{border-color:#8ac4ff;background:rgba(138,196,255,.16)}.toast .t-reg.on[data-r="EU"]{border-color:#b4e08a;background:rgba(180,224,138,.16)}
.tile .rb:has(.cur) .rbg.no:not(.cur){opacity:.55}
/* v75 (Georges t302u, maquette 0h) : accueil Listes — Wishlist cerclée violet, cartes compactes, bande adaptative, gestes */
#lstBody{position:relative}
.ls-sw{position:relative;margin-bottom:9px;border-radius:14px;overflow:hidden;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.ls-sw .ls-card{margin:0;touch-action:pan-y;z-index:1}
.ls-sw.wl{overflow:visible}
.ls-card.wlc{border:1.5px solid #a78bfa;box-shadow:0 0 0 3px rgba(167,139,250,.12)}
.ls-sw .ls-open{padding:10px 12px 9px}
.ls-strip.v2{display:block;height:72px;width:100%;overflow:hidden}
.ls-strip.v2>*+*{margin-left:0}
.ls-strip.v2 img,.ls-strip.v2 .ph,.ls-strip.v2 .more{position:absolute;bottom:0;width:52px;height:72px;border-radius:5px;box-shadow:0 0 0 1px rgba(255,255,255,.08),-3px 0 8px rgba(0,0,0,.55)}
.ls-strip.v2 .more{width:44px;font-size:14px}
.ls-strip.empty span{width:44px;height:60px}
.ls-sw .ls-meta{margin-top:7px}
.ls-sw .ls-meta b{font-size:15px}
.ls-wlh{display:inline-flex;color:#a78bfa;margin-right:5px;vertical-align:-1px}.ls-wlh svg{width:14px;height:14px;display:block}
.ls-sw .ls-pin{color:#60b8f0;margin-right:5px;vertical-align:-1px}.ls-sw .ls-pin svg{width:14px;height:14px;transform:none}
.ls-act{position:absolute;top:0;bottom:0;width:100px;display:none;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:0;color:#fff;font:inherit;font-size:12.5px;font-weight:800;z-index:0;padding:0 6px;text-align:center}
.ls-act svg{width:20px;height:20px}
.ls-act.del{right:0;background:#e5484d;cursor:pointer}
.ls-act.pin{left:0;background:#2f8fd8}
.ls-sw.sl .ls-act.del,.ls-sw.sr .ls-act.pin{display:flex}
.ls-sw.lift{position:absolute;z-index:6;margin:0;overflow:visible;pointer-events:none}
.ls-sw.lift .ls-card{transform:scale(1.03);box-shadow:0 14px 30px rgba(0,0,0,.65),0 0 0 1.5px #c5cfda;background:#1d252d}
.ls-gap{margin-bottom:9px;border:1.5px dashed #4a5561;border-radius:14px;display:flex;align-items:center;justify-content:center;color:#7f8b98;font-size:12.5px;box-sizing:border-box}
.ls-sw.dim{opacity:.55}
.ls-sug.c2{gap:6px;max-height:62px;overflow:hidden}
.ls-sug.c2 button{height:28px;padding:0 10px;border-radius:14px;font-size:12.5px}
.ls-sug.c2 button.tg{border-color:rgba(64,188,244,.55);color:#9ed8f7;background:rgba(64,188,244,.08)}
.ls-selh{margin:-2px 0 8px;font-size:12.5px;color:#9ed8f7}
html.a11y .ls-sug.c2{max-height:72px}html.a11y .ls-sug.c2 button{height:32px;font-size:14px}
/* v75 (t302u, maquette 0i) : astuce unique, sans voile, contour vert sur l'élément */
.tips.v3{pointer-events:none;padding:0;background:none}
.tips.v3 .tp-bub{pointer-events:none;display:flex;align-items:center;gap:10px;max-width:min(280px,calc(100vw - 24px));padding:8px 8px 8px 12px;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.5);z-index:2}
.tips.v3 .tp-bub p{margin:0;flex:1;font-size:14px;line-height:1.3}
.tips.v3 .tp-ok{flex:none;pointer-events:auto;padding:6px 11px;font-size:13px}
.tips.v3 .tp-ar{width:12px;height:12px;z-index:3;pointer-events:none}
.tp-t{outline:2px solid rgba(34,197,94,.75);outline-offset:3px;border-radius:10px}
html.a11y .tips.v3 .tp-bub p{font-size:15.5px}
.tips.v3{z-index:90;touch-action:auto}
.ls-sw .ls-card.tp-t{outline:0;box-shadow:inset 0 0 0 2px rgba(34,197,94,.75)}
.igw{display:inline-block;line-height:0;vertical-align:-.17em}.igw .ig{vertical-align:0}
/* v75 (QA A9) : la coche n'est plus du texte dans le DOM (lecteurs d'écran : aria-pressed / aria-selected) */
.pk-row.on .pk-chk::before,.lp-it.on .lp-ck::before{content:"✓"}
/* v75 (QA A10) */
.pk-jump.fr{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 44px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 44px),transparent)}
.pk-jump.fl{-webkit-mask-image:linear-gradient(90deg,transparent,#000 36px);mask-image:linear-gradient(90deg,transparent,#000 36px)}
.pk-jump.fl.fr{-webkit-mask-image:linear-gradient(90deg,transparent,#000 36px,#000 calc(100% - 44px),transparent);mask-image:linear-gradient(90deg,transparent,#000 36px,#000 calc(100% - 44px),transparent)}
.ls-err{margin:-4px 0 8px;font-size:13px;color:#ff8a8a}
/* v75 (QA A18) : le « ? » d’aide des titres est dessiné (plus de « GAMES? » dans le texte du titre) */
.c2-sec h4 .c2-q::before{content:"?"}
/* v75 (QA A19) : le badge Loose ne tronque plus le titre : le titre passe au-dessus du badge */
.tile.loose .cap{padding-bottom:24px}
html.a11y .tile.loose .cap{padding-bottom:27px}
/* v75 (QA A20) : « L’historique commence aujourd’hui » jamais tronqué (passe sur 2 lignes si besoin) */
html.a11y .vh-lab,.vh-lab:only-child{white-space:normal;overflow:visible;text-overflow:clip}
/* v75-1 (t311u « On peut le mettre un peu plus a droite quitte a réduire un tout tout petit peu le prix ») : colonne L/C collée à droite, près du prix ;
   prix ~6 % plus petit, colonne prix plus étroite ; la place gagnée va au titre ; colonnes toujours fixes et alignées */
.ol-r .stc{width:56px;justify-content:flex-end}
.ol-r .ol-p{width:var(--pw,60px);font-size:12.7px;margin-left:-3px}
.ol-r .ol-p .pr2{font-size:10.8px}
html.a11y .ol-r .stc{width:88px}html.a11y .ol-r .ol-p{width:var(--pw,72px);font-size:13.5px}html.a11y .ol-r .ol-p .pr2{font-size:11.5px}
/* v76 (t314u) : titres des feuilles / fiches limités à 3 lignes avec « … » (le nom complet reste lu par les lecteurs d'écran : coupe visuelle seulement ; fiche : nom complet aussi en petit dessous si besoin) */
.d-title,.ls-ih b,.ls-sh h3,.sheet h2,.cr-t b{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;overflow-wrap:anywhere}
