<!-- SOLID-PLAYTIME · part 182 -->
var panel=document.createElement('div');
panel.id='invPanel';
panel.style.cssText='position:fixed;inset:0;z-index:10001;display:none;background:rgba(0,0,0,0.88);overflow-y:auto;-webkit-overflow-scrolling:touch;';
var wrap=document.createElement('div');
wrap.style.cssText='max-width:520px;margin:0 auto;padding:14px 12px 40px;';
var head=document.createElement('div');
head.style.cssText='display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;';
var title=document.createElement('div');
title.textContent='INVENTORY';
title.style.cssText='color:#ffd700;font-weight:bold;font-size:18px;letter-spacing:2px;';
var heldLine=document.createElement('div');
heldLine.style.cssText='color:#aaa;font-size:11px;margin-bottom:8px;min-height:14px;';
var closeBtn=document.createElement('button');
closeBtn.textContent='CLOSE';
closeBtn.style.cssText='padding:8px 16px;background:#1a1a1a;color:#ffd700;border:1px solid #ffd700;border-radius:8px;font-weight:bold;';
closeBtn.addEventListener('click',function(){ panel.style.display='none'; });
head.appendChild(title); head.appendChild(closeBtn);
var nav=document.createElement('div');
nav.style.cssText='display:flex;justify-content:space-between;align-items:center;margin:8px 0;';
var prevBtn=document.createElement('button'); prevBtn.textContent='◀ PREV';
var nextBtn=document.createElement('button'); nextBtn.textContent='NEXT ▶';
var pageLbl=document.createElement('span');
[prevBtn,nextBtn].forEach(function(b){ b.style.cssText='padding:10px 14px;background:#1a1a1a;color:#ffd700;border:1px solid #ffd700;border-radius:8px;font-weight:bold;'; });
pageLbl.style.cssText='color:#ffd700;font-weight:bold;font-size:14px;';
prevBtn.addEventListener('click',function(){ if(inv.page>0){ inv.page--; renderInv(); } });
nextBtn.addEventListener('click',function(){ if(inv.page<TOTAL_PAGES-1){ inv.page++; renderInv(); } });
nav.appendChild(prevBtn); nav.appendChild(pageLbl); nav.appendChild(nextBtn);
var grid=document.createElement('div');
grid.style.cssText='display:grid;grid-template-columns:repeat(5,1fr);gap:8px;';
wrap.appendChild(head); wrap.appendChild(heldLine); wrap.appendChild(nav); wrap.appendChild(grid);
panel.appendChild(wrap);
document.body.appendChild(panel);

function slotCount(item){
  if(item.kind==='weapon') return null;
  return inv.counts[item.variant+'-'+item.shape]||0;
}
function renderInv(){
  grid.innerHTML='';
  var start=inv.page*PER_PAGE;
  heldLine.textContent=inv.held?('HELD: '+inv.held.toUpperCase()+' ×'+(inv.counts[inv.held]||0)):'HELD: —';
  for(var i=0;i<PER_PAGE;i++){
    var idx=start+i;
    var slot=document.createElement('button');
    slot.style.cssText='aspect-ratio:0.86;background:#141414;border:1px solid #333;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px;position:relative;';
    if(idx<catalog.length){
      (function(item){
        var img=document.createElement('img');
        img.src=iconFor(item);
        img.style.cssText='width:40px;height:40px;pointer-events:none;';
        var nm=document.createElement('div');
        nm.textContent=item.name;
        nm.style.cssText='color:#ccc;font-size:8px;line-height:1.1;text-align:center;pointer-events:none;';
        slot.appendChild(img); slot.appendChild(nm);
        if(item.kind==='weapon'){
          var eq=item.w===inv.equipped;
          slot.style.border=eq?'2px solid #ffd700':'1px solid #333';
          slot.style.background=eq?'#3a2c00':'#141414';
          if(eq){ var e=document.createElement('div'); e.textContent='EQUIPPED'; e.style.cssText='color:#ffd700;font-size:7px;font-weight:bold;'; slot.appendChild(e); }
        }else{
          var n=slotCount(item);
          var badge=document.createElement('div');
          badge.textContent=n>0?('×'+n):'—';
          badge.style.cssText='color:'+(n>0?item.css:'#555')+';font-size:10px;font-weight:bold;';
          slot.appendChild(badge);
          if(n===0) slot.style.opacity='0.45';
          if(inv.held===(item.variant+'-'+item.shape)){ slot.style.border='2px solid '+item.css; }
        }
        slot.addEventListener('click',function(){ tapItem(item); });
      })(catalog[idx]);
    }else{
      slot.disabled=true;
      slot.style.opacity='0.18';
    }
    grid.appendChild(slot);
  }
  pageLbl.textContent='PAGE '+(inv.page+1)+'/'+TOTAL_PAGES;
}
function tapItem(item){
  if(item.kind==='weapon'){
    inv.equipped=item.w; save();
    try{ if(window.equipWeapon) window.equipWeapon(item.w); }catch(e){}
    if(window.setActiveWeapon) try{ window.setActiveWeapon(item.w); }catch(e2){}
    toast(item.name+' EQUIPPED',item.css);
  }else{
    var key=item.variant+'-'+item.shape;
    var n=inv.counts[key]||0;
    if(n<=0){ toast('NONE YET — HARVEST '+item.variant.toUpperCase()+' NODES','#888'); return; }
    inv.held=key; save();
    toast('HELD: '+item.name+' ×'+n,item.css);
  }
  renderInv();
}

/* inventory open button (replaces the 4-