.btn{display:inline-flex;align-items:center;gap:var(--space-sm);padding:10px 20px;border-radius:var(--radius-md);font-size:0.9rem;font-weight:600;transition:all var(--transition-normal);white-space:nowrap;user-select:none}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover{background:var(--color-accent-light);box-shadow:var(--shadow-glow);transform:translateY(-1px)}.btn-secondary{background:var(--color-bg-card);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover{border-color:var(--color-accent);background:var(--color-bg-card-hover)}.btn-ghost{color:var(--color-text-secondary)}.btn-ghost:hover{color:var(--color-text-primary);background:var(--color-bg-card)}.btn-sm{padding:6px 14px;font-size:0.8rem}.btn-lg{padding:14px 28px;font-size:1rem}.btn-icon{width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--color-bg-card);border:1px solid var(--color-border);transition:all var(--transition-normal)}.btn-icon:hover{border-color:var(--color-accent);box-shadow:var(--shadow-glow)}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--radius-full);font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.5px}.badge-genre{background:rgba(108,92,231,0.15);color:var(--color-accent-light);border:1px solid rgba(108,92,231,0.3)}.badge-platform{background:rgba(0,184,148,0.15);color:var(--color-success);border:1px solid rgba(0,184,148,0.3)}.badge-rating{background:rgba(253,203,110,0.15);color:var(--color-warning);border:1px solid rgba(253,203,110,0.3)}.badge-new{background:rgba(225,112,85,0.15);color:var(--color-danger);border:1px solid rgba(225,112,85,0.3)}.input{width:100%;padding:10px 16px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);transition:border-color var(--transition-fast)}.input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow)}.input::placeholder{color:var(--color-text-muted)}.input-icon{position:relative}.input-icon .input{padding-left:40px}.input-icon svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none}.select{appearance:none;width:100%;padding:10px 36px 10px 16px;background:var(--color-bg-card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238888a0' stroke-width='2' fill='none'/%3E%3C/svg%3E") no-repeat right 12px center;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);cursor:pointer;transition:border-color var(--transition-fast)}.select:focus{outline:none;border-color:var(--color-accent)}.card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition-normal)}.card:hover{border-color:var(--color-border-hover);transform:translateY(-4px);box-shadow:var(--shadow-lg)}.card-image{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden}.card-image img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.card:hover .card-image img{transform:scale(1.05)}.card-image-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,0.8) 0%,transparent 50%);display:flex;align-items:flex-end;padding:var(--space-md);opacity:0;transition:opacity var(--transition-normal)}.card:hover .card-image-overlay{opacity:1}.card-body{padding:var(--space-md)}.card-title{font-size:1.1rem;font-weight:700;margin-bottom:var(--space-xs);display:-webkit-box;color:orange;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-meta{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);flex-wrap:wrap}.card-description{font-size:0.85rem;color:var(--color-text-secondary);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:var(--space-md)}.card-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-top:1px solid var(--color-border)}.card-price{font-size:1.15rem;font-weight:700;color:var(--color-success)}.card-price.discounted{color:var(--color-danger)}.card-price-original{font-size:0.8rem;color:var(--color-text-muted);text-decoration:line-through;margin-left:var(--space-xs)}.rating{display:flex;align-items:center;gap:2px;color:var(--color-warning)}.rating-value{margin-left:var(--space-xs);font-weight:600;font-size:0.9rem;color:var(--color-text-primary)}.tabs{display:flex;gap:2px;background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:4px;overflow-x:auto}.tab{padding:8px 16px;border-radius:var(--radius-sm);font-size:0.85rem;font-weight:500;color:var(--color-text-secondary);transition:all var(--transition-fast);white-space:nowrap}.tab:hover{color:var(--color-text-primary)}.tab.active{background:var(--color-accent);color:#fff}.tooltip{position:relative}.tooltip::after{content:attr(data-tooltip);position:absolute;bottom:calc(100%+8px);left:50%;transform:translateX(-50%);padding:6px 10px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:0.75rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--transition-fast)}.tooltip:hover::after{opacity:1}.skeleton{background:linear-gradient( 90deg,var(--color-bg-card) 25%,var(--color-bg-card-hover) 50%,var(--color-bg-card) 75% );background-size:200% 100%;animation:skeleton-pulse 1.5s ease-in-out infinite}@keyframes skeleton-pulse{0%{background-position:200% 0}100%{background-position:-200% 0}}.tag{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:var(--color-bg-card-hover);border-radius:var(--radius-full);font-size:0.75rem;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.tag:hover{background:var(--color-accent);color:#fff}.tag.active{background:var(--color-accent);color:#fff}.progress-bar{width:100%;height:4px;background:var(--color-bg-card);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill{height:100%;background:var(--color-accent);border-radius:var(--radius-full);transition:width var(--transition-slow)}.divider{width:100%;height:1px;background:var(--color-border);margin:var(--space-md) 0}.empty-state{text-align:center;padding:var(--space-3xl) var(--space-xl);color:var(--color-text-secondary)}.empty-state svg{margin:0 auto var(--space-lg);opacity:0.3}.empty-state h3{margin-bottom:var(--space-sm);color:var(--color-text-primary)}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.7);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all var(--transition-normal)}.modal-backdrop.active{opacity:1;visibility:visible}.modal{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);max-width:600px;width:90%;max-height:80vh;overflow-y:auto;transform:scale(0.9) translateY(20px);transition:transform var(--transition-slow)}.modal-backdrop.active .modal{transform:scale(1) translateY(0)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid var(--color-border)}.modal-body{padding:var(--space-lg)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-lg);border-top:1px solid var(--color-border)}.dropdown{position:relative}.dropdown-menu{position:absolute;top:calc(100%+4px);right:0;min-width:180px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:100;opacity:0;visibility:hidden;transform:translateY(-4px);transition:all var(--transition-fast)}.dropdown.active .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:10px 14px;font-size:0.85rem;color:var(--color-text-secondary);transition:all var(--transition-fast)}.dropdown-item:hover{background:var(--color-bg-card-hover);color:var(--color-text-primary)}.dropdown-item:first-child{border-radius:var(--radius-md) var(--radius-md) 0 0}.dropdown-item:last-child{border-radius:0 0 var(--radius-md) var(--radius-md)}