: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:rgba(20,24,28,.94);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.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;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)}
.tile.loose img,.tile.loose .ph{filter:grayscale(1) brightness(.75) contrast(.95);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(1) brightness(.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:" · le vôtre";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:1;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 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}
