:root{--gem-primary:#06b6d4;--gem-secondary:#0891b2;--gem-accent:#67e8f9;--gem-glow:rgba(6,182,212,0.4);--gem-rgb:6,182,212;--bg-dark:#0a0a1a;--bg-card:#1a1a2e;--bg-card-hover:#22223a;--text-primary:#fff;--text-secondary:rgba(255,255,255,0.7);--text-muted:rgba(255,255,255,0.5);--border-subtle:rgba(255,255,255,0.08);--rarity-common:#9ca3af;--rarity-uncommon:#22c55e;--rarity-rare:#3b82f6;--rarity-epic:#a855f7;--rarity-legendary:#f59e0b;--rarity-mythic:#ef4444}*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}body{font-family:'Nunito',sans-serif;background:var(--bg-dark);color:var(--text-primary);min-height:100vh;padding-top:72px}#header-placeholder{position:relative;z-index:200}.emporium-bg{position:fixed;top:0;left:0;right:0;bottom:0;z-index:0;background:radial-gradient(ellipse at 20% 20%,rgba(var(--gem-rgb),0.15) 0,transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(var(--gem-rgb),0.1) 0,transparent 50%),var(--bg-dark);pointer-events:none}.emporium-header{position:relative;z-index:10;padding:1rem 2rem;background:rgba(0,0,0,0.3);border-bottom:1px solid rgba(255,255,255,0.1)}.emporium-header-inner{max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px}.back-btn{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);text-decoration:none;font-weight:600;padding:.5rem 1rem;border-radius:10px;transition:all .3s ease}.back-btn:hover{color:white;background:rgba(255,255,255,0.1)}.emporium-title-area{display:flex;align-items:center;gap:12px}.emporium-icon{width:50px;height:50px;border-radius:15px;background:linear-gradient(135deg,var(--gem-primary),var(--gem-secondary));display:flex;align-items:center;justify-content:center;font-size:1.5rem;box-shadow:0 0 20px var(--gem-glow)}.emporium-name{font-family:'Fredoka',sans-serif;font-size:1.8rem;font-weight:700;background:linear-gradient(135deg,var(--gem-accent),#a5f3fc,var(--gem-primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-right{display:flex;align-items:center;gap:.75rem}.gemz-balance-display{display:flex;align-items:center;gap:6px;background:rgba(var(--gem-rgb),0.15);border:1px solid rgba(var(--gem-rgb),0.3);border-radius:20px;padding:8px 16px;font-weight:700;font-size:1rem;color:var(--gem-accent)}.gemz-balance-display .fa-gem{font-size:.85rem}.currency-label{font-size:.8rem;color:var(--text-muted)}.emporium-tabs{position:relative;z-index:10;display:flex;justify-content:center;gap:4px;padding:12px 20px;background:rgba(0,0,0,0.2);border-bottom:1px solid var(--border-subtle)}.tab-btn{background:transparent;border:1px solid transparent;color:var(--text-muted);padding:8px 20px;border-radius:8px;font-family:'Nunito',sans-serif;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px}.tab-btn:hover{color:var(--text-secondary);background:rgba(255,255,255,0.04)}.tab-btn.active{color:var(--gem-accent);background:rgba(var(--gem-rgb),0.12);border-color:rgba(var(--gem-rgb),0.3)}.shopkeeper-section{display:flex;flex-direction:column;align-items:center;text-align:center;padding:0;margin-bottom:2rem}.shopkeeper-character{width:100%;max-width:500px;height:400px;display:flex;align-items:center;justify-content:center;margin-bottom:1rem}.shopkeeper-character .shopkeeper-img{max-width:100%;max-height:400px;object-fit:contain;filter:drop-shadow(0 12px 32px rgba(0,0,0,0.6));transition:transform .3s ease,filter .3s ease;cursor:pointer}.shopkeeper-character .shopkeeper-img.NuPalz-flip{transform:scaleX(-1)}.shopkeeper-section:hover .shopkeeper-img:not(.NuPalz-flip){transform:scale(1.02);filter:drop-shadow(0 12px 32px rgba(0,0,0,0.6)) brightness(1.1)}.shopkeeper-section:hover .shopkeeper-img.NuPalz-flip{transform:scaleX(-1) scale(1.02);filter:drop-shadow(0 12px 32px rgba(0,0,0,0.6)) brightness(1.1)}.shopkeeper-character .shopkeeper-emoji{font-size:12rem;filter:drop-shadow(0 12px 32px rgba(0,0,0,0.6))}.shopkeeper-speech{width:100%;max-width:700px;position:relative;background:rgba(255,255,255,0.05);border:1px solid rgba(var(--gem-rgb),0.3);border-radius:16px;padding:1.25rem 1.5rem}.shopkeeper-name{font-family:'Fredoka',sans-serif;font-weight:600;font-size:1.4rem;color:var(--gem-primary);margin-bottom:.5rem}.shopkeeper-message{color:var(--text-secondary);line-height:1.6;font-size:1.05rem;max-width:600px;margin:0 auto}.image-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.9);z-index:10000;justify-content:center;align-items:center;cursor:zoom-out}.image-modal.active{display:flex}.image-modal img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:8px;box-shadow:0 0 60px rgba(255,255,255,0.15)}.category-filters{margin-bottom:1.5rem}.filter-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.filter-label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;min-width:70px}.filter-tabs{display:flex;gap:.5rem;flex-wrap:wrap}.cat-btn{padding:.5rem 1rem;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);border-radius:10px;color:var(--text-secondary);font-family:'Nunito',sans-serif;font-weight:600;font-size:.85rem;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:5px}.cat-btn:hover{background:rgba(255,255,255,0.1);color:white}.cat-btn.active{background:var(--gem-primary);border-color:var(--gem-primary);color:white}.cat-btn i{margin-right:.15rem;font-size:.75rem}.emporium-content{max-width:1400px;margin:0 auto;padding:2rem;position:relative;z-index:1}.tab-panel{display:none}.tab-panel.active{display:block}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-title{font-family:'Fredoka',sans-serif;font-size:1.4rem;font-weight:600}.items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.item-card{background:var(--bg-card);border:1px solid rgba(255,255,255,0.1);border-radius:16px;overflow:hidden;transition:all .3s ease;cursor:pointer;display:flex;flex-direction:column;position:relative}.item-card:hover{transform:translateY(-5px);border-color:var(--gem-primary);box-shadow:0 10px 30px rgba(var(--gem-rgb),0.2)}.item-card.owned-card{border-color:rgba(var(--gem-rgb),0.25)}.item-card.maxed-out{opacity:.65}.item-card.sold-out{opacity:.4;pointer-events:none}.item-header{padding:1rem;display:flex;justify-content:space-between;align-items:flex-start}.item-icon{width:60px;height:60px;background:rgba(255,255,255,0.1);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.8rem}.item-card[data-rarity="common"] .item-icon{color:var(--rarity-common)}.item-card[data-rarity="uncommon"] .item-icon{color:var(--rarity-uncommon)}.item-card[data-rarity="rare"] .item-icon{color:var(--rarity-rare)}.item-card[data-rarity="epic"] .item-icon{color:var(--rarity-epic)}.item-card[data-rarity="legendary"] .item-icon{color:var(--rarity-legendary)}.item-card[data-rarity="mythic"] .item-icon{color:var(--rarity-mythic)}.item-rarity{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:700;text-transform:uppercase}.rarity-common{background:rgba(156,163,175,0.2);color:var(--rarity-common)}.rarity-uncommon{background:rgba(34,197,94,0.2);color:var(--rarity-uncommon)}.rarity-rare{background:rgba(59,130,246,0.2);color:var(--rarity-rare)}.rarity-epic{background:rgba(168,85,247,0.2);color:var(--rarity-epic)}.rarity-legendary{background:rgba(245,158,11,0.2);color:var(--rarity-legendary)}.rarity-mythic{background:rgba(239,68,68,0.2);color:var(--rarity-mythic)}.item-body{padding:0 1rem 1rem;flex:1}.item-name{font-weight:700;font-size:1.1rem;margin-bottom:.5rem}.item-description{font-size:.85rem;color:var(--text-secondary);line-height:1.4;margin-bottom:1rem;min-height:40px}.item-badges{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem}.item-category-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;background:linear-gradient(135deg,rgba(var(--gem-rgb),0.25),rgba(var(--gem-rgb),0.1));border:1px solid rgba(var(--gem-rgb),0.4);border-radius:8px;font-size:.7rem;font-weight:700;color:var(--gem-accent);text-transform:uppercase;letter-spacing:.5px}.item-category-badge i{font-size:.65rem;opacity:.9}.item-category-badge.cat-badge{background:linear-gradient(135deg,rgba(168,85,247,0.25),rgba(168,85,247,0.1));border-color:rgba(168,85,247,0.4);color:#d8b4fe}.item-category-badge.cat-border{background:linear-gradient(135deg,rgba(6,182,212,0.25),rgba(6,182,212,0.1));border-color:rgba(6,182,212,0.4);color:#67e8f9}.item-category-badge.cat-accessory{background:linear-gradient(135deg,rgba(244,114,182,0.25),rgba(244,114,182,0.1));border-color:rgba(244,114,182,0.4);color:#f9a8d4}.item-category-badge.cat-theme{background:linear-gradient(135deg,rgba(245,158,11,0.25),rgba(245,158,11,0.1));border-color:rgba(245,158,11,0.4);color:#fde047}.item-category-badge.cat-chat_effect{background:linear-gradient(135deg,rgba(239,68,68,0.25),rgba(239,68,68,0.1));border-color:rgba(239,68,68,0.4);color:#fca5a5}.item-category-badge.cat-crafting_material{background:linear-gradient(135deg,rgba(132,204,22,0.25),rgba(132,204,22,0.1));border-color:rgba(132,204,22,0.4);color:#bef264}.item-category-badge.cat-boost{background:linear-gradient(135deg,rgba(249,115,22,0.25),rgba(249,115,22,0.1));border-color:rgba(249,115,22,0.4);color:#fdba74}.item-effects{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.4rem}.effect-tag{display:inline-flex;align-items:center;padding:.15rem .45rem;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);border-radius:6px;font-size:.65rem;font-weight:700;color:var(--gem-accent);letter-spacing:.3px}.sell-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem 1rem;background:linear-gradient(135deg,rgba(239,68,68,0.3),rgba(239,68,68,0.15));border:1px solid rgba(239,68,68,0.5);border-radius:10px;color:#fca5a5;font-weight:700;font-size:.8rem;cursor:pointer;transition:all .2s}.sell-btn:hover{background:linear-gradient(135deg,rgba(239,68,68,0.5),rgba(239,68,68,0.3));border-color:rgba(239,68,68,0.8);color:#fff;transform:translateY(-1px)}.sell-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.sell-modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.7);backdrop-filter:blur(4px);z-index:1000;justify-content:center;align-items:center}.sell-modal{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:16px;padding:2rem;max-width:400px;width:90%;text-align:center}.sell-modal h3{font-size:1.2rem;margin-bottom:.5rem}.sell-modal .sell-info{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.9rem}.sell-modal .sell-refund{font-size:1.4rem;font-weight:800;color:#22c55e;margin-bottom:1.5rem}.sell-modal .sell-actions{display:flex;gap:.75rem;justify-content:center}.sell-modal .sell-actions button{padding:.6rem 1.5rem;border-radius:10px;font-weight:700;cursor:pointer;border:1px solid transparent;font-size:.85rem;transition:all .2s}.sell-modal .btn-sell-cancel{background:rgba(255,255,255,0.08);border-color:rgba(255,255,255,0.15);color:var(--text-secondary)}.sell-modal .btn-sell-cancel:hover{background:rgba(255,255,255,0.15);color:#fff}.sell-modal .btn-sell-confirm{background:linear-gradient(135deg,rgba(239,68,68,0.4),rgba(239,68,68,0.2));border-color:rgba(239,68,68,0.6);color:#fca5a5}.sell-modal .btn-sell-confirm:hover{background:linear-gradient(135deg,rgba(239,68,68,0.6),rgba(239,68,68,0.4));color:#fff}.owned-badge{position:absolute;top:10px;left:10px;background:rgba(34,197,94,0.2);color:#22c55e;font-size:.65rem;font-weight:700;text-transform:uppercase;padding:3px 8px;border-radius:6px;letter-spacing:.5px;display:flex;align-items:center;gap:3px;border:1px solid rgba(34,197,94,0.3)}.owned-badge.equipped{background:rgba(6,182,212,0.2);color:var(--gem-accent);border-color:rgba(var(--gem-rgb),0.3)}.item-footer{padding:1rem;border-top:1px solid rgba(255,255,255,0.1);display:flex;justify-content:space-between;align-items:center;margin-top:auto}.item-price{display:flex;align-items:center;gap:.5rem;font-size:1.2rem;font-weight:700;color:var(--gem-accent)}.item-price .fa-gem{font-size:.95rem}.gz-label{font-size:.8rem;color:var(--text-muted);margin-left:-.2rem}.item-stock{font-size:.85rem;color:var(--text-muted)}.buy-btn{padding:.6rem 1.5rem;background:linear-gradient(135deg,var(--gem-primary),var(--gem-secondary));border:0;border-radius:10px;color:white;font-weight:700;font-family:'Nunito',sans-serif;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:.35rem}.buy-btn:hover{transform:scale(1.05);box-shadow:0 5px 20px rgba(var(--gem-rgb),0.4)}.buy-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.buy-btn.owned-btn{background:rgba(34,197,94,0.2);color:#22c55e;border:1px solid rgba(34,197,94,0.3);cursor:default}.buy-btn.owned-btn:hover{transform:none;box-shadow:none}.inventory-card .equip-btn{padding:.5rem 1.2rem;background:rgba(var(--gem-rgb),0.15);border:1px solid rgba(var(--gem-rgb),0.3);color:var(--gem-accent);border-radius:8px;font-family:'Nunito',sans-serif;font-weight:700;font-size:.8rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.35rem}.inventory-card .equip-btn:hover{background:rgba(var(--gem-rgb),0.25)}.inventory-card .equip-btn.equipped{background:rgba(34,197,94,0.15);border-color:rgba(34,197,94,0.3);color:#22c55e}.history-list{display:flex;flex-direction:column;gap:8px}.history-row{display:flex;align-items:center;gap:14px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;padding:12px 16px}.history-icon{width:44px;height:44px;border-radius:10px;background:rgba(255,255,255,0.05);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}.history-details{flex:1;min-width:0}.history-name{font-weight:700;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-date{font-size:.75rem;color:var(--text-muted)}.history-price{display:flex;align-items:center;gap:4px;font-weight:800;color:var(--gem-accent);font-size:.9rem;flex-shrink:0}.history-qty{font-size:.75rem;color:var(--text-muted);flex-shrink:0}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.85);backdrop-filter:blur(8px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.modal-card{background:var(--bg-card);border:1px solid rgba(var(--gem-rgb),0.3);border-radius:20px;width:100%;max-width:450px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,0.5),0 0 40px var(--gem-glow);animation:modalSlide .3s ease}@keyframes modalSlide{from{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-subtle)}.modal-header h3{font-family:'Fredoka',sans-serif;font-size:1.2rem}.modal-close{background:0;border:0;color:var(--text-muted);font-size:1.5rem;cursor:pointer;line-height:1}.modal-close:hover{color:var(--text-primary)}.modal-body{padding:24px 20px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.modal-item-icon{width:72px;height:72px;border-radius:16px;background:rgba(var(--gem-rgb),0.12);display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--gem-accent)}#modal-item-name{font-family:'Fredoka',sans-serif;font-size:1.2rem;font-weight:700}.modal-item-desc{font-size:.85rem;color:var(--text-secondary);line-height:1.4}.modal-item-rarity{font-size:.72rem;font-weight:700;text-transform:uppercase;padding:3px 10px;border-radius:4px}.modal-quantity{display:flex;align-items:center;gap:12px;margin-top:6px}.modal-quantity label{font-weight:600;font-size:.9rem}.qty-controls{display:flex;align-items:center;gap:8px}.qty-controls button{width:32px;height:32px;border-radius:8px;background:rgba(255,255,255,0.08);border:1px solid var(--border-subtle);color:var(--text-primary);font-size:1rem;font-weight:700;cursor:pointer;transition:background .2s}.qty-controls button:hover{background:rgba(var(--gem-rgb),0.2)}.qty-controls span{font-weight:800;font-size:1.1rem;min-width:24px;text-align:center}.modal-price{display:flex;align-items:center;gap:6px;font-weight:800;font-size:1.3rem;color:var(--gem-accent);margin-top:8px}.modal-price .fa-gem{font-size:1rem}.modal-footer{display:flex;gap:10px;padding:16px 20px;border-top:1px solid var(--border-subtle)}.btn-cancel{flex:1;padding:10px;border-radius:10px;border:1px solid var(--border-subtle);background:transparent;color:var(--text-secondary);font-family:'Nunito',sans-serif;font-weight:700;cursor:pointer;transition:all .2s}.btn-cancel:hover{background:rgba(255,255,255,0.05)}.btn-purchase{flex:1.5;padding:10px;border-radius:10px;border:0;background:linear-gradient(135deg,var(--gem-primary),var(--gem-secondary));color:#fff;font-family:'Nunito',sans-serif;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s;box-shadow:0 4px 16px var(--gem-glow)}.btn-purchase:hover{transform:translateY(-1px);box-shadow:0 6px 24px var(--gem-glow)}.btn-purchase:disabled{opacity:.5;cursor:not-allowed;transform:none}.toast-container{position:fixed;bottom:24px;right:24px;z-index:2000;display:flex;flex-direction:column;gap:8px}.toast{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px;padding:12px 18px;font-weight:600;font-size:.85rem;display:flex;align-items:center;gap:8px;box-shadow:0 8px 32px rgba(0,0,0,0.3);animation:toastIn .3s ease-out;max-width:340px}.toast.success{border-color:rgba(34,197,94,0.4);color:#22c55e}.toast.error{border-color:rgba(239,68,68,0.4);color:#ef4444}.toast.info{border-color:rgba(var(--gem-rgb),0.4);color:var(--gem-accent)}@keyframes toastIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 20px;color:var(--text-muted);font-size:.95rem;grid-column:1 / -1}.loading-state i,.empty-state i{font-size:2rem;opacity:.5}@media(max-width:768px){body{padding-top:56px}.emporium-header{padding:10px 12px}.emporium-name{font-size:1.1rem}.shopkeeper-character{max-width:300px;height:280px}.shopkeeper-character .shopkeeper-img{max-height:280px}.shopkeeper-character .shopkeeper-emoji{font-size:8rem}.shopkeeper-name{font-size:1.2rem}.items-grid{grid-template-columns:1fr}.category-filters{padding:8px 12px}.cat-btn{padding:5px 10px;font-size:.75rem}.header-right{flex-direction:column;gap:.5rem}}@media(max-width:480px){.emporium-header-inner{flex-wrap:wrap;gap:8px}.back-btn span{display:none}.tab-btn{padding:6px 12px;font-size:.8rem}.tab-btn i{display:none}}